我们再进行嵌入式开发的时候,总是会想要找到跟简单跟快捷的开发方式。
那么nfs启动根文件系统就是一种非常快捷方式。
nfs是什么呢?
Network file system知道这个全称我们大概就明白它是什么东西了。对它有一个直观的印象了。
网络文件系统(Network File System,NFS ),是在 Unix 系统间实现磁盘文件共享的一种方法,它支持应用程序在客户端通过网络存取位于服务器磁盘中数据的一种文件系统协议。最早于1984年由sun公司开发。功能是透过网络让不同的机器、不同的操作系统能够彼此分享个别的资料。
通过nfs启动根文件系统有什么好处呢?
回答这个问题,我们先来看看我们开发的模式是什么呢?
因为开发板上条件有限,所以不可能进行代码的编辑和修改,只能进行应用程序的验证。
而代码的编写,应用程序的开发却是在主机上进行的。我们开发的应用程序呢,都是放在根文件系统中。
可以说根文件系统是应用程序运行的载体。这样我们就能想到在我们的开发过程中一个繁琐的工作就是不断的
把我们修改后的文件系统下载到开发板中去了。
尽管,三星公司有一个比较好的DNW软件(通过U口下载)使得下载速度有了很大的提高(比起串口的115200),
但是相对于10M/S的网络来说还是有一定差距的。
所以便有了这种通过网路启动文件系统的开发模式。从上面的叙述不难总结出nfs启动文件系统的优点便是省时
简单。
然后,我们来看看怎么通过nfs启动根文件系统
关于他的设置,主要分成两大部分
第一:主机的设置,主机必须支持nfs,同时防火墙需要关闭
第二:开发板bootlaoder,kernel 的设置。
1.先安装nfs
apt-get install nfs*
或者
yum install nfs*
2.设置共享目录
在内核源码目录中
执行make menuconfig
进入file system
-》Network file systems
-》NFS client Support
-》Root file system on NFS
进入bootoption
选项(也可以修改.config)
添加如下参数
console=ttyS0 root=/dev/nfs nfsroot=192.168.99.51:/home/bz/nfsd ip=192.168.99.52:192.168.99.51:192.168.99.1:255.255.255.0:matrix4.arm9.net:eth0:off
其中那个IP参数的意思是:板子的地址:主机的地址:网关:子网掩码:主机名:网卡:off
主机名意义不大,重要的是板子的ip地址,和主机的地址一定要在同一网段。
接着在bootloader中设置ip地址为以上的板子ip。
4启动开发板,将网线连接好。
这样你就可以通过NFS启动根文件系统了。