mirror of
				https://github.com/QubesOS/qubes-doc.git
				synced 2025-10-31 03:19:04 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| layout: doc
 | |
| title: Linux HVM Tips
 | |
| permalink: /doc/linux-hvm-tips/
 | |
| redirect_from:
 | |
| - /en/doc/linux-hvm-tips/
 | |
| - /doc/LinuxHVMTips/
 | |
| - /wiki/LinuxHVMTips/
 | |
| ---
 | |
| 
 | |
| 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:
 | |
| 
 | |
| 1.  Kill the HVM.
 | |
| 1.  Start the HVM
 | |
| 1.  Press "e" at the grub screen to edit the boot parameters
 | |
| 1.  Find the /vmlinuz line, and edit it to replace "rhgb" with "modprobe.blacklist=bochs_drm"
 | |
| 1.  Press "Ctrl-x" to start the HVM
 | |
| 
 | |
| If this solves the problem then you will want to make the change permanent:
 | |
| 
 | |
| 1.  Edit the file `/etc/default/grub`.
 | |
| 1.  Find the line which starts:
 | |
|     ~~~
 | |
|     GRUB_CMDLINE_LINUX=
 | |
|     ~~~
 | |
| 1.  Remove this text from that line:
 | |
|     ~~~
 | |
|     rhgb
 | |
|     ~~~
 | |
| 1.  Add this text to that line:
 | |
|     ~~~
 | |
|     modprobe.blacklist=bochs_drm
 | |
|     ~~~
 | |
| 1.  Run this command:
 | |
|     ~~~
 | |
|     grub2-mkconfig --output=/boot/grub2/grub.cfg
 | |
|     ~~~
 | |
| 
 | |
| The HVM should now start normally.
 | |
| 
 | |
| 
 | |
| Screen resolution
 | |
| -----------------
 | |
| 
 | |
| 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:
 | |
| 1.  Force "vesa" video driver
 | |
| 2.  Provide wide horizontal synchronization range
 | |
| 
 | |
| To achieve it (all commands to be run as root):
 | |
| 
 | |
| 1.  Generate XOrg configuration (if you don't have it):
 | |
|     ~~~
 | |
|     X -configure :1 && mv ~/xorg.conf.new /etc/X11/xorg.conf
 | |
|     ~~~
 | |
| 
 | |
| 1.  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
 | |
|     ~~~
 | |
| 
 | |
| 1.  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.
 | |
| 
 | |
| Qubes agents
 | |
| ------------
 | |
| 
 | |
| 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](https://groups.google.com/group/qubes-devel/browse_thread/thread/081df4a43e49e7a5).
 | 
