QEMU模拟开发板系列5——虚拟机和开发板之间的通信

虚拟机和开发板之间的通信

网络互通

要想虚拟机和开发板之间可以传输文件,首先,一定要先ping通。
以下通过配置TAP的方式

  • 主机配置
tunctl -u root -t tap0					//创建tap0网卡
ifconfig tap0 172.16.16.10 promisc up	//配置tap0的ip并设置为混杂模式
  • 启动脚本
    在qemu的启动脚本中,添加以下两行
-net nic,vlan=0 \
-net tap,vlan=0,ifname=tap0,script=no,downscript=no
  • 虚拟机配置
ifconfig eth0 172.16.16.20

之后没有特殊情况的话就可以互ping通了。

或者直接新加一张网卡来实现

共享文件的方式有很多,为了方便,以下就采用nfs方式

NFS通信

  • 主机配置
    1.安装nfs-kernel-server
apt install nfs-kernel-server

2.修改nfs配置文件

vi /etc/exports

新增一行

/share    *(rw,sync,no_root_squash,no_subtree_check)

3.重启nfs服务器

service nfs-kernel-server start

4.查看配置情况

showmount -e

出现/share *这行表示配置成功

  • 虚拟机配置:
mkdir -p /mnt/nfs
mount -t nfs -o nolock 172.16.16.10:/share /mnt/nfs

之后就可以用share共享目录互传文件了。

Qemu上网

1.主机开启IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward	//重启后失效,要想永久,修改/etc/sysctl.conf中net.ipv4.ip forward=1

2.Qemu配置IP

ifconfig eth0 172.16.16.20 promisc up

3.配置主机Tap0网卡ip

ifconfig tap0 172.16.16.10 promisc up

4.主机配置静态路由

route add -net 172.16.16.0 netmask 255.255.255.0 dev tap0

5.主机配置iptable规则

iptables -t nat -A POSTROUTING -s 172.16.16.0/24 -o ens34 -j MASQUERADE
netfilter-persistent save

6.Qemu配置静态路由

route add default gw 172.16.16.10 dev eth0

7.Qemu ping 外网

实验

测试环境:

在这里插入图片描述

vmware主机上,有两张网卡,分别是ens34和ens35,ens34作为Wan口与Internet连接,ens35作为lan口和PC连接。
ens35的网段为16.16.16.0/24

步骤

1.ens35和PC互联(左边为Vmware设置,右边为PC设置)
在这里插入图片描述在这里插入图片描述
2,Vmware和PC设置静态IP进行互ping操作
在这里插入图片描述
在这里插入图片描述

3.在Vmware创建br0和tap0互通
创建br0

ifconfig ens35 down
brctl addbr br0
brctl addif br0 ens35
brctl stp br0 off
ifconfig br0 16.16.16.10/24 promisc up
ifconfig ens35 0.0.0.0 promisc up
brctl show br0
brctl showstp br0

创建tap0

tunctl -t tap0 -u root
brctl addif br0 tap0
ifconfig tap0 0.0.0.0 promisc up
brctl showstp br0

4.qemu与vmware相连
在启动命令中加入参数

-net nic,vlan=0 \
-net tap,vlan=0,ifname=tap0

4,互ping测试

QEMU模拟ARM开发板并进行系统移植的过程如下: 1. 安装QEMU:首先,你需要安装QEMU模拟器。你可以从QEMU官方网站下载适合你的操作系统的安装包,并按照官方文档的指导进行安装。 2. 获取ARM开发板固件:你需要获取一个ARM开发板的固件镜像,通常是一个包含操作系统和内核的映像文件。你可以从开发板供应商或开源项目中获取该镜像。 3. 创建虚拟机:使用QEMU的命令行界面,创建一个虚拟机实例,指定虚拟机的配置和硬件参数。例如,你可以指定虚拟机使用ARM架构,并设定虚拟机的内存大小、CPU类型和数量等。 4. 启动虚拟机:使用QEMU命令行启动虚拟机,并加载ARM开发板固件镜像。这将模拟一个ARM开发板的环境。 5. 进行系统移植:一旦虚拟机启动成功,你可以连接到虚拟机的控制台,通过串口或网络进行远程连接。然后,你可以在虚拟机中进行系统移植操作,例如安装驱动程序、配置网络设置等。 6. 测试和调试:完成系统移植后,你可以在虚拟机中进行测试和调试。你可以编译和运行应用程序,测试系统的功能和性能。 需要注意的是,ARM开发板的固件镜像可能是特定于某个具体开发板的,因此在模拟器中运行时可能会遇到一些兼容性问题。在进行系统移植时,你可能需要做一些调整和修改,以使其适应QEMU模拟器的环境。 希望这些步骤能够帮助你在QEMU模拟ARM开发板,并进行系统移植。如果你有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值