前面试过了SD卡烧录根文件系统,然后借助环境变量 bootargs 来加载SD卡中的根文件系统,但是实际开发需要经常对文件做增删改等操作,所以将根文件系统放在SD上不大合适。
因此,最常用的做法是把根文件系统放在NFS服务端(虚拟机上),开发板通过网络连接到NFS,这样的话,开发板和虚拟机可以共享根文件系统。
建议:在配置网络之前,最好先在虚拟机上装好 NFS、TFTP 服务器。(NFS、TFTP服务器搭建)
目录
1、配置思路
让开发板可以连接到虚拟机的关键:保证三台设备(开发板、电脑主机、虚拟机)在同一个网段
假设开发板和电脑主机之间使用网口连接(有线连接),这样的话就相当于电脑主机的以太网网卡与开发板的eth0网卡建立了连接。
虚拟机设置为桥接模式,此时虚拟机默认连接的是 VMnet0 虚拟网卡。这样很显然是无法和开发板进行通信的,发给VMnet0网卡的东西又不会转到以太网网卡。
因此,我们要在“虚拟网络编辑器”中,将虚拟机的网卡桥接到以太网网卡。
2、开发板配置
假设使用的 eth0 网卡,为了保证三个设备在同一个网段,我们以电脑主机的以太网网段为核心开始配置。
查看电脑主机所在网段
按 win + R,输入cmd,查询网络信息使用的命令是 ipconfig
从上图我们可以大致推断出,以太网所属网段是 169.254.0.0 ~ 169.254.255.255,子网掩码是 255.255.0.0。因此我们给开发板和虚拟机的IP地址暂定为:
- 开发板
- IP:169.254.162.163
- 子网掩码:255.255.0.0
- 网关:169.254.162.1
- MAC地址:b8:ae:1d:01:00:00
- 虚拟机
- IP:169.254.162.189
- 子网掩码:255.255.0.0
- 网关:169.254.162.1
修改环境变量
为了后续方便,开发板在配置的时候,除了自身IP外,还需要额外加入虚拟机相关的网络信息:
环境变量 | 含义 |
ipaddr | 开发板IP |
ethaddr | 开发板MAC地址 |
netmask | 开发板子网掩码 |
gatewayip | 开发板网关 |
serverip | 虚拟机IP |
# -------------------------- 开发板IP -------------------------
=> setenv ipaddr 169.254.162.163
# -------------------------- 开发板MAC -------------------------
=> setenv ethaddr b8:ae:1d:01:00:00
# ----------------------- 开发板子网掩码 -----------------------
=> setenv netmask 255.255.0.0
# ------------------------- 开发板网关--------------------------
=> setenv gatewayip 169.254.162.1
# -------------------------- 虚拟机IP -------------------------
=> setenv serverip 169.254.162.189
=> saveenv
Saving Environment to MMC...
Writing to MMC(0)... done
3、虚拟机配置
最开始说到,虚拟机设为桥接模式,由于桥接模式下默认连接的是 VMnet0 网卡,所以我们要先修改“虚拟网络编辑器”,桥接到以太网网卡。
设为桥接模式
桥接到以太网网卡
点击“虚拟网络编辑器”
选择更改设置,此时我们可以看到,VMnet0 是桥接模式所使用的网卡,此时的连接状态是自动连接,即默认连接到 VMnet0 网卡。
找到你的以太网网卡, 然后点击 “应用 —— 确认 ”
配置虚拟机IP
现在已经让你的虚拟机连接到了你的以太网网卡,剩下的就是为你的虚拟机分配IP,配置方法可以是图形化界面配置,也可以是通过配置文件配置。这里我们选择图形化界面配置。
一切按照先前计划好的进行配置
4、网络测试
最后就是网络测试了,首先我们检查一下开发板是否可以ping通电脑主机
然后再检查一下是否可以ping 通虚拟机
大功告成!