热度 25
2013-9-30 18:22
2367 次阅读|
0 个评论
两年前学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文件中每一行提供了一个共享目录的设置,命令格式为: 输出目录 输出目录是必选参数,其他参数都是可选的。格式中的输出目录和客户端之间、客户端与客户端之间使用空格分隔,客户端和选项之间没有 在/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 子网掩码