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
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