一、手动挂载
1.首先配置服务器
(1)、编辑配置文件,修改exports文件
sudo vi /etc/exports
/work/nfs_root/first_fs *(rw,nohide,insecure,no_subtree_check,async,no_root_squas h)
(2)、重启NFS服务
sudo /etc/init.d/nfs-kernel-server restart
(3)、本机测试
sudo mount -t nfs 192.168.1.100:/work/nfs_root/first_fs /mnt
如果没有任何提示,就表明已经成功了,下面开始配置开发板
2、配置开发板
整个过程如图:
(1)、首先保证开发板和服务器再同一网段中,能够ping,再设置开发板的IP,和服务器在同一网段
如图(开发板的IP可以随意设置,但要保证和服务器在同一网段)
ifconfig eth0 192.168.1.11
(2)、测试能否ping通,我的服务器的IP为192.168.1.100
ping 192.168.1.100
(3)、设置挂载点
mkdir /mnt
mount -t nfs -o nolock 192.168.1.100:/work/nfs_root/first_fs /mnt
手动挂载就完成了,可以进行以下测试:
在服务器中创建一个test.txt文件,到开发板中查看是否有该文件,内容是否一样
如果一样,表明已经成功了
二、自动挂载
上面那种形式是直接从flash启动,再用命令挂接NFS
接下来自动挂载就是直接从NFS启动
(其中NFS的说明文档在内核源码的Documentation目录下面的nfsroot.txt文件,有能力的话可以参考)
1、设置开发板的bootargs
输入设置命令
# set bootargs nointrd root=/dev/nfs nfsroot=192.168.1.100:/work/nfs_root/first_fs ip=192.168.1.11:192.168.1.100:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
# save
关于具体的格式,请参照linux内核源码的Documentation目录下面的nfsroot.txt文件
然后在开发板上的dev目录下创建nfs目录
重启开发板
2、测试
服务器中在根文件目录下创建hello.c文件
1 #include <stdio.h>
2
3 int main()
4 {
5 printf("hello world!\n");
6 return 0;
7 }
8
用交叉工具编译
arm-linux-gcc -o hello hello.c
在这里可以正常运行,完成