環境:
windows 7/10
一、下載QEMU,安裝
https://www.qemu.org/download/#windows
我的電腦是64位,下載的 qemu-w64-setup-20200612.exe
安裝時有選項,安裝arm的即可,其他的cpu架構可以不裝。
二、准備內核和鏡像
由於arm版本的不同,我們使用網上已經編譯好的內核版本和樹配置文件
https://github.com/dhruvvyas90/qemu-rpi-kernel
直接全部用git pull下來或者僅下載: kernel-qemu-4.19.50-buster 、 versatile-pb-buster.dtb
去官網下載img:
http://downloads.raspberrypi.org/raspbian_lite/images/
http://downloads.raspberrypi.org/raspbian_full/images/
kernel-qemu-4.19.50-buster —— Linux內核
versatile-pb-buster.dtb —— 設備樹
2019-09-26-raspbian-buster-lite.img —— 樹莓派精簡版鏡像,沒有GUI,實際上只用到里面的配置、驅動、根文件系統,里面的 Linux內核、設備樹未使用
2020-05-27-raspios-buster-full-armhf.img —— 樹莓派完整版鏡像,有GUI畫面,實際上只用到里面的配置、驅動、根文件系統,里面的 Linux內核、設備樹未使用
三、准備環境
直接運行下列命令,或者寫一個bat腳本:
cd C:\Program Files\qemu
qemu-system-arm.exe -M versatilepb -cpu arm1176 -m 256 -drive format=raw,file=C:\share\qemu-rpi-kernel\2019-09-26-raspbian-buster-lite.img -net nic -net user,hostfwd=tcp::5022-:22 -dtb C:\share\qemu-rpi-kernel\versatile-pb-buster.dtb -kernel C:\share\qemu-rpi-kernel\kernel-qemu-4.19.50-buster -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw"
解釋: cd C:\Program Files\qemu ——這是轉到安裝目錄,你安裝在哪兒就改成哪兒
qemu-system-arm.exe——
-m 256 —— 內存大小
file=C:\share\qemu-rpi-kernel\2019-09-26-raspbian-buster-lite.img —— img的絕對地址,我這里全部用的絕對地址,各位讀者根據自己的文件路徑自行修改
-net user,hostfwd=tcp::5022-:22 —— 將qemu虛擬機的22端口映射到windows主機的127.0.0.1:5022端口,就是換了個馬甲
其他選項不懂
這些配置參數不是最佳的,建議閱讀:
https://wiki.qemu.org/Documentation/Platforms/ARM
或者使用帶GUI的完全版:
cd C:\Program Files\qemu
qemu-system-arm.exe -M versatilepb -cpu arm1176 -m 256 -drive format=raw,file=C:\share\qemu-rpi-kernel\2020-05-27-raspios-buster-full-armhf.img -net nic -net user,hostfwd=tcp::5022-:22 -dtb C:\share\qemu-rpi-kernel\versatile-pb-buster.dtb -kernel C:\share\qemu-rpi-kernel\kernel-qemu-4.19.50-buster -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw"
開機時間較長,啟動后現象:
默認用戶名:pi 密碼:raspberry
2020-05-27-raspios-buster-full-armhf.img開機后是這樣的:
另外,只用:2019-09-26-raspbian-buster-lite.img 也是可以的,我試過這個windows 腳本:
cd C:\Program Files\qemu qemu-system-aarch64.exe ^ -M raspi3 ^ -cpu cortex-a53 ^ -dtb C:\ctures\qemu-rpi-kernel\bcm2710-rpi-3-b.dtb ^ -kernel C:\ctures\qemu-rpi-kernel\kernel8.img ^ -drive id=hd-root,format=raw,file=C:\ctures\qemu-rpi-kernel\2019-09-26-raspbian-buster-lite.img ^ -m 1024 ^ -show-cursor ^ -append "rw earlyprintk=ttyAMA0,115200 loglevel=8 console=ttyAMA0,115200 root=PARTUUID=6c586e13-02 rootfstype=ext4 rootwait" ^ -serial mon:stdio
cd C:\Program Files\qemu
qemu-system-aarch64.exe ^
-M raspi3 ^
-cpu cortex-a53 ^
-dtb C:\ctures\qemu-rpi-kernel\bcm2710-rpi-3-b.dtb ^
-kernel C:\ctures\qemu-rpi-kernel\kernel8.img ^
-drive id=hd-root,format=raw,file=C:\ctures\qemu-rpi-kernel\2019-09-26-raspbian-buster-lite.img ^
-m 1024 ^
-show-cursor ^
-append "rw earlyprintk=ttyAMA0,115200 loglevel=8 console=ttyAMA0,115200 root=PARTUUID=6c586e13-02 rootfstype=ext4 rootwait" ^
-serial mon:stdio
其中的 bcm2710-rpi-3-b.dtb 、 kernel8.img 都是從 2019-09-26-raspbian-buster-lite.img 解壓出來的,原湯化原食。
也是可以啟動,而且使用的cpu和內存都更好。其他功能沒有繼續研究,有時間的讀者請研究下更好的命令組合。
——————————————————————————————————————————————————————————————————————————————————
下邊是使用方法:
開啟ssh:
輸入命令:sudo raspi-config
用putty做ssh連接:
yes記錄密鑰,然后登錄
用vscode遠程調試:革命性的新方法,非常好用
https://zhuanlan.zhihu.com/p/64849549
部分內容參考過:https://www.cnblogs.com/qpanda/p/11534455.html