配置制作nfs文件系统

准备:开发板与宿主机都通过交叉网线连接到路由器

1,编译内核
1)清除原有配置文件 make distclean
2)配置内核
a:   cp FORLINUX6410_CFG .config
b:   make menuconfig ARCH=arm   进入File systems选项,进入Network File systems选       项,确认root file system on nfs选中   保存退出
c: vi .config   搜索CMD   /CMD   更改CONFIG_CMDLINE="console=ttySAC0 root=/dev/mtdblock2 rootfstype=cramfs init=/linuxxrc"   为  CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.12.163:/xh/work/rootfs ip=192.168.12.126 rw console=ttySAC0 mem=256M"

3)编译内核
make uImage ARCH=arm CROSS_COMPILE=arm-linux-
2,配置宿主机
  1)vi /etc/exports
添加 /xh/work/rootfs 192.168.12.* (rw,sync,no_root_squash) 开放目录
  2)解压rootfs_nfs.tar.gz 至 /xh/work/rootfs目录下,或自己制作根文件系统。
  3)把编译好的内核拷到tftpboot下   cp .../arch/arm/boot/uImage /tftpboot

3,配置开发板并启动
  1)用SD卡把带网络功能的uboot烧写到开发板后,nandflash启动
  2)设置uboot环境变量 
setenv ipaddr 192.168.12.126   // 开发板ip
setenv serverip 192.168.12.163 //宿主机ip
setenv gatewayip 192.168.12.1 //网关
setenv bootargs root=/dev/nfs nfsroot=192.168.12.163:/xh/work/rootfs ip=192.168.12.126 rw console=ttySAC0,115200 mem=256M     //设置bootargs环境变量
saveenv   //保存环境变量
  3)从宿主机下载内核映像
tftp c0008000 uImage
  4) 启动开发板
bootm

PS:
        a,uboot中设置自动启动:setenv bootcmd tftp c0008000 uImage \;bootm c0008000
                          saveenv
        b,如果开发板启动时停在了  Uncompressing Linux... done,booting the kernel;说明console 输出的串口指定不对。 cmdline / console=ttyO0这个参数,看看你的2.6.37内核的config下cmdline里面的console指定的是哪个?应该与uboot下设置的一样。通常有人会把SAC0(数字0)误写为SACO(英文字母O)
 
PS:nfs启动时可能比较慢或出错rpc错误,解决方法见http://blog.sina.com.cn/s/blog_636a55070101puam.html
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页