Как эмулировать Raspberry Pi Raspbian с QEMU?
Я пытаюсь эмулировать Raspberry Pi с Raspian OS, используя QEMU. Я попробовал несколько подходов, описанных в интернете, но безуспешно.
Я понял, что мне нужно патчить ядро Linux под нужную ОС. В моем случае я выбрал Rasbian Lite с ядром 4.4:
wget https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2016-05-31/2016-05-27-raspbian-jessie-lite.zip
unzip 2016-05-27-raspbian-jessie-lite.zip
rm 2016-05-27-raspbian-jessie-lite.zip
Далее я загружаю ядро изhttps://www.kernel.org/:
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.16.tar.gz
tar -xzf linux-4.4.16.tar.gz
rm linux-4.4.16.tar.gz
Теперь кросс-компиляция ядра:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
cd linux-4.4.16
make vexpress_defconfig
make all
cd ..
Теперь я могу скопировать загрузочный образ, то есть сжатый образ ядра, который автоматически извлекается в ОЗУ, в мою рабочую область:
cp linux-4.4.16/arch/arm/boot/zImage zImage
и запустить QEMU
qemu-system-arm -kernel zImage -M vexpress-a9 -m 1024 -cpu cortex-a9 -no-reboot -serial stdio -hda 016-05-27-raspbian-jessie-lite.img -append "root=/dev/sda2 rootfstype=ext4"
Но все, что я вижу, - это черное заполненное QEMU-окно. :(
Я думаю, что проблема в том, чтобы получить правильное ядро. Копирование некоторых ядер из Интернета никогда не приводило к успеху, потому что они не подходят для ОС.
Как я могу собрать / исправить ядро, соответствующее ОС (без загрузки существующего) и как правильно запустить QEMU?
заранее спасибо
Alex
Я загружаюkernel-qemu
отсюдаhttps://www.dropbox.com/s/g8u93xblz1v1ly0/kernel-qemu?dl=0 и бегиQEMU с этим:
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2" -hda 2016-05-27-raspbian-jessie-lite.img
Это приносит мне следующий вывод:И это имеет смысл для меня, потому что Ядро 3.10.25 и старше, чем Raspbian Jessie с Ядром 4.4.16.
С ядром qemu изhttps://github.com/dhruvvyas90/qemu-rpi-kernel/blob/master/kernel-qemu-4.4.12-jessie
qemu-system-arm -kernel kernel-qemu-4.4.12-jessie -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda 2016-05-27-raspbian-jessie-lite.img
Я получил этот похожий результат:
Новая попытка с новым kernel-qemu 4.4.16:
Скопируйте build-kernel-qemu изhttps://github.com/dhruvvyas90/qemu-rpi-kernel/tree/master/tools и добавьте следующую строку для проверки версии для ядра 4.4.16:
git checkout b05965f284db3e086022f4e318e46cb5bffb1376
Бежатьbuild-kernel-qemu
собрать ядро
sh build-kernel-qemu
БежатьQEMU
qemu-system-arm -kernel kernel-qemu -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda 2016-05-27-raspbian-jessie-lite.img