Como emular Raspberry Pi Raspbian com QEMU?

Estou tentando emular um Raspberry Pi com o sistema operacional Raspian usando QEMU. Eu tentei várias abordagens descritas na internet, mas sem sucesso.

Eu descobri que preciso corrigir um kernel do Linux que se adapte ao sistema operacional desejado. No meu caso, escolhi o Rasbian Lite com o Kernel 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

Em seguida, carrego um kernel dehttps://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

Agora cruze a compilação do Kernel:

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
cd linux-4.4.16
make vexpress_defconfig
make all
cd ..

Agora eu posso copiar a imagem de inicialização, que é uma imagem compactada do kernel que extrai automaticamente na RAM, para o meu espaço de trabalho:

cp linux-4.4.16/arch/arm/boot/zImage zImage

e execute o 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"

Mas tudo o que vejo é uma janela QEMU cheia de preto. :(

Eu acho que o problema é obter o kernel correto. Copiar alguns dos Kernels da Internet nunca levou ao sucesso, porque eles não são adequados para o sistema operacional.

Como posso construir / corrigir um Kernel adequado ao sistema operacional (sem baixar um existente) e como executar o QEMU corretamente?

desde já, obrigado
Alex

2ª abordagem

Eu carrego umkernel-qemu daquihttps://www.dropbox.com/s/g8u93xblz1v1ly0/kernel-qemu?dl=0 e corraQEMU com isso:

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

Isso me traz a seguinte saída:E isso faz sentido para mim porque o Kernel é 3.10.25 e mais antigo que o Raspbian Jessie com o Kernel 4.4.16.

Com o qemu-kernel dehttps://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

Eu tenho esse resultado semelhante:

Uma nova tentativa com um novo kernel-qemu 4.4.16:

Copie o build-kernel-qemu dehttps://github.com/dhruvvyas90/qemu-rpi-kernel/tree/master/tools e adicione a seguinte linha para verificar a versão do Kernel 4.4.16:

git checkout b05965f284db3e086022f4e318e46cb5bffb1376

Correbuild-kernel-qemu construir o kernel

sh build-kernel-qemu

CorreQEMU

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

O resultado:

questionAnswers(4)

yourAnswerToTheQuestion