與 VirtualBox 等其他虛擬機不同的是,QEMU 可以模擬 CPU 硬體核心。想當然爾,一定會很慢。
以下筆記是使用 MacOS + QEMU 模擬 Raspberry Pi ARM CPU + raspbian jessie 系統。
首先要先安裝 QEMU
再來要來這裡下載 Raspberry Pi kernel。這裡的 kernel 必須與下面的作業系統是對應的。(裡面的 README 也有說明)
接著到 Raspberry Pi 官網下載作業系統映像檔。
以下使用 kernel-qemu-4.4.34-jessie
+ 2019-04-08-raspbian-stretch.zip
下載完後,先解壓縮 zip
$ unzip 2019-04-08-raspbian-stretch.zip Archive: 2019-04-08-raspbian-stretch.zip inflating: 2019-04-08-raspbian-stretch.img
|
準備齊全後,就可以啟動 QEMU 了:
qemu-system-arm \ -kernel kernel-qemu-4.4.34-jessie \ -cpu arm1176 -m 256 \ -M versatilepb -no-reboot -serial stdio \ -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" \ -drive "file=2019-04-08-raspbian-stretch.img,index=0,media=disk,format=raw"
|
啟動後,因預設的設定並不適合 QEMU 執行,所以要進去裡面調整設定:
sed -i -e 's/^/#/' /etc/ld.so.preload sed -i -e 's/^/#/' /etc/ld.so.conf sed -i -e 's/^/#/' /etc/fstab
|
再次啟動 QEMU:
qemu-system-arm -kernel kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -drive "file=2017-03-02-raspbian-jessie.img,index=0,media=disk,format=raw" -net user,hostfwd=tcp::5022-:22
|
這裡多加了一個 port forwarding 設定,接著就能使用 ssh 進入機器了:
References