Qemu模拟ARM之配置网络

Qemu模拟ARM之配置网络

系统:Ubuntu16.04.4 32bit
交叉编译器:arm-linux-gnueabihf-gcc
VMware:VMware Workstation 14 Pro
u-boot:u-boot-2018.03

uboot引导通过网络来加载linux,需要桥接网卡

1.安装桥接工具

sudo apt-get install uml-utilities
sudo apt-get install bridge-utils

2.添加网卡

sudo  vi /etc/network/interfaces

#在文件最后添加以下配置
auto ens33
auto br0
iface br0 inet dhcp
bridge_ports ens33

这里写图片描述
重启sudo reboot后使用ifconfig来查看是否br0存在且分配到了ip地址,如果有则说明添加网卡成功
这里写图片描述
qemu使用tap设备时,会执行 /etc/qemu-ifup/etc/qemu-ifdown 这两个脚本,但是这两个脚本在安装qemu时创建了,这里将已经存在的这两个脚本备份,然后将内容替换如下

/etc/qemu-ifup:

#!/bin/sh

echo sudo tunctl -u $(id -un) -t $1
sudo tunctl -u $(id -un) -t $1

echo sudo ifconfig $1 0.0.0.0 promisc up
sudo ifconfig $1 0.0.0.0 promisc up

echo sudo brctl addif br0 $1
sudo brctl addif br0 $1

echo brctl show
brctl show
#设置ip
sudo ifconfig br0 192.168.1.111
#设置ens33网卡ip
sudo ifconfig ens33 192.168.1.101

/etc/qemu-ifdown:

#!/bin/sh

echo sudo brctl delif br0 $1
sudo brctl delif br0 $1

echo sudo tunctl -d $1
sudo tunctl -d $1

echo brctl show
brctl show

如果你的这两个脚本是新建的需要给它们添加执行权限

sudo chmod 755 /etc/qemu-ifup
sudo chmod 755 /etc/qemu-ifdown

每次启动ubuntu后都要执行/etc/qemu-ifup tap0,这样qemu才能正常联网
这里写图片描述

3.修改UBOOT支持网路

//vi include/configs/vexpress_common.h
#define CONFIG_IPADDR   192.168.1.115 //板子的ip
#define CONFIG_NETMASK  255.255.255.0
#define CONFIG_SERVERIP 192.168.1.101 //虚拟机ip

重新编译,使用qemu来测试网络是否可用

# -serial stdio
qemu-system-arm -M vexpress-a9 -nographic -kernel u-boot  -net nic,macaddr=52:54:00:11:22:33 -net tap,ifname=tap0,script=no,downscript=no

这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/wyy626562203/article/details/80072828
今日推荐