Ubuntu 16.04, QEMU 2.9.0 -M raspi2, Raspbian 2016-05-27, vanilya çekirdeği
Adımlar:
QEMU 2.9.0 kaynağından derleyin:
sudo apt-get build-dep qemu-system-arm
git clone --recursive git://git.qemu-project.org/qemu.git
cd qemu
git checkout v2.9.0
./configure
make `nproc`
Görüntüyü indirin ve çekirdeği ve dts'i çıkarın:
Resmi indirin ve sıkıştırmasını açın:
wget http://downloads.raspberrypi.org/raspbian/images/raspbian-2016-05-31/2016-05-27-raspbian-jessie.zip
unzip 2016-05-27-raspbian-jessie.zip
Bölümün ikinci görüntüsünü bağlayın. En kolay yol:
sudo losetup -f --show -P 2016-05-27-raspbian-jessie.img
Bu yalnızca en son losetup
Ubuntu 16.04, diğer yöntemlerle çalışır : /ubuntu/69363/mount-single-partition-from-image-of-entire-disk-device/496576#496576
Bu bir döngü cihazı yazdırır, örneğin:
/dev/loop0
bu yüzden yapıyoruz:
sudo mkdir /mnt/rpi
sudo mount /dev/loop0p1 /mnt/rpi
cp /mnt/rpi/kernel7.img bcm2709-rpi-2-b.dtb .
sudo umount /mnt/rpi
sudo losetup -d /dev/loop0
Çalıştırmak:
./arm-softmmu/qemu-system-arm \
-M raspi2 \
-append "rw earlyprintk loglevel=8 console=ttyAMA0,115200 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2" \
-cpu arm1176 \
-dtb bcm2709-rpi-2-b.dtb \
-sd 2016-05-27-raspbian-jessie.img \
-kernel kernel7.img \
-m 1G \
-smp 4 \
-serial stdio \
;
Daha sonra ana bilgisayar terminalinizde gösterilen terminalde oturum açabilirsiniz.
Mevcut sınırlamalar:
-M raspi2
QEMU 2.6.0'da eklendi ve Ubuntu 16.04'te yalnızca QEMU 2.5.0 var, bu nedenle QEMU'yu kaynaktan derlemeliyiz. Ama bu zor değil.
- GUI, hem SDL hem de VNC'de test edilen fare / klavyeyi gösterir ancak yanıt vermez. Ancak CLI mükemmel çalışıyor. Şimdilik GUI olan Lite görüntüsünü de kullanabilirsiniz.
- ağ yok
Ubuntu 16.04, QEMU 2.5.0, Raspbian 2016-05-27, değiştirilmiş çekirdek
Bu yöntem -M versatilepb
, Ubuntu 16.04'ün QEMU 2.5.0 sürümünde bulunan yöntemi kullanır .
Dezavantajı, değiştirilmiş bir çekirdeği indirmeniz (bkz. Qemu ile Taklit Etme: neden ekstra çekirdek? ) Ve görüntüyü değiştirmelisiniz, bu yüzden gerçek sistemi daha az temsil eder.
İndir: https://github.com/dhruvvyas90/qemu-rpi-kernel/blob/36ede073f4ccb64f60200ede36c231afe9502070/kernel-qemu-4.4.12-jessie
Biz almak 4.4.12
o Raspbian görüntüde çekirdek versiyonu beri.
Bu çekirdek blobunu oluşturma işlemi, depoda şu adreste açıklanmıştır: https://github.com/dhruvvyas90/qemu-rpi-kernel/tree/36ede073f4ccb64f60200ede36c231afe9502070/tools
Neden bu ekstra çekirdek görüntüsüne ihtiyaç var: Qemu ile taklit etmek: neden ekstra çekirdek?
Raspbian görüntüsünü şu şekilde belirtin: https://github.com/dhruvvyas90/qemu-rpi-kernel/wiki/Emulating-Jessie-image-with-4.x.xx-kernel/0068f0c21d942b0f331e18014ff8e22c20cada5c
Özet:
Görüntüyü aynen yaptığımız gibi bağlayın -M raspi2
, ancak birincisi yerine ikinci bölümü kullanın:
sudo mount /dev/loop0p2 /mnt/rpi
Resmi düzenleyin:
# Comment out the line present there with #
sudo vim /mnt/rpi/etc/ld.so.preload
# Comment out the lines of type: "/dev/mmcblk*"
sudo vim /mnt/rpi/etc/fstab
Çalıştırmak:
sudo apt-get install qemu-system-arm
qemu-system-arm \
-kernel kernel-qemu-4.4.12-jessie \
-cpu arm1176 \
-m 256 \
-M versatilepb \
-no-reboot \
-serial stdio \
-append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \
-hda 2016-05-27-raspbian-jessie.img
[başarısız] Ubuntu 17.04, QEMU 2.8.0 -M raspi2, Raspbian 2016-05-27, vanilya çekirdeği
Bu yeni Ubuntu'da, QEMU 2.8.0 varsayılan ayardır, bu nedenle QEMU'yu kaynağından derlememiz gerekmez -M raspi2
. Ancak, 2.8.0 iletiden sonra önyüklemede asılı kalır:
Console: switching to colour frame buffer device 100x30
Bu -M raspi2
hala kararsızlığın ne olduğunu gösteriyor .
[başarısız] Ubuntu 16.04, QEMU 2.9.0 -M raspi2, Raspbian 2017-08-16, vanilya çekirdeği
Bu yeni görüntüde, 2016-05-27 için aynı yöntemi kullanarak, çekirdek panikleri aşağıdakilerle önyükleniyor:
Please append a correct "root=" boot option; here are the available partitions:
...
[ 4.138114] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
bztsrc/raspi3-tutorial
QEMU'da RPI3 çıplak metal
https://github.com/bztsrc/raspi3-tutorial , sadece QEMU üzerinde çalışan iyi bir örnektir, ultraquick başlangıç: Çıplak metal Raspberry Pi görüntüleri için QEMU öykünmesi nasıl yapılır