一、在linux系统主机下安装NFS服务器
在ubuntu10.04下安装命令为:
sudoapt-get install nfs-kernel-server
二、配置nfs服务器
在ubuntu下安装完ssh服务器后默认开机启动,其他linux发行版具体安装与启动在此不再说明。
修改nfs服务器配置文件
/etc/exports
在该文件最后添加一行:
/home/liu/rootfs *(rw,sync,no_root_squash)
意义为通过nfs共享的目录为/home/liu/rootfs,其后的‘*’代表允许所有ip访问,也可以把‘*’换成‘192.168.0.*’等正则表达式,来限制访问的ip,括号里的两个参数意为可读可写,且无root权限限制,即若挂载该目录为根文件系统后可以具有root权限。
执行exports –r使配置生效。
sudo mount –tnfs localhost:/home/liu/rootfs /mnt
若成功则说明nfs设置成功。
三、确保内核支持nfs跟文件系统。
makemenuconfig
在选项File systems --->Network File Systems --->
下相关的nfs版本及nfs根文件系统的相关选项选上。
四、挂载nfs根文件系统。
方法一:先启动一个文件系统(无论是yaffs,ramdis等等),进入shell后
mount –t nfs192.168.0.22:/home/liu/rootfs /mnt -o nolock
chroot /mnt
即可进入nfs根文件系统。需要先配置好ip,可以把配置ip及以上两步操作写入启动脚本。
方法二:内核启动时直接挂载nfs根文件系统。
在u-boot下配置环境变量:
<1>setenv serverip192.168.0.22;setenv gatewayip 192.168.0.1;setenv netmask 255.255.255.0;setenv hostname ubuntu;
setenv rootpath /home/liu/rootfs/p2020_rootfs;
<2>setenv bootargs 'root=/dev/nfs rw nfsroot=$serverip:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off console=${consoledev},${baudrate} ${otherbootargs}'
注意每一项参数是一行,没有换行符,不能直接复制粘贴。带有’$’符号的为变量,根据自身板卡的情况填写。
若调试内核,使用tftp下载时命令如下:
<3>tftp ${loadaddr} ${bootfile};tftp${fdtaddr} ${fdtfile};bootm ${loadaddr} - ${fdtaddr}
若直接使用NOR上烧写好的内核和dtb映像的话,命令如下:
<4>bootm ef080000 - ef040000
注:powerpc下uboot 启动linux的命令bootm 需要3个参数: 内核地址 、ramdisk地址、 dtb地址。
例如uboot使用ramdisk启动内核,最后一条命令为
bootm ${loadaddr} ${ramdiskaddr} ${fdtaddr}
而不使用ramdisk时,uboot最后一条命令为
bootm${loadaddr} - ${fdtaddr}
其中${loadaddr}是内核镜像物理地址,${ramdiskaddr}是ramdisk镜像物理地址,$fdtaddr是dtb文件的物理地址。这三个文件都在flash上。