mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 00:11:13 +00:00
c099523d66
Like x86, armsr is frequently virtualized, and is used for development and debugging. Kernel messages should be more readily apparent by default. This can be achieved by adding console=tty1 to the kernel command line, enabling the console on a (possibly virtual) display and keyboard, in addition to a serial port. This also enables failsafe on tty1. Failsafe mode operates on consoles known by the kernel, without regard to /etc/inittab. armsr's /etc/inittab is also updated to specify tty1 instead of tty0. tty1 is technically more correct: tty1 is the first virtual console, where tty0 reflects the current active virtual console (which is likely to be tty1). This configuration matches x86, which is another target commonly used for virtualization, development, and debugging in the same way. x86's kernel command line had specified console=tty0, although console=tty1 is more correct for the reasons given above. This also brings x86's kernel command line console= into agreement with its /etc/inittab, which already used tty1. Signed-off-by: Mark Mentovai <mark@mentovai.com> Link: https://github.com/openwrt/openwrt/pull/16213 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
---|---|---|
.. | ||
armv7 | ||
armv8 | ||
base-files | ||
image | ||
patches-6.1 | ||
patches-6.6 | ||
base-files.mk | ||
config-6.6 | ||
Makefile | ||
modules.mk | ||
README |
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.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.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/