前言

嵌入式Linux开发中,由于目标板中有操作系统和文件系统,在下载程序时不能使用类似51之类的串口下载方式,而是通过例如NFS连接将文件传输到开发板中。
Windows环境是大多数用户熟悉的,本次实验使用的Hi3518开发环境也可以在Windows下,但是网络上大部分为嵌入式开发板和Linux开发机(Ubuntu为主)进行挂载,不具有借鉴性,而且由于嵌入式Linux的精简,很多设置和命令不能进行。
本文以以上叙述作为背景,通过使用NFSAXE软件,可以实现在Windows开发环境下的嵌入式Linux的NFS网络文件系统挂载。

实验环境

——嵌入式开发板——
Hi3518EV200 DEMO板,仅移植官方HILinux,内核版本Linux 3.4.y
——Windows平台——
Windows 10 1903(18362.356)
——需要使用的软件——
NFSAXE
SecureCRT
必要的串口驱动(板上芯片为CP2104)
——连接的方式——
开发板通过串口连接到计算机,网口连接到路由器,计算机网口连接至同一路由器

Windows中的准备

我们的目的是将Windows下的目录挂载到Hi3518E的开发板上去,由于官方提供的内核镜像已经包含了网口驱动一类的底层实现,所以使用DEMO板无需考虑这些因素。
首先需要准备NFSAXE软件,该软件提供了Windows下的NFS服务器搭建,配置过程非常简单。

  1. 安装NFSAXE,这部分请参见【参考】
  2. 启动NFS-Server,首次启动会提示进行设置:

    点击“是”继续。
  3. 此时会弹出配置界面,首先选择需要挂载的目录:

    添加完成后如下所示:
  4. 选中添加后的目录,点击“Add User Access(添加用户许可)”,并取消只读选项,如下所示:

    按确定并在弹出的框中选择保存,至此Windows端NFS服务器配置完成。

嵌入式开发板操作

以下操作基于HI3518EV200 DEMO开发板及海思SDK说明文档

  1. 开发板连接,电脑端开启SecureCRT,开发板上电(确保内核和根文件系统是正常工作的),SecureCRT会打印成功开机的提示,如下所示:
  2. 若要使用NFS文件系统,必须先配置网络环境,并保证开发板的网络和开发机网络处于同一网段内,如果没有保存操作,则每次上电均需要重新配置网络。可以通过ping网关或网络内其它机器查看连接是否正常。
    在Linux下查看网络信息的命令是:
ifconfig

根据《Hi3518EV20X/Hi3516CV200 SDK 安装以及升级使用说明》(官方SDK包中的文档),网络配置语句如下(这些语句中的参数可以自行设置):

ifconfig eth0 hw ether 14:cf:92:5a:a0:ca;
ifconfig eth0 192.168.1.150 netmask 255.255.255.0;
route add default gw 192.168.1.1

依次输入并执行后,SecureCRT的显示如下:

linux 挂载nfs 文件 linux挂载windows nfs_linux 挂载nfs 文件


ping网关和开发机的结果如下,则表示成功:

linux 挂载nfs 文件 linux挂载windows nfs_NFS挂载Windows目录_02

  1. 使用如下语句将Windows端指定的目录挂载到开发板Linux下的mnt目录中:
mount -t nfs -o nolock 192.168.1.2:/d/share /mnt

执行结果如下图所示:

linux 挂载nfs 文件 linux挂载windows nfs_Windows_03


挂载时使用的参数请自行查找。挂载成功后使用“mount”命令查看挂载的设备。此时在Windows下的目录中创建文件,在Linux端可以查看:

linux 挂载nfs 文件 linux挂载windows nfs_Windows_04


linux 挂载nfs 文件 linux挂载windows nfs_linux 挂载nfs 文件_05