前言:
本笔记记录windows10平台上使用QEMU模拟树莓派的详细过程。不作概念解释,只记录详细的过程。
主要参考如下:
https://blog.csdn.net/qq_44116653/article/details/112846583
https://cloud.tencent.com/developer/article/1685107
准备工作:
下载QEMU:
网址:https://www.qemu.org/download/
下载kernel-qemu
https://github.com/dhruvvyas90/qemu-rpi-kernel
下载如下这两个文件
kernel-qemu-4.19.50-buster
versatile-pb-buster.dtb
下载将要模拟的树莓派镜像
网址:
https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2021-01-12/
我这里下载的是2021-01-11-raspios-buster-armhf-full.zip
使用
安装QEMU:
双击下载好的QEMU安装程序,按照提示往下进行,默认路径:C:\Program Files\qemu
将下载好的img镜像文件、kernel和versatile-pb-buster.dtb都拷贝到QEMU的根目录下
在QEMU根目录打开cmd,输入:(中间不换行)
方式1:
qemu-system-arm -kernel kernel-qemu-4.19.50-buster -cpu arm1176 -m 256 -M versatilepb -dtb versatile-pb-buster.dtb -no-reboot -append “root=/dev/sda2 panic=1 rootfstype=ext4 rw” -net nic -net user,hostfwd=tcp::5022-:22 -hda 2021-01-11-raspios-buster-armhf-full.img
方式2:
qemu-system-arm -kernel kernel-qemu-4.19.50-buster -cpu arm1176 -m 256 -M versatilepb -dtb versatile-pb-buster.dtb -no-reboot -append “root=/dev/sda2 panic=1 rootfstype=ext4 rw” -net nic -net user,hostfwd=tcp::5022-:22 -drive “file=2021-01-11-raspios-buster-armhf-full.img,index=0,media=disk,format=raw”
方式1和方式2分别示范了:-hda和-file 两种方式加载内核镜像,本操作过程改为了-file
错误1:
Could not open 2021-01-11-raspios-buster-armhf-full.img +乱码…
不用CMD的控制台(加载镜像使用了-hda),改使用powershell(加载镜像使用-file),且管理员打开,切换目录到安装qemu的根目录…
错误2:
panic=1: Could not open ‘panic=1’: +乱码…
1命令行中两处用双引号,看看是不是中文状态的双引号
2复制命令行时,两处需要双引号的地方丢失了,补上双引号即可。
最终修改如下:
.\qemu-system-arm.exe -kernel kernel-qemu-4.19.50-buster -cpu arm1176 -m 256 -M versatilepb -dtb versatile-pb-buster.dtb -no-reboot -append “root=/dev/sda2 panic=1 rootfstype=ext4 rw” -net nic -net user,hostfwd=tcp::5022-:22 -drive “file=2021-01-11-raspios-buster-armhf-full.img,index=0,media=disk,format=raw”
修改完毕后再执行
上图中按提示next就可以了。
网络配置:
修改上面的命令行中网络部分内容:
“-net nic -net tap,ifname=tap”
其中,ifname= tap的tap,我用的是虚拟网卡,把他重命名为tap或其他名字(注意区分大小写)。
虚拟网卡修改名称如下:
设置tap的地址:
IP 192.168.200.1
MASK 255.255.255.0
GW:192.168.35.254
DNS 192.168.35.254
忘记截图了修改tap的地址时,同时,说明一下:192.168.35.254是路由器地址。
选择物理网卡,让tap通过共享物理网卡来上网
共享时,选择tap即可。
上面设置完成后,再查看tap的地址:
WIN10自动将tap的IP修改了,如上图所示。
再次启动虚拟机:
.\qemu-system-arm.exe -kernel kernel-qemu-4.19.50-buster -cpu arm1176 -m 256 -M versatilepb -dtb versatile-pb-buster.dtb -no-reboot -append “root=/dev/sda2 panic=1 rootfstype=ext4 rw” -net nic -net tap,ifname=tap -drive “file=2021-01-11-raspios-buster-armhf-full.img,index=0,media=disk,format=raw”
进入树莓派:
查看IP:
使用ifconfig查看,是DHCP自动分配的如下:
树莓派ping主机:
主机ping树莓派
OK,大功告成!
补充:
树莓派中使用root:
sudo su root即可。
树莓派修改静态IP如下:
Ip地址192.168.137.xxx
网关:tap的ip地址192.168.137.1