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 버전의 'virt'보드는 4GB 이상의 주소에서 PCI 창 확장을 포함한 일부 장치를 제공합니다. 32 비트 비 LPAE 커널은 해당 주소를 연결할 수없는 것으로 무시하고 4GB 표시 아래에있는 더 작은 PCI 창을 계속 사용해야하므로 괜찮습니다. 불행히도 이전 버전의 Linux 32 비트 Arm 커널의 버그로 인해 장치 트리에서 64 비트 주소가 잘리고 다른 장치와 충돌이 있다고 생각하고 PCI 활성화를 전혀 거부했습니다. (귀하의 질문에 인용하지 않은 부트 로그 부분에 이에 대한 메시지가있을 것입니다.)
가능한 수정 :
-machine highmem=off
추가 기능을 비활성화는 QEMU 명령 줄에(내 진단이 올바른지 먼저 확인하십시오.)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다