Manjaro on Proxmox


#1

I did a Manjaro XFCE install as a guest virtual machine on Proxmox. I’m pleased how it is performing after a few tweaks. This is what I did. If anyone has more suggestions please do post them! Video playback is my benchmark test, this is often something that is bad. I’m connecting with virt-viewer. Video playback depends on the system connected and is partly offloaded. Connecting with a lightweight netbook is poor playback, an average laptop (Running Majaro i3) works fine (not fullscreen playback, but acceptable to me). Had to switch to pulseaudio for virt-viewer to pass the audio from guest to spice host.

I’ve tested to pass USB through Spice and that is also working. Plugged in a USB drive on my laptop and mount it in the guest. I can access my data.

When installed the Manjaro hardware detection set the video driver as vesa. I did the folowing and changed it to qxl, would perhaps be nice if this would be autodetected as hardware.

pamac install xf86-video-qxl spice-vdagent qemu-guest-agent

and changed vesa driver to qxl in /etc/X11/mwhd.d/vesa.conf:

Section "Device"
    Identifier  "Device0"
    Driver      "qxl"
    BusID       "PCI:0:2:0"
    Option      "DRI"    "true"
EndSection

Enable spice vdagent and qemu-guest-agent (qemu-guest is more for Proxmox to detect IP, shutdown etc.)

sudo systemctl enable spice-vdagentd
sudo systemctl start spice-vdagentd
sudo systemctl enable qemu-ga

Loaded qxl module in mkinitcpio.conf (not sure if that helps with anything):

MODULES=(qxl)

What I did not find a solution for is the following:

  • The bootup from grub to graphical is completely black screen. Bootup however is fast for me, 12 seconds to graphical.
  • Anything else I missed to improve.

inxi info (from guest):

System:    Host: manjaro Kernel: 4.19.1-1-MANJARO x86_64 bits: 64 compiler: gcc v: 8.2.1 Desktop: Xfce 4.13.2git-UNKNOWN 
           tk: Gtk 3.24.1 info: xfce4-panel wm: xfwm4 dm: LightDM 1.28.0 Distro: Manjaro Linux 
Machine:   Type: Kvm System: QEMU product: Standard PC (i440FX + PIIX, 1996) v: pc-i440fx-2.12 serial: <filter> Chassis: 
           type: 1 v: pc-i440fx-2.12 serial: <filter> 
           Mobo: N/A model: N/A serial: N/A BIOS: SeaBIOS v: rel-1.11.1-0-g0551a4be2c-prebuilt.qemu-project.org 
           date: 04/01/2014 
CPU:       Topology: Dual Core model: Common KVM bits: 64 type: MCP arch: Netburst Presler rev: 1 L2 cache: 16.0 MiB 
           flags: lm nx pae sse sse2 sse3 bogomips: 8834 
           Speed: 2208 MHz min/max: N/A Core speeds (MHz): 1: 2208 2: 2208 
Graphics:  Device-1: Red Hat QXL paravirtual graphic card driver: qxl v: kernel bus ID: 00:02.0 chip ID: 1b36:0100 
           Display: x11 server: X.Org 1.20.3 driver: none resolution: 1360x714-0~N/A 
           OpenGL: renderer: llvmpipe (LLVM 7.0 128 bits) v: 3.3 Mesa 18.2.4 compat-v: 3.1 direct render: Yes 
Audio:     Device-1: Intel 82801FB/FBM/FR/FW/FRW High Definition Audio vendor: Red Hat QEMU Virtual Machine 
           driver: snd_hda_intel v: kernel bus ID: 00:18.0 chip ID: 8086:2668 
           Sound Server: ALSA v: k4.19.1-1-MANJARO 
Network:   Device-1: Intel 82371AB/EB/MB PIIX4 ACPI vendor: Red Hat Qemu virtual machine type: network bridge 
           driver: piix4_smbus v: N/A port: e0c0 bus ID: 00:01.3 chip ID: 8086:7113 
           Device-2: Red Hat Virtio network driver: virtio-pci v: 1 port: e120 bus ID: 00:12.0 chip ID: 1af4:1000 
           IF: ens18 state: up speed: -1 duplex: unknown mac: <filter> 
Drives:    Local Storage: total: 32.00 GiB used: 6.74 GiB (21.1%) 
           ID-1: /dev/sda vendor: QEMU model: HARDDISK size: 32.00 GiB speed: <unknown> serial: <filter> rev: 2.5+ scheme: MBR 
Partition: ID-1: / size: 23.03 GiB used: 6.74 GiB (29.3%) fs: ext4 dev: /dev/sda1 
           ID-2: swap-1 size: 8.47 GiB used: 0 KiB (0.0%) fs: swap dev: /dev/sda2 
Sensors:   Message: No sensors data was found. Is sensors configured? 
Info:      Processes: 129 Uptime: 12m Memory: 3.85 GiB used: 447.5 MiB (11.3%) Init: systemd v: 239 Compilers: gcc: 8.2.1 
           Shell: bash v: 4.4.23 running in: xfce4-terminal inxi: 3.0.27

#2

It is a feature.

feature

Changes made to grub package

1. What is the GRUB hidden menu change?

The main motivation for adding this is, to get to a fully flickerfree boot.

2. How to enable hidden GRUB menu?

On new Manjaro v18.0 installs this will be enabled by default. If your system has been upgraded to v18.0 from an older release, you can enable it by running these commands:

  • update your system to get latest systemd
  • install linux418 or linux419 : sudo pacman -S linux41[x]
  • check that you have quiet in /etc/default/grub under GRUB_CMDLINE_LINUX_DEFAULT or GRUB_CMDLINE_LINUX and comment out any GRUB_BACKGROUND settings.
  • sed -i -e 's|fsck||g' /etc/mkinitcpio.conf && sudo pacman -S systemd-fsck-silent
  • You may want to consider early kms and fastboot for intel hardware
  • sudo mkinitcpio -P
  • sudo grub-editenv - set menu_auto_hide=1
  • sudo update-grub
  • reboot your system

Note the grub-update will overwrite any manual changes you’ve made to your grub.cfg (normally no manually changes are done to this file).

If your system has Windows on it, but you boot it only once a year so you would still like to hide the GRUB menu, you can tell GRUB to ignore the presence of Windows by running:

sudo grub-editenv - set menu_auto_hide=2

3. How to disable hidden GRUB menu

To permanently disable the auto-hide feature run:

sudo grub-editenv - unset menu_auto_hide

That is it.

4.How to access the GRUB menu when hidden

If for some reason you need to access the GRUB menu while it is hidden there are multiple ways to get to it:

  1. While booting keep SHIFT pressed, usually you need to first press SHIFT when the vendor logo is shown by the firmware / when the firmware says e.g. “Press F2 to enter setup” if you press it earlier it may not be seen. Note this may not work on some machines.
  2. During boot press ESC or F8 while GRUB loads (simply press the key repeatedly directly after power on until you are in the menu).
  3. Force the previous boot to be considered failed:
  4. Press CTRL + ALT + DEL while booting so that the system reboots before hitting the display manager (lightdm, gdm, sddm)
  5. Press CTRL + ALT + F6 to switch away from your display manager, followed by CTRL + ALT + DEL.
  6. Press the power-button for 4 seconds to force the machine off. Either of these will cause the boot_success grub_env flag to not get set and the menu will show the next boot.
  7. Manually set the menu show once flag by running: "grub-set-bootflag menu_show_once" This will cause the menu to show for 60 seconds before continuing with the default boot-option.

4. When is a boot considered successful ?

The boot_success grub_env flag gets set when you login as a normal user and your session lasts at least 2 minutes.

So if you e.g. login, do something and then within 30 seconds type reboot in a terminal (instead of doing the reboot from the menu) then this will not count as a successful boot and the menu will show the next boot.


#3

You can use Bootsplash or disable quiet


#4

Thank you for the response on the black screen options. I also managed to squeeze some more out of the video playback by increasing the video memory to 128M

in /etc/pve/qemu-server/100.conf, set the args section to the following

args: -device AC97,addr=0x18 -global qxl-vga.ram_size=134217728 -global qxl-vga.vram_size=134217728 -global qxl-vga.vgamem_mb=32

It will keep doing a lot on CPU power. So better host hardware will surely improve the playback experience.


#5

For those following, these are the settings I have in /etc/X11/xorg.conf.d/20-qxl.conf. Unfortunate Manjaro hardware detection is not picking up the QXL driver. Disable the EnableSurfaces seems to make a big difference for KVM+Spice with Linux guests.

Section "Device"
   Identifier "XSPICE QXL"
   Driver     "qxl"
   Option     "NumHeads" "1"
   Option     "EnableSurfaces" "0"
EndSection