在嵌入式linux开发过程中,一般是在虚拟机中安装Linux发行版操作系统,然后在系统平台上进行开发。这时候会遇到虚拟机和目标硬件平台之间的网络环境搭建之间的诸多问题。
很多时候,由于种种原因,笔记本电脑和目标板卡之间无法通过路由器连接,本文描述一种网络环境搭建方法:能保证虚拟机中的Linux系统和物理机都能上外网,也能通过TFTP和NFS来进行开发调试。
环境如下:
(1)笔记本电脑(Windows系统)通过连接WiFi访问外网。
(2)笔记本电脑通过网口连接目标硬件板卡。
(3)虚拟软件为VMware Workstation。版本:16.0.0
(4)Linux发行版系统为:Ubuntu 20.04
(5)网线一根。
首先,查看笔记本电脑的网络适配器,这里小生的笔记本网络适配器如下图所示:
VMnet1和VMnet8:是安装VMware Workstation软件后,自动安装上的虚拟网卡。
Intel(R) Wi-Fi 6 AX201 160MHz:无线网卡。
Intel(R) Ethernet Connection (11) I219-V:以太网网卡。
从上图中,无线网卡连接成功,且能正常访问外网,以太网网卡识别到网络电脑被拔出。
然后使用网线将笔记本电脑和目标硬件板卡连接起来。
接着在Windows中,用鼠标右键单击“以太网”,选择“属性”,然后选择“Internet协议版本4(TCP/IPv4)”配置以太网的静态IP地址如下图所示:
然后点击“确定”,将笔记本电脑的以太网IP地址配置成192.168.1.10。
完成后,在Windows命令行下使用ipconfig查看IP地址信息:
从上图可知,以太网IP地址配置成功,无线WLAN的IP地址也都存在。
需要目标板卡上电后,笔记本电脑的以太网才会连接成功,也才能查看到对应的IP信息。
从上图可知,小生的笔记本电脑的IP地址配置如下:
(1)以太网IP地址:192.168.1.10 (静态配置)
(2)无线WLAN的IP地址:192.168.0.109 (动态获取)
上述内容描述了笔记本电脑上的网络配置,接下来将配置VMware Workstation虚拟网络。首先打开“虚拟网络编辑器”:
打开后,如下图所示:
选择“更改设置”后,将如下图所示:
选中VMnet2,然后选择“桥接模式”,并在下拉菜单中选择Intel(R) Ethernet Connection (11) I219-V以太网网卡。通过这种方式就将VMnet2桥接到了以太网,用于虚拟机Linux与目标硬件平台之间通过网络通信。
为了保证虚拟机Linux能访问外网,还需要添加一个网络:选择下图所示的“添加网络”选项:
然后点击“确定”,将创建一个名为VMnet0的网络,同样选中“VMnet0”网络,选择“桥接模式”,在下拉菜单中选择Intel(R) Wi-Fi 6 AX201 160MHz无线网卡,这样便将VMnet0桥接到Intel(R) Wi-Fi 6 AX201 160MHz无线网卡了。
最后,依次点击“应用”->“确定”。
通过上述步骤,已经在VMware Workstation配置了两个虚拟网络:VMnet0、VMnet2。在下文中,我们将他们添加到虚拟机Ubuntu中。
首先选中需要运行的虚拟机,右键单击,选择“设置”,然后选择“网络适配器”,选中“自定义”,在下拉菜单中选择VMnet0:
这样,便将VMnet0添加到虚拟机Ubuntu中了,这时候,我们还需要添加VMnet2,步骤如下:
选中“添加”,选择“网络适配器”,接着点击“完成”,完成后如下图所示:
我们仍然选择“自定义”模式,选择“VMnet2”,完成后,如下图所示:
通过以上步骤,我们完成了笔记本电脑上的网络配置和VMware Workstation的虚拟网络配置,让我们理一下思路:目前虚拟网络VMnet0是桥接到了无线WLAN,虚拟网络VMnet2是桥接到了以太网。
接下来,启动虚拟机Ubuntu,进入系统后,打开网络配置,这时候会看到两个网络:ens33、ens38
因为ens33表示的是VMnet0,该虚拟网络桥接到了无线WLAN,所以配置ens33时选择自动获取IP地址:
因为ens38是用于虚拟机Ubuntu连接目标硬件平台的,故需要设置该网络的IP地址与笔记本电脑的以太网IP地址在同一个网段内:笔记本以太网IP地址为192.168.1.10,故此处小生设置虚拟机Ubuntu的ens38网络的IP地址为192.168.1.30,如下图所示:
网络配置完成后,在Ubuntu终端下,输入以下命令:
sudo /etc/init.d/network-manager restart
重启网络。
然后在终端下输入ifconfig,可以查看IP地址信息,小生此处显示如下:
可见网络配置成功!
接下来就是测试一下整个网络配置是否通畅了:
(1)在虚拟机Ubuntu中,ping一下外网,能正常ping通,证明外网访问成功。
(2)目标硬件板卡、虚拟机Ubuntu、笔记本电脑三者之间互ping IP地址,如果能正常ping通,则证明嵌入式Linux网络开发环境搭建成功。
注意:如果ping不通,可能笔记本电脑禁止了专用网络访问,这时候需要关闭访问墙或者设置网络准入原则。还必须确保目标硬件板卡、虚拟机Ubuntu、笔记本电脑三者之间的IP地址在同一个网段。
总结
本文的目的是既要保证嵌入式Linux平台的网络环境正常工作,又要保证笔记本电脑(Windows)端、虚拟机Ubuntu都能正常访问外网。
实现的核心思路是:使用VMware Workstation虚拟两个网络VMnet0、VMnet2,VMnet0桥接到无线WLAN,实现外网的访问;VMnet2桥接到以太网,用于虚拟机Ubuntu与目标硬件板卡之间通过网线通信,便于嵌入式Linux平台下的开发和调试。
审核编辑:刘清
评论
查看更多