两年前学linux嵌入式的时候,有一堆视频,一堆书,两个arm板,说起来资源也算丰富,但就是没有人教,自己看视频,看书,看得浑浑噩噩,什么都是半懂半不懂。然后什么搭建平台,什么内核,根文件系统,完全处于半迷茫状态,然后也不知道去看源码,就是看书,然后碰到问题就百度,按照百度的说法照着做,即使解决问题了,也不知道为什么,现在回想起来,当时的方法太不对了。当时搭建一个NFS就花了一两周的时间,然后成功了但是都不知道怎么成功的。
隔了两年又拿起arm板,这次聪明多了,先uboot,再内核,再根文件系统,有问题边百度边看源码,加上韦东山老师的书,总算明白了许多。今天又搭建NFS系统,一次性成功。多么值得纪念一下。
1,检查系统中是否已经安装了所需软件包
执行命令Rpm –q nfs-utils portmap
结果是
nfs-utils-1.0.1-2.9
portmap-4.0-54
如果未安装可以在安装光盘的RedHat/RPMS目录下找到
执行
rpm –ivh nfs-utils-1.0.1-2.9.i386.rpm安装NFS服务
rpm –ivh portmap-4.0-54.i386.rpm 安装portmap服务
建议安装红帽系统的时候选择自定义,然后选择所有的选项,这样nfs,ftp什么的应该都安装了。
2,在根目录下建立文件夹/forliux/root
3,拷贝(自己做一个也行)制作好的根文件系统(没有经过镜像制作的),到刚才目录下。
4,NFS服务的配置
主配置文件/etc/exports
该文件默认为空。可以定义NFS系统的输出目录(共享目录)、访问权限和允许访问的主机等参数。Exports文件中每一行提供了一个共享目录的设置,命令格式为:
输出目录> [客户端1(选项1,选项2,…)][客户端2(选项1,选项2,…)]
输出目录是必选参数,其他参数都是可选的。格式中的输出目录和客户端之间、客户端与客户端之间使用空格分隔,客户端和选项之间没有
在/etc/exports文件最后一行添加下面这个东西。就是让forlinx这个目录为共享。
/forlinx *(rw,sync,no_root_squash)
5,重启nfs和portmap,然后设置开机自启动。具体操作方法参见下面的命令。(我的红帽系统要使用后面的命令,前面的识别不到)
①NFS正常工作需要启动portmap和nfs这两个服务,并且portmap要先于nfs启动:
/etc/init.d/portmap start或service portmap start
/etc/init.d/nfs start或service nfs start
②停止NFS服务
/etc/init.d/nfs stop或service nfs stop
/etc/init.d/portmap stop或service portmap stop
③重启NFS
/etc/init.d/nfs restart
④检查portmap和nfs服务的状态
/etc/init.d/portmap status或service portmap status
/etc/init.d/nfs status或service nfs status
⑤设置开机自启动NFS 服务
Chkconfig --level 35 portmap on
Chkconfig –level 35 nfs on
6,在u-boot命令行下输入以下命令设置U-boot启动参数:
#setenv bootargs "root=/dev/nfs nfsroot=192.168.0.231:/forlinx/root
ip=192.168.0.232:192.168.0.231:192.168.0.201:255.255.255.0:witech.com.cn:eth0:off console=ttySAC0,115200"
保存:
#saveenv
重新启动开发板,Linux内核启动后会自动挂载NFS文件系统。
在这,解释一下bootargs参数中IP,以上述设置为例。在实际使用过程当中,请以实际
网络环境进行修改:(保证虚拟机和开发板之间能ping通)
192.168.0.231 PC端Ubuntu的IP
192.168.0.232 开发板IP
192.168.0.201 网关
255.255.255.0 子网掩码
文章评论(0条评论)
登录后参与讨论