VMware多网卡的ARM开发网络环境构建
配置的开发环境为:双网卡的Windows Host主机,VMWare虚拟机中的Ubuntu VM,Arm Real6410开发板。
Windows主机的双网卡为3Com和Marvell,Marvell网卡主要用于Windows与外部互联网连接,3Com网卡主要是用于与Real6410通讯,Real6410通过直连网线与3com网卡相连。VMware的Ubuntu VM的网络设置为bridge方式,最初ubuntu采用桥接方式可以与互联网通讯的,能够下载、更新、安装最新的ubuntu packages。
网络环境的目标是:1)Ubuntu VM同时支持连接外部Internet,连接Real6410开发板;2)Windows Host同时支持连接Internet和Real6410;这样一方面开发者可以通过远程访问Windows Host,方便Arm系统开发;另一方面开发者可以非常便捷的使用Internet更新ubuntu VM软件,而不用在系统之间捣腾文件。
1.Windows Host网卡IP设置
我为Windows Host的3Com网卡设置的IP为192.168.1.30,由于这个网卡完全用于内部网络开发,不用设置gateway和namesever。
2.Real6410开发板IP设置
Real6410设置的IP为192.168.1.20,同样不需要设置网关和域名服务器。
3.Ubuntu VM的网卡设置
Ubuntu VM同时支持访问internet和开发板的自主内网,那么必然需要在VMware中再为ubuntu添加一块新网卡,一块访问internet,一块开发板网专用。
在ubuntu VM关机的情况下,在VMware中为其添加一个连接方式为bridge的网卡(名称为Network Adapter 2),原有的ubuntu的网卡连接方式也为bridege(名称为Network Adapter 1)。然后启动系统,在ubuntu中设置每个网卡的IP。网卡1设置动态DHCP获取IP,网卡2设置自主开发板网的IP。
$ sudo emacs –nw /etc/network/interfaces
# 修改文件/etc/network/interfaces如下文
# The loopback network interface(配置环回口)
auto lo # 开机自动激lo接口
iface lo inet loopback # 配置lo接口为环回口
# The primary network interface (配置网卡1,用于连接internet)
auto eth0 #开机自动激活eth0接口
iface eth0 inet dhcp
# The second network interface (配置网卡2,静态IP地址)
auto eth1 #开机自动激活eth1接口
iface eth1 inet static #配置eth1接口为静态设置IP地址
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
# do not set the gateway for dev network
#gateway 192.168.1.1
$sudo emacs –nw /etc/resolv.conf
##设置DNS server(可以设置多个)
#nameserver 124.16.136.254
$ sudo /etc/init.d/networking restart # 重启网络
这样设置虽然没用问题,但是VMware是没办法实现这两个网卡各自网络的通讯的,因为VMware只能设定一种bridge方式的通讯,例如ubuntu的2个网卡如果都是通过Host主机的3Com网卡实现桥接,那么ubuntu的dhcp配置的网卡显然不能成功,同样适用Marvell网卡桥接也是类似问题。
针对这个问题,那么创建ubuntu新网卡是将Network Adapter2设置为Custom方式,Vmware中我指定VMnet2作为Host和VMware VM的虚拟交换网,而通用设置bridge方式使用的是VMnet0作为虚拟交换网。然后进入VMware的菜单Edit—》Virtual Network Editor编辑VMware的网络设置。
我将VMnet0设置指定到桥接到Windows主机的Marvell网卡,而VMnet2我设置为bridge方式,桥接到3Com网卡。这样一个复杂的WMware虚拟网、Arm开发板与主机系统的复杂网络环境就构建成功。最后重启ubuntu的网络,相互直接都能够连接成功,Windows主机以及Ubuntu都能够自动访问Internet,也能够远程登录,满足了Arm开发板网络的需求。最后将这个arm自主的开发网络环境总结成图,如下: