Wie kann man Raspberry Pi Raspbian mit QEMU emulieren?
Ich versuche mit QEMU einen Raspberry Pi mit dem Raspian-Betriebssystem zu emulieren. Ich habe mehrere im Internet beschriebene Ansätze ausprobiert, aber ohne Erfolg.
Ich habe herausgefunden, dass ich einen Linux-Kernel patchen muss, der zum gewünschten Betriebssystem passt. In meinem Fall habe ich mich für Rasbian Lite mit Kernel 4.4 entschieden:
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
Next Ich lade einen Kernel vonhttps: //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
Nun Cross kompiliert den Kernel:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
cd linux-4.4.16
make vexpress_defconfig
make all
cd ..
Jetzt kann ich das Boot-Image, dh ein komprimiertes Kernel-Image, das automatisch im RAM extrahiert wird, in meinen Arbeitsbereich kopieren:
cp linux-4.4.16/arch/arm/boot/zImage zImage
und QEMU ausführen
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"
Aber alles was ich sehe ist ein schwarz gefülltes QEMU-Fenster. :
Ich denke, dass das Problem darin besteht, den richtigen Kernel zu finden. Das Kopieren einiger Kernel aus dem Internet führte nie zum Erfolg, da sie nicht für das Betriebssystem geeignet sind.
Wie kann ich einen zum Betriebssystem passenden Kernel erstellen / patchen (ohne einen vorhandenen herunterzuladen) und wie kann ich QEMU richtig ausführen?
Danke im Vorau
Ale
Ich lade einkernel-qemu
von hierhttps: //www.dropbox.com/s/g8u93xblz1v1ly0/kernel-qemu? dl = 0 und Renn QEMU damit
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
Dies bringt mir die folgende Ausgabe:Und es macht für mich Sinn, dass der Kernel 3.10.25 und älter ist als Raspbian Jessie mit Kernel 4.4.16.
Mit dem Qemu-Kernel vonhttps: //github.com/dhruvvyas90/qemu-rpi-kernel/blob/master/kernel-qemu-4.4.12-jessi
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
Ich habe dieses ähnliche Ergebnis erhalten:
Ein neuer Versuch mit einem neuen Kernel-Qemu 4.4.16:
Copy build-kernel-qemu fromhttps: //github.com/dhruvvyas90/qemu-rpi-kernel/tree/master/tool und fügen Sie die folgende Zeile hinzu, um die Version für Kernel 4.4.16 zu überprüfen:
git checkout b05965f284db3e086022f4e318e46cb5bffb1376
Laufbuild-kernel-qemu
um den Kernel zu bauen
sh build-kernel-qemu
Lauf 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