docs(vm): document hardware profiles and in-VM verification commands
- commit
- 63b18beebde3a1e334ff086c09ea3945c29319ba
- author
- brice · · 2026-02-27 04:48 UTC
- parent
- 47098b9
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
1 file · +57 -0
M test/vm/README.md +57 -0
| @@ -49,3 +49,60 @@ ssh-copy-id -p 2222 root@localhost # Use password: test | |||
| 49 | 49 | ||
| 50 | 50 | - SSH: `localhost:2222` → VM `:22` | |
| 51 | 51 | - ISO/qcow2 files gitignored | |
| 52 | + | ||
| 53 | + | ## Hardware Profiles | |
| 54 | + | ||
| 55 | + | The QEMU launchers support two hardware profiles that simulate realistic PC hardware. Both use `q35` machine type, NVMe storage, Intel e1000e NIC, XHCI USB, Intel HDA audio, and virtio-vga GPU. | |
| 56 | + | ||
| 57 | + | | Profile | System | Board | | |
| 58 | + | |---------|--------|-------| | |
| 59 | + | | `desktop` (default) | Gigabyte B550 AORUS ELITE V2 | Gigabyte B550 | | |
| 60 | + | | `laptop` | ThinkPad X1 Carbon Gen 10 | LENOVO 21CB | | |
| 61 | + | ||
| 62 | + | ### Usage | |
| 63 | + | ||
| 64 | + | ```bash | |
| 65 | + | # Desktop profile (default) | |
| 66 | + | ./start-qemu-installed.sh | |
| 67 | + | ./start-qemu-installed.sh --profile desktop | |
| 68 | + | ./start-qemu-desktop.sh # convenience wrapper | |
| 69 | + | ||
| 70 | + | # Laptop profile | |
| 71 | + | ./start-qemu-installed.sh --profile laptop | |
| 72 | + | ./start-qemu-laptop.sh # convenience wrapper | |
| 73 | + | ||
| 74 | + | # Secure Boot (ArchUp preflight expects it OFF by default) | |
| 75 | + | ./start-qemu-installed.sh --secure-boot on | |
| 76 | + | ||
| 77 | + | # ISO boot with profile | |
| 78 | + | ./start-qemu-arch-iso.sh --profile laptop | |
| 79 | + | ||
| 80 | + | # Custom SSH port | |
| 81 | + | ./start-qemu-installed.sh --ssh-port 2223 | |
| 82 | + | ``` | |
| 83 | + | ||
| 84 | + | ### Verify Hardware Inside the VM | |
| 85 | + | ||
| 86 | + | After booting, run these inside the VM to confirm the hardware identity: | |
| 87 | + | ||
| 88 | + | ```bash | |
| 89 | + | # BIOS/system/board identity (should show Gigabyte or LENOVO strings) | |
| 90 | + | dmidecode -t 0,1,2,3 | |
| 91 | + | ||
| 92 | + | # PCI devices (check for virtio-vga, e1000e) | |
| 93 | + | lspci -nn | |
| 94 | + | ||
| 95 | + | # Storage identity (should show nvme0n1 with serial TESTDESKTOP0001 or TESTLAPTOP00001) | |
| 96 | + | lsblk -o NAME,MODEL,SERIAL,TYPE | |
| 97 | + | ||
| 98 | + | # UEFI boot entries | |
| 99 | + | bootctl status | |
| 100 | + | ||
| 101 | + | # NIC name (e1000e presents as enp*s0 or similar) | |
| 102 | + | ip link | |
| 103 | + | ``` | |
| 104 | + | ||
| 105 | + | ### Notes | |
| 106 | + | ||
| 107 | + | - Secure Boot mode copies OVMF_VARS to a temp file each run; keys must be enrolled manually via UEFI shell on first boot. | |
| 108 | + | - `check-luks.sh` defaults to `/dev/nvme0n1p2`. For old virtio-disk images use `--disk /dev/vda2`. | |
| @@ -49,3 +49,60 @@ ssh-copy-id -p 2222 root@localhost # Use password: test | |||||
| 49 | 49 | ||||
| 50 | - SSH: `localhost:2222` → VM `:22` | 50 | - SSH: `localhost:2222` → VM `:22` | ||
| 51 | - ISO/qcow2 files gitignored | 51 | - ISO/qcow2 files gitignored | ||
| 52 | + | ||||
| 53 | + | ## Hardware Profiles | |||
| 54 | + | ||||
| 55 | + | The QEMU launchers support two hardware profiles that simulate realistic PC hardware. Both use `q35` machine type, NVMe storage, Intel e1000e NIC, XHCI USB, Intel HDA audio, and virtio-vga GPU. | |||
| 56 | + | ||||
| 57 | + | | Profile | System | Board | | |||
| 58 | + | |---------|--------|-------| | |||
| 59 | + | | `desktop` (default) | Gigabyte B550 AORUS ELITE V2 | Gigabyte B550 | | |||
| 60 | + | | `laptop` | ThinkPad X1 Carbon Gen 10 | LENOVO 21CB | | |||
| 61 | + | ||||
| 62 | + | ### Usage | |||
| 63 | + | ||||
| 64 | + | ```bash | |||
| 65 | + | # Desktop profile (default) | |||
| 66 | + | ./start-qemu-installed.sh | |||
| 67 | + | ./start-qemu-installed.sh --profile desktop | |||
| 68 | + | ./start-qemu-desktop.sh # convenience wrapper | |||
| 69 | + | ||||
| 70 | + | # Laptop profile | |||
| 71 | + | ./start-qemu-installed.sh --profile laptop | |||
| 72 | + | ./start-qemu-laptop.sh # convenience wrapper | |||
| 73 | + | ||||
| 74 | + | # Secure Boot (ArchUp preflight expects it OFF by default) | |||
| 75 | + | ./start-qemu-installed.sh --secure-boot on | |||
| 76 | + | ||||
| 77 | + | # ISO boot with profile | |||
| 78 | + | ./start-qemu-arch-iso.sh --profile laptop | |||
| 79 | + | ||||
| 80 | + | # Custom SSH port | |||
| 81 | + | ./start-qemu-installed.sh --ssh-port 2223 | |||
| 82 | + | ``` | |||
| 83 | + | ||||
| 84 | + | ### Verify Hardware Inside the VM | |||
| 85 | + | ||||
| 86 | + | After booting, run these inside the VM to confirm the hardware identity: | |||
| 87 | + | ||||
| 88 | + | ```bash | |||
| 89 | + | # BIOS/system/board identity (should show Gigabyte or LENOVO strings) | |||
| 90 | + | dmidecode -t 0,1,2,3 | |||
| 91 | + | ||||
| 92 | + | # PCI devices (check for virtio-vga, e1000e) | |||
| 93 | + | lspci -nn | |||
| 94 | + | ||||
| 95 | + | # Storage identity (should show nvme0n1 with serial TESTDESKTOP0001 or TESTLAPTOP00001) | |||
| 96 | + | lsblk -o NAME,MODEL,SERIAL,TYPE | |||
| 97 | + | ||||
| 98 | + | # UEFI boot entries | |||
| 99 | + | bootctl status | |||
| 100 | + | ||||
| 101 | + | # NIC name (e1000e presents as enp*s0 or similar) | |||
| 102 | + | ip link | |||
| 103 | + | ``` | |||
| 104 | + | ||||
| 105 | + | ### Notes | |||
| 106 | + | ||||
| 107 | + | - Secure Boot mode copies OVMF_VARS to a temp file each run; keys must be enrolled manually via UEFI shell on first boot. | |||
| 108 | + | - `check-luks.sh` defaults to `/dev/nvme0n1p2`. For old virtio-disk images use `--disk /dev/vda2`. | |||