当我使用Ubuntu 18.04时,我使用以下命令声明了OpenWRT:
qemu-system-arm -machine virt -cpu cortex-a15 -nographic -netdev bridge,id=lan,br=br-lan,helper=/usr/lib/qemu/qemu-bridge-helper -device virtio-net-pci,id=devlan,netdev=lan,mac=52:54:00:32:52:3a -netdev bridge,id=wan,br=br-wan,helper=/usr/lib/qemu/qemu-bridge-helper -device virtio-net-pci,id=devwan,netdev=wan,mac=52:54:00:35:04:84 -kernel openwrt-armvirt-32-zImage -drive file=openwrt-armvirt-32-root.ext4,format=raw,if=virtio -append root=/dev/vda rootwait
现在,升级到Ubuntu 19.10之后,我无法使用qemu启动OpenWRT。由于无法安装/dev/vda
设备,引导过程停止:
[ 0.358902] Concatenating MTD devices:
[ 0.359031] (0): "0.flash"
[ 0.359113] (1): "0.flash"
[ 0.359193] into device "0.flash"
[ 0.378013] rtc-pl031 9010000.pl031: rtc core: registered pl031 as rtc0
[ 0.382185] NET: Registered protocol family 10
[ 0.392266] Segment Routing with IPv6
[ 0.392847] NET: Registered protocol family 17
[ 0.394003] 8021q: 802.1Q VLAN Support v1.8
[ 0.395030] 9pnet: Installing 9P2000 support
[ 0.395488] Registering SWP/SWPB emulation handler
[ 0.403133] rtc-pl031 9010000.pl031: setting system clock to 2020-01-02 08:17:06 UTC (1577953026)
[ 0.415460] Waiting for root device /dev/vda...
怎么了?新版本的qemu有什么变化吗?谢谢。
我的第一个猜测是,您遇到了新的QEMU中新的默认启用新功能和来宾内核错误的结合,在该错误中,设备树信息宣传该新功能使它感到困惑。
较新的“虚拟”板QEMU版本提供了一些设备,其中包括PCI窗口的扩展,其地址大于4GB。这应该没问题,因为32位非LPE内核应将这些地址视为不可访问,并继续使用低于4GB标记的较小PCI窗口。不幸的是,较早版本的Linux 32位Arm内核中的一个错误意味着他们截断了设备树中的64位地址,并认为与其他设备存在冲突,并且根本拒绝启用PCI。(在您未在问题中引用的引导日志部分中,可能会有关于此内容的进一步信息。)
可能的修复:
-machine highmem=off
到QEMU命令行,禁用其他功能(首先检查我的诊断是否正确。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句