Win10 下使用 Qemu 虛拟树莓派并配置联网
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Win10 下使用 Qemu 虛拟树莓派并配置联网,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4748字,纯文字阅读大概需要7分钟。
内容图文
本文指导的是在 Windows 10 环境下利用QEMU模拟 Raspbian。
Raspbian 是专门用于 ARM 卡片式计算机 Raspberry Pi® “树莓派”的操作系统, 其基于 Debian 开发,针对 Raspberry Pi 硬件优化。
Raspbian 并非由树莓派的开发与维护机构 The Raspberry Pi Foundation “树莓派基金会” 官方支持。其维护者是一群 Raspberry Pi 硬件和 Debian 项目的爱好者。
安装QEMU
根据操作系统版本选择下载,一般选择64位的。
官方下载:https://www.qemu.org/download/#windows
系统映像与内核
下载映像
从上海交通大学镜像站下载:https://mirrors.sjtug.sjtu.edu.cn/raspberry-pi-os-images/,解压得到 *.img
文件,即为系统映像文件
注:树莓派有多个镜像分支,我使用的是基于 Debian 的树莓派 Raspbian。
https://mirrors.sjtug.sjtu.edu.cn/raspberry-pi-os-images/raspbian/images/
主要注意系统的版本代号,后面更换源的时候用到
架构:
- arm64
- armhf
版本:
- wheezy
- jessie
- stretch
- buster
注:Raspbian 系统由于从诞生开始就基于(为了armhf,也必须基于)当时还是 testing 版本的 7.0/wheezy,所以 Raspbian 不倾向于使用 stable/testing 表示版本。——摘自清华大学镜像站
选择内核
光有映像还不能跑起来,得有对应的内核文件。
下载 Qemu kernel for emulating Rpi on QEMU:
https://github.com/dhruvvyas90/qemu-rpi-kernel
这里有不同版本,可下载最新版,我下载的是:kernel-qemu-4.19.50-buster
https://github.com/dhruvvyas90/qemu-rpi-kernel/blob/master/kernel-qemu-4.19.50-buster
配置网络环境
创建虚拟网卡
要让树莓派和互联网连接,需要依赖主机的互联网连接,因此需要借助一个虚拟网卡作桥接。使用OpenVPN为我们生成一个虚拟网卡,
OpenVPN官方下载(需要科学上网):
http://build.openvpn.net/downloads/releases/
非科学上网的途径请自行百度。
安装过程一路确定即可,完毕后在 Windows 的网络连接处应当会看到一个新的网卡,名字类似于:TAP-Win32 Adapter V9
,右键将其重命名为一个简短且不带空格的名字,比如tap0
使用现有网络与虚拟网卡桥接
还是在这个控制面板的查看网络连接界面中,找到你当前上网的物理网卡,右键 - 属性 ,选修卡切换至“共享”,勾选中“允许其他网络用户通过此计算机的Internet连接来连接”,然后下面下拉菜单选择刚刚的tap0
,确定。
至此准备工作完成。
运行
为了启动和管理方便,推荐将上面下载的镜像和内核放置在QEMU的安装文件夹内,也可新建一个文件夹,注意在资源引用路径上修改即可。下文假设 QEMU 和系统映像、内核都在同一目录下。
为了在以后可以一键启动虚拟机,并且方便修改启动参数,新建一个批处理文件,暂且命名为 run.bat
,内容如下:
@echo off
.\qemu-system-arm -M versatilepb ^
-drive format=raw,file=2012-07-15-wheezy-raspbian.img ^
-kernel kernel-qemu-4.14.79-stretch ^
-net nic -net tap,ifname=tap0 ^
-cpu arm1176 ^
-m 256 ^
-dtb versatile-pb.dtb ^
-append "root=/dev/sda2 panic=1 rootfstype=ext4 rw"
pause
解释下需要更改的地方:
-drive format=raw,file=2012-07-15-wheezy-raspbian.img
挂载的驱动器镜像,我这里用的是:2012-07-15-wheezy-raspbian.img
,如果你的是其它文件,请改名;如果在其它文件夹,请改为绝对路径。-kernel kernel-qemu-4.19.50-buster
内核文件用的是kernel-qemu-4.19.50-buster
文件,根据你的内核文件名替换。qemu-rpi-kernel-master.zip解压出来后,挑出来的文件,没有扩展名。如果在其它文件夹,请改为绝对路径。-net nic -net tap,ifname=tap0
表示使用Tap网络模式,ifname填入的就是刚刚虚拟网卡的名称,因此填入刚刚更名的tap0。
其他参数解释:
-
-cpu arm1176
CPU用的是arm1176 -
-m 256
内存是256M,有点偏小,但是因为versatilepb上有个bug,不允许大于256M。 -
-dtb versatile-pb-buster.dtb
dtb文件是versatile-pb-buster.dtb,qemu-rpi-kernel-master.zip解压出来后,挑出来的文件,没有扩展名。如果文件不在QEMU文件夹,要加上地址。 -
-append "root=/dev/sda2 panic=1 rootfstype=ext4 rw"
未知
行末的
^
符号是长命令在脚本中换行的标记
保存后,双击.bat
启动即可。
测试
主要测试网络环境。使用命令查看网络情况:
ip a
出现类似如下的输出即代表成功。主要观察eth0项的inet是一个合理的IP地址:192.168.137.52(每台机器在不同的网络环境都不一样),如果不存在即代表出错,尝试对照前文修改
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.137.52/24 brd 192.168.137.255 scope global eth0
valid_lft forever preferred_lft forever
还有一种可能的原因是网卡的问题。比如,我的笔记本外接了绿联的外接网卡适配器,就会无法与虚拟网卡进行桥接,这时候在“配置网络环境”环节更换为其他网卡或许可以解决问题。
更换镜像源
目的是为了提高下载软件包下载速度。这个提升非常明显,强烈推荐更换为国内的镜像源。请直接参考:
https://mirror.tuna.tsinghua.edu.cn/help/raspbian/
关键是选对合适的系统版本(通常体现在img文件名上,见前文),如果一个不行就换另一个,总能对的。
比如我的
wheezy
版本的Raspbain就要使用jessie
的镜像源,使用wheezy
的却不行……我也不知道为什么。
参考资料
https://blog.csdn.net/chilwb/article/details/106474387
https://mirror.tuna.tsinghua.edu.cn/help/raspbian/
https://wiki.archlinux.org/index.php/QEMU_(中文简介)#Tap
内容总结
以上是互联网集市为您收集整理的Win10 下使用 Qemu 虛拟树莓派并配置联网全部内容,希望文章能够帮你解决Win10 下使用 Qemu 虛拟树莓派并配置联网所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。