SerenityOS / serenity

The Serenity Operating System 🐞
https://serenityos.org
BSD 2-Clause "Simplified" License
29.87k stars 3.16k forks source link

Boot fails as HVM under QubesOS #14893

Open Szewcson opened 1 year ago

Szewcson commented 1 year ago

I just build serenity, create grub image and copy it as rootfs for my VM. Grub is loading and system starts to boot. But than it hangs and is killed by qrexec timeout.

For creating VM I used this commands:

$ qvm-create --verbose serenity --class StandaloneVM --property virt_mode=hvm --property kernel="" --property memory=256 --property maxmem=256 --label=red
$ sudo su
$ qvm-run -p my-new-qube 'cat /home/user/serenity/Build/i686/grub_disk_image' > /dev/mapper/qubes_dom0-vm--serenity--root
0.000 ←[34;1m[Kernel]←[0m: APICTimer: Using HPET as calibration source 
0.000 ←[34;1m[Kernel]←[0m: Kernel Rng: Using RDSEED or RDRAND as entropy source 
0.000 ←[34;1m[Kernel]←[0m: PIC: Cascading mode, vectors 0x50-0x5f 
0.000 ←[34;1m[Kernel]←[0m: IOAPIC ID: 0x0
0.000 ←[34;1m[Kernel]←[0m: IOAPIC Version: 0x11, redirection entries : 48 
0.000 ←[34;1m[Kernel]←[0m: IOAPIC Arbitration ID 0x0
0.000 ←[34;1m[Kernel]←[0m: ACPI: Using RSDP @ P00000000000f 590 
0.000 ←[34;1m[Kernel]←[0m: ACPI: Main Description Table valid? true 
0.000 ←[34;1m[Kernel]←[0m: ACPI: Using XSDT, enumerating tables @ P00000000f c00a 650 
0.000 ←[34;1m[Kernel]←[0m: ACPI: XSDT revision 1, total length: 84 
0.000 ←[34;1m[Kernel]←[0m: ACPI: Initializing Fixed ACPI data 
0.000 ←[34;1m[Kernel]←[0m: ACPI: Fixed ACPI data, Revision 4, length: 244 bytes 
0.000 ←[34;1m[Kernel]←[0m: CPI: DSDT P00000000f c001040 
0.000 ←[34;1m[Kernel]←[0m: RTC: Year: 2022, month: 8, day: 17, hour : 9, minute:
25, second : 57 
0.000 ←[34;1m[Kernel]←[0m: HPET @ P00000000f c00a560 
0.000 ←[34;1m[Kernel]←[0m: HPET: Minimum clock tick - 0 
0.000 ←[34;1m[Kernel]←[0m: HPET: Timers count - 3 
0.000 ←[34;1m[Kernel]←[0m: HPET: Main counter size: 64-bit 
0.000 ←[34;1m[Kernel]←[0m: HPET: Timer[0] comparator size: 64-bit, mode: 64-bit 
0.000 ←[34;1m[Kernel]←[0m: HPET: Timer[1] comparator size: 64-bit, mode : 64-bit 
0.000 ←[34;1m[Kernel]←[0m: HPET: Timer[2] comparator size: 64-bit, mode : 64-bit 
0.000 ←[34;1m[Kernel]←[0m: HPET: frequency 62500000 Hz (62 MHz) 
DemiMarie commented 1 year ago

From the Qubes side: if you set the qrexec feature to the empty string, dom0 will not attempt to connect to qrexec in the VM.

DemiMarie commented 1 year ago

Some immediate thoughts:

ADKaster commented 1 year ago

For USB, Serenity does not support anything other than enumerating a bus controller. e.g. USB HIDs like keyboards are not supported, only PS/2 through an emulated (or real) I8042 chipset.

Szewcson commented 1 year ago

My first shoot was that maybe the emulated VGA was not supported but can't figured out from the docs if this is the case.