armvirt: update README with new image names

The introduction of EFI support has changed how armvirt
images are generated. The kernel and filesystem binaries
can still be used as before with QEMU directly.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
This commit is contained in:
Mathew McBride 2022-01-19 03:24:45 +00:00 committed by Petr Štetiar
parent eb0e61285d
commit 97c5d317f5
No known key found for this signature in database
GPG Key ID: 58EE120F30CC02D3

View File

@ -1,21 +1,23 @@
This is intended to be used with OpenWrt project to provide image for use with This target generates images that can be used on ARM machines with EFI
QEMU ARM virt machine. support (e.g EDKII/TianoCore or U-Boot with bootefi).
The kernel and filesystem images can also be used directly by QEMU:
Run with qemu-system-arm Run with qemu-system-arm
# boot with initramfs embedded in # boot with initramfs embedded in
qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-zImage-initramfs qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-generic-initramfs-kernel.bin
# boot with accel=kvm # boot with accel=kvm
qemu-system-arm -nographic -M virt,accel=kvm -cpu host -m 64 -kernel qemu-system-arm -nographic -M virt,accel=kvm -cpu host -m 64 -kernel
openwrt-armvirt-32-zImage-initramfs openwrt-armvirt-32-generic-initramfs-kernel.bin
# boot with a separate rootfs # boot with a separate rootfs
qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-zImage \ qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-generic-kernel.bin \
-drive file=openwrt-armvirt-32-root.ext4,format=raw,if=virtio -append 'root=/dev/vda rootwait' -drive file=openwrt-armvirt-32-generic-ext4-rootfs.img,format=raw,if=virtio -append 'root=/dev/vda rootwait'
# boot with local dir as rootfs # boot with local dir as rootfs
qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-zImage \ qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-generic-kernel.bin \
-fsdev local,id=rootdev,path=root-armvirt/,security_model=none \ -fsdev local,id=rootdev,path=root-armvirt/,security_model=none \
-device virtio-9p-pci,fsdev=rootdev,mount_tag=/dev/root \ -device virtio-9p-pci,fsdev=rootdev,mount_tag=/dev/root \
-append 'rootflags=trans=virtio,version=9p2000.L,cache=loose rootfstype=9p' -append 'rootflags=trans=virtio,version=9p2000.L,cache=loose rootfstype=9p'
@ -37,4 +39,34 @@ Run with kvmtool
The multi-platform ARMv8 target can be used with QEMU: The multi-platform ARMv8 target can be used with QEMU:
qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic \ qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic \
-kernel openwrt-armvirt-64-Image-initramfs \ -kernel openwrt-armvirt-64-generic-initramfs-kernel.bin \
With a EDKII or U-Boot binary for the QEMU ARM virtual machines, you can use these
images in EFI mode:
32-bit:
gunzip -c bin/targets/armvirt/32/openwrt-armvirt-32-generic-ext4-combined.img.gz > openwrt-arm-32.img
qemu-system-arm -nographic \
-cpu cortex-a15 -machine virt \
-bios QEMU_EFI_32.fd \
-smp 1 -m 1024 \
-device virtio-rng-pci \
-drive file=openwrt-arm-32.img,format=raw,index=0,media=disk \
-netdev user,id=testlan -net nic,netdev=testlan \
-netdev user,id=testwan -net nic,netdev=testwan
64-bit:
gunzip -c bin/targets/armvirt/64/openwrt-armvirt-64-generic-ext4-combined.img.gz > openwrt-arm-64.img
qemu-system-aarch64 -nographic \
-cpu cortex-a53 -machine virt \
-bios QEMU_EFI_64.fd \
-smp 1 -m 1024 \
-device virtio-rng-pci \
-drive file=openwrt-arm-64.img,format=raw,index=0,media=disk \
-netdev user,id=testlan -net nic,netdev=testlan \
-netdev user,id=testwan -net nic,netdev=testwan
One can find EFI/BIOS binaries from:
- Compile mainline U-Boot for the QEMU ARM virtual machine (qemu_arm_defconfig/qemu_arm64_defconfig)
- From distribution packages (such as qemu-efi-arm and qemu-efi-aarch64 in Debian)
- Community builds, like retrage/edk2-nightly: https://retrage.github.io/edk2-nightly/