在学习正点原子Linux开发板的时候,视频教程中电脑和开发板都接的是路由器,这样在使用nfs 命令时,虚拟机和开发板的网络是通的,nfs命令就可以直接使用。但是自己在使用的时候,没有路由器,只能用网线将开发板和电脑直接连起来,这样直接使用nfs命令时就会出现网络不通的情况。经过一番研究,终于调试成功了,现在记录下设置方法。

        默认情况下都是在Windows系统中装一个虚拟机,然后在虚拟机中安装Ubuntu系统。由于目前大多数电脑都是笔记本,使用的是无线网络。这样在装虚拟机的时候,设置网络时默认的选择的桥接模式用的是无线网卡。这样虚拟机就可以共享Windows的无线网卡来上网了。但是如果用网线将笔记本和开发板连接起来后,使用的是有线网卡。这样开发板就不能通过有线网卡直接访问到虚拟机中的Ubuntu系统了。所以第一步就要把虚拟机的网络设置为有线网卡桥接。在设置前记得给虚拟机联网并安装好需要用到的服务,因为虚拟机切换为有线桥接时就不能上网了。用网线直接连接开发板和笔记本,不需要接路由器。下面开始设置参数。

1,设置桥接网络。

先关闭虚拟机,然后在虚拟机软件Oracle VM VirtualBox中选择设置。

NFS适合小文件吗 nfs下载文件_虚拟机

然后在左边选择网络

NFS适合小文件吗 nfs下载文件_NFS适合小文件吗_02

然后在右边网络选项中选择启用网络连接前面打钩,连接方式选择桥接网卡。

NFS适合小文件吗 nfs下载文件_nfs_03

然后在界面名称中就会出现两个网卡,一个是无线网卡,一个是桥接网卡。如果虚拟机想要联网的话,就选择无线网卡。如果虚拟机要通过网线和开发板直接访问的话,这里就必须选择有线网卡。

NFS适合小文件吗 nfs下载文件_NFS适合小文件吗_04

设置完成后点OK按钮。

NFS适合小文件吗 nfs下载文件_网线_05

然后点启动按钮,启动虚拟机。

2.设置IP地址

下面设置笔记本有线网络的IP地址。

NFS适合小文件吗 nfs下载文件_虚拟机_06

设置本地连接的IPV4地址为 192.168.1.100,下来设置虚拟机Ubuntu系统的IP地址。

NFS适合小文件吗 nfs下载文件_NFS适合小文件吗_07

在Ubuntu桌面右上角点网络图标,然后鼠标在有线已连接上单击一下,在展开的选项中选择有限设置。

NFS适合小文件吗 nfs下载文件_NFS适合小文件吗_08

在打开的界面中左侧选择网络,然后单击右边的网络设置按钮。

NFS适合小文件吗 nfs下载文件_虚拟机_09

选择IPv4选项页设置IP地址,选择手动,然后在底下地址栏输入地址、子网掩码、网关。讲Ubuntu的IP地址设置为192.168.1.66,设置好之后点击右上角应用按钮。

设置好IP地址后,下面就可以测试Windows系统和Ubuntu系统的网络是否可以互相访问了。

3.测试网络

首先查看Windows系统和Ubuntu系统的IP地址是否设置的正确。

NFS适合小文件吗 nfs下载文件_nfs_10

在Windows系统中在命令提示符中输入ipconfig 查看本机IP地址,在Ubuntu系统中,输入ifconfig查看本机地址。可以看到两个系统的IP地址设置都正确。下来用ping命令测试两个网络通不通。

NFS适合小文件吗 nfs下载文件_直连_11

在分别使用ping命令ping另一个系统的IP地址,测试结果显示网络延时小于1ms,说明网络环境非常好。接下来开始设置开发板IP。

4.设置开发板网络参数

开发板要使用nfs命令,前提是要向开发板里面下载好uboot系统,具体下载方法参考 这篇文章。

开发板的uboot系统下载好之后,打开串口终端软件,复位开发板,在倒计时结束前按下键盘上任意按键。

NFS适合小文件吗 nfs下载文件_NFS适合小文件吗_12

下面设置开发板的网络参数

NFS适合小文件吗 nfs下载文件_NFS适合小文件吗_13

设置开发板的IP地址、网卡地址、网关地址、子网掩码、服务器地址。

这里的服务器地址就是Ubuntu系统的IP地址,因为是要直接从Ubuntu系统中下载数据。

设置好之后使用printenv命令查看一下环境变量

NFS适合小文件吗 nfs下载文件_虚拟机_14

NFS适合小文件吗 nfs下载文件_NFS适合小文件吗_15

接下来测试开发板与笔记本的网络

NFS适合小文件吗 nfs下载文件_NFS适合小文件吗_16

通ping命令测试,可以看到开发板和Windows系统,Ubuntu系统的网络都是通的。说明使用网线直接连接开发板和虚拟机是可以的,这样在以后的学习中就可以不用通过路由器就可以直接给开发板下载文件了。

下面就测试一下开发板使用nfs命令从Ubuntu系统中下载文件。

首先将正点原子制作的zImage文件发送到Ubuntu系统中的nfs文件夹中。

NFS适合小文件吗 nfs下载文件_虚拟机_17

下面在开发板中使用nfs命令将zImage下载到开发板中,在串口终端中输入下面命令。

nfs 80800000 192.168.1.66:/home/hxydj/linux/nfs/zImage

意思就是从 192.168.1.66这个IP地址中下载指定文件夹中的内容到 0x80800000开始 地址处。

NFS适合小文件吗 nfs下载文件_直连_18

下载时出现了一个错误,这个错误是Ubuntu系统兼容性导致的。我的虚拟机版本是ubuntu version:18.04, ubuntu 默认的NFS版本为V3,V4及以上版本,而开发板中的NFS版本为V2版本,所以导致错误。这里需要修改一下配置文件。详细的步骤是参考这篇文章的:

4.修改Ubuntu系统nfs配置文件

在Ubuntu系统中用管理员权限打开 nfs-kernel-server 文件

NFS适合小文件吗 nfs下载文件_nfs_19

修改文件中内容

NFS适合小文件吗 nfs下载文件_NFS适合小文件吗_20

新添加的内容为第3行,第14行,第22行。

修改完成之后保存退出。

重启NFS服务器。sudo service nfs-kernel-server restart

NFS适合小文件吗 nfs下载文件_直连_21

5.下载镜像文件

下来继续在串口终端使用nfs命令下载zImage文件。

NFS适合小文件吗 nfs下载文件_直连_22

这次镜像文件就可以下载到了开发板,那么怎么验证下载的数据是否正确呢?

6.验证数据

下载结束后要验证下载的数据是不是正确,在串口终端中输入内存查看命令

md.b 80800000 100

NFS适合小文件吗 nfs下载文件_nfs_23

查看从0x80800000地址启动,0x100个数据的内容,然后在Windows系统中用户notepad++软件打开zImage镜像文件,通16进制查看镜像文件中的数据。

关于如何查看16进制文件,可以参考 这篇文章。

NFS适合小文件吗 nfs下载文件_虚拟机_24

通过对比开发板中和镜像文件中的内容可以看到,下载的文件是正确的。也验证了上面的步骤都是正确的,开发板可以通过网线直接和笔记本中的虚拟机进行通信。这样就可以省下买路由器的钱啦! 哈哈!