저는 작업 이미지에서 커널을 통해 Raspberry pi3를 에뮬레이트하기 위해 QEMU(qemu-system-aarch64 -M raspi3)를 사용하고 있습니다. 모든 것이 잘 작동하지만 네트워크가 없습니다.
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: No 'virtio-bus' bus found for device 'virtio-blk-device'
raspi3 대신 "virt" 머신을 사용하여 일부 포럼과 시뮬레이션된 virtio-network를 참조했습니다.
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
아무것도 인쇄되지 않고 터미널이 일시 중지됩니다. 이는 커널이 가상 머신에서 실행될 수 없음을 의미합니다.
나는 나만의 맞춤형 커널을 만들기로 결정했습니다. QEMU 및 virtio와 함께 사용할 커널을 구축하는 옵션에 대해 조언을 줄 수 있는 사람이 있습니까?