Я использовал QEMU (qemu-system-aarch64 -M raspi3) для эмуляции Raspberry pi3 с ядром из рабочего образа. Все работало, но сети не было.
qemu-system-aarch64 \
-kernel ./bootpart/kernel8.img \
-initrd ./bootpart/initrd.img-4.14.0-3-arm64 \
-dtb ./debian_bootpart/bcm2837-rpi-3-b.dtb \
-M raspi3 -m 1024 \
-nographic \
-serial mon:stdio \
-append "rw earlycon=pl011,0x3f201000 console=ttyAMA0 loglevel=8 root=/dev/mmcblk0p3 fsck.repair=yes net.ifnames=0 rootwait memtest=1" \
-drive file=./genpi64lite.img,format=raw,if=sd,id=hd-root \
-no-reboot
Я пытался добавить эту опцию
-device virtio-blk-device,drive=hd-root \
-netdev user,id=net0,hostfwd=tcp::5555-:22 \
-device virtio-net-device,netdev=net0 \
Но была бы ошибка
qemu-system-aarch64 : -device virtio-blk-device, drive = hd- root: Шина 'virtio-bus' не найдена для устройства 'virtio-blk-device' Я ссылался на какой-то форум и использовал машину "virt" вместо raspi3 в порядке эмуляции virtio-сети
qemu-system-aarch64 \
-kernel ./bootpart/kernel8.img \
-initrd ./bootpart/initrd.img-4.14.0-3-arm64 \
-m 2048 \
-M virt \
-cpu cortex-a53 \
-smp 8 \
-nographic \
-serial mon:stdio \
-append "rw root=/dev/vda3 console=ttyAMA0 loglevel=8 rootwait fsck.repair=yes memtest=1" \
-drive file=./genpi64lite.img,format=raw,if=sd,id=hd-root \
-device virtio-blk-device,drive=hd-root \
-netdev user,id=net0,net=192.168.1.1/24,dhcpstart=192.168.1.234 \
-device virtio-net-device,netdev=net0 \
-no-reboot
Ничего не напечатано, и терминал был приостановлен. Это означает, что ядро не работает с машиной virt.
Я решил собрать свое собственное ядро. Кто-нибудь может дать мне совет по вариантам сборки ядра, которое работает как с QEMU, так и с virtio?
Заранее спасибо!