mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-05 18:49:30 +00:00
luci-app-attendedsysupgrade expects images to be named 'combined-efi' when the system is using EFI images. This came about as x86 has 'combined' images for legacy (BIOS) boot and 'combined-efi' for EFI systems. armsr images were originally named 'combined' only as there was no 'legacy' image type. To avoid special handling in the attendedsysupgrade code, name EFI images consistent with other targets. Signed-off-by: Mathew McBride <matt@traverse.com.au> Link: https://github.com/openwrt/luci/pull/6430 Link: https://github.com/openwrt/openwrt/pull/12963 Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit c9ebd4fb30773ca55cc2da6b2c1962046a2e0fff)
76 lines
2.8 KiB
Plaintext
76 lines
2.8 KiB
Plaintext
This target generates images that can be used on ARM machines with EFI
|
|
support (e.g EDKII/TianoCore or U-Boot with bootefi).
|
|
|
|
There are two subtargets:
|
|
- armv7 for 32-bit machines
|
|
- armv8 for 64-bit machines
|
|
|
|
The kernel and filesystem images can also be used directly by QEMU:
|
|
|
|
Run with qemu-system-arm
|
|
|
|
# boot with initramfs embedded in
|
|
qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armsr-armv7-generic-initramfs-kernel.bin
|
|
|
|
# boot with accel=kvm
|
|
qemu-system-arm -nographic -M virt,accel=kvm -cpu host -m 64 -kernel
|
|
openwrt-armsr-armv7-generic-initramfs-kernel.bin
|
|
|
|
# boot with a separate rootfs
|
|
qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armsr-armv7-generic-kernel.bin \
|
|
-drive file=openwrt-armsr-armv7-generic-ext4-rootfs.img,format=raw,if=virtio -append 'root=/dev/vda rootwait'
|
|
|
|
# boot with local dir as rootfs
|
|
qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armsr-armv7-generic-kernel.bin \
|
|
-fsdev local,id=rootdev,path=root-armsr/,security_model=none \
|
|
-device virtio-9p-pci,fsdev=rootdev,mount_tag=/dev/root \
|
|
-append 'rootflags=trans=virtio,version=9p2000.L,cache=loose rootfstype=9p'
|
|
|
|
Run with kvmtool
|
|
|
|
# start a named machine
|
|
lkvm run -k openwrt-armsr-armv7-zImage -i openwrt-armsr-armv7-rootfs.cpio --name armsr0
|
|
|
|
# start with virtio-9p rootfs
|
|
lkvm run -k openwrt-armsr-armv7-zImage -d root-armsr/
|
|
|
|
# stop "armsr0"
|
|
lkvm stop --name armsr0
|
|
|
|
# stop all
|
|
lkvm stop --all
|
|
|
|
The multi-platform ARMv8 target can be used with QEMU:
|
|
|
|
qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic \
|
|
-kernel openwrt-armsr-armv8-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/armsr/armv7/openwrt-armsr-armv7-generic-ext4-combined-efi.img.gz > openwrt-arm-32.img
|
|
qemu-system-arm -nographic \
|
|
-cpu cortex-a15 -machine virt \
|
|
-bios bin/targets/armsr/armv7/u-boot-qemu_armv7/u-boot.bin \
|
|
-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/armsr/armv8/openwrt-armsr-armv8-generic-ext4-combined-efi.img.gz > openwrt-arm-64.img
|
|
qemu-system-aarch64 -nographic \
|
|
-cpu cortex-a53 -machine virt \
|
|
-bios bin/targets/armsr/armv8/u-boot-qemu_armv8/u-boot.bin \
|
|
-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 obtain other EFI/BIOS binaries 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/
|