环境:
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