Tips for Linux in HVM domain
How to fix bootup kernel error
The HVM may pause on boot, showing a fixed cursor. After a while a series of warnings may be shown similar to this:
BUG: soft lockup - CPU#0 stuck for 23s! [systemd-udevd:244]
To fix this:
- Kill the HVM.
- Start the HVM
- Press “e” at the grub screen to edit the boot parameters
- Find the /vmlinuz line, and edit it to replace “rhgb” with “modprobe.blacklist=bochs_drm”
- Press “Ctrl-x” to start the HVM
If this solves the problem then you will want to make the change permanent:
- Edit the file
- Find the line which starts:
- Remove this text from that line:
- Add this text to that line:
- Run this command:
The HVM should now start normally.
Some kernel/Xorg combinations use only 640x480 in HVM, which is quite small. To enable maximum resolution, some changes in the Xorg configuration are needed:
- Force “vesa” video driver
- Provide wide horizontal synchronization range
To achieve it (all commands to be run as root):
- Generate XOrg configuration (if you don’t have it):
X -configure :1 && mv ~/xorg.conf.new /etc/X11/xorg.conf
- Add HorizSync line to Monitor section, it should look something like:
Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 30.0 - 60.0 EndSection
- Change driver to “vesa” in Device section:
Section "Device" # (...) Identifier "Card0" Driver "vesa" VendorName "Technical Corp." BoardName "Unknown Board" BusID "PCI:0:2:0" EndSection
Now you should get resolution of at least 1280x1024 and should be able to choose other modes.
Linux Qubes agents are written primarily for PV qubes, but it is possible to run them also in a HVM qube. However some work may be required to achieve this. Check this thread.