这篇的主要目的是将PC端(server)和开发板端(client)之间共享文件。
事先声明:本人的PC端是直接安装Ubuntu系统的,所以在操作的时候没有虚拟机这个概念。
linux版本:2.6.22.6
----------------------------------------------------------------------------------------------------------------------------------
一、硬件连接
唯一要求:client的网线应该连接上server或者是给server提供服务的router。
比如说我的硬件配置:开发板连接网线至PC端,PC端连接无线网络。(建议配置)
二、IP地址设置
唯一要求:client的网段应该和server的网络号一样
Step1: 设置server的IP地址
安装网络工具(我们需要查看当前IP地址):
$sudo apt install net-tools
Step2:查看server的IP地址
$ifconfig 或者 $ip link
运行后会显示所有网卡,找到静态网络连接对应的网卡(有线接口),比如说以我的网卡:enp0s25(小技巧,插拔变换)
Step3:设置server的IP地址
如果是通过无线网络连接的,则手动设置该网卡的IP地址
<网卡名> <set IP> <set netmask>
$sudo ifconfig enp0s25 192.168.2.100 netmask 255.255.255.0
IP地址可以抄无线网络的网络号,然后改一个主机号
Step4:设置U-boot的IP地址
首先在U-boot的环境下执行print。打印出当前的状态:
print
然后会出现当前的IP地址:
ipaddr=192.168.3.122
netmask=255.255.255.0
可以看出,当前的网络号与server的网络号不一致,则可以通过以下命令对其进行修改:
u-boot>setenv ipaddr 192.168.2.101 //设置IP地址
u-boot>saveenv //保存环境变量
接着实验下能不能PING到主机。
u-boot>ping 192.168.2.100
若一切顺利会出现:host 192.168.2.100 is alive
Step5:设置client地址
类似于server寻找接口网卡的名字,查找到client的网卡名: eth0
设置系统启动配置文件:ect/init.d/rcS。 设置client的IP地址:
ifconfig eth0 192.186.2.102 netmask 255.255.255.0
Step6:重启开发板系统
client试着ping一下server的IP地址,如果成功就大功告成
三、配置nfs文件夹
首先了解下mount命令,可以阅读这篇博文(我觉得简洁明了)linux中mount命令参数详解(nfs 参数)
既然都用了nfs了,就顺便了解下nfs的原理,在CSDN上非常多的资料,这里给一个比较好的。NFS服务器搭建与配置
然后开始配置nfs文件。
Step1:配置uImage
server在与开发板相同版本的Linux的文件下,进行配置装载相应支持nfs的驱动文件
$make menuconfig
进入配置界面:file system -> network file system -> 把关于nfs的驱动文件配置进系统。在保证usr/local/bin 目录下有从u-boot中拷贝来的mkconfig文件的前提下,输入指令进行配置uImage文件:
$make uImage
接着在u-boot环境下通过dnw装载uImage。
Step2:server安装nfs服务端
$sudo apt-get install nfs-kernel-server
Step3:在server中新建共享目录并添加权限
$mkdir <需要共享的目录>
$chmod 777 <需要共享的目录>
之后共享的目录以~/work/NFSshare代替
Step4:server中nfs服务配置
打开 /etc/exports 文件添加以下命令:
/home/<name>/work/NFSshare *(rw,sync,no_root_squash,no_subtree_check)
其中*代表可以与允许任意网段访问该目录下文件(只读)
接着重启nfs服务使配置生效
$sudo /etc/init.d/nfs-kernel-server restart
此时可以查看下可挂载的目录了
$showmount -e
Step5:client挂载nfs
通过以下代码,就可以通过nfs将server和client的两个文件共享起来
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.2.100:/home/<name>/work/NFSshare /mnt
更进一步可以将这行代码写进 /etc/init.d/rcS文件中,在开机的时候自动连接(保证每次都使用一台电脑,并且网线需要连起来)。