Как эмулировать 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

2-й подход

Я загружаю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

Результат:

Ответы на вопрос(4)

Ваш ответ на вопрос