我在调试uboot下NFS启动rootfs时,参考了文档
《搭建 NFS 环境并从 NFS 启动开发板》,这个文档中存在一个错误,
让我花费了2天时间,现在共享给大家,希望大家也能少走弯路。
第2页,
3 - Setup exports typing:
$sudo gedit /etc/exports
and add the following line:
/tftpboot/rootfs/ *(rw,no_root_squash,no_subtree_check,async)
这句红色字体是错误的,正确应该为
/home/ubuntu/ltib/rootfs *(rw,no_root_squash,no_subtree_check,async)
/tftpboot *(rw,no_root_squash,no_subtree_check,async)
另外还要在/tftpboot下建立链接如下:
root@ubuntu:/tftpboot# ll
total 3108
drwxrwxrwx 2 root root 4096 Nov 17 12:02 ./
drwxr-xr-x 24 root root 4096 Nov 17 11:03 ../
lrwxrwxrwx 1 root root 22 Nov 17 12:02 rootfs -> /home/ubuntu/ltib/rootfs//
-rwxrwxrwx 1 root root 3170628 Nov 17 13:37 uImage*
这样,配置好ubuntu的NFS与TFTP后,uboot下就可以从tftpboot下下载uImage,
又可以挂载到/home/ubuntu/ltib/rootfs下启动文件系统了。
下面是我验证ok的2个uboot下配置脚本
1、设置网络启动的uboot脚本,拨码为01000010(8至1),SD3插着SD卡
setenv ipaddr 192.168.6.110
setenv serverip 192.168.6.109
setenv bootfile uImage
setenv nfsroot /tftpboot/rootfs
setenv bootargs_base 'setenv bootargs console=ttymxc0,115200'
setenv bootargs_nfs 'setenv bootargs ${bootargs} root=/dev/nfs rw ip=${ipaddr}:${serverip}:192.168.6.1:255.255.255.0::eth0:off nfsroot=${serverip}:${nfsroot},v3,tcp
setenv bootcmd_net 'run bootargs_base bootargs_nfs;bootm'
setenv bootcmd 'tftpboot uImage; run bootcmd_net'
saveenv
run bootcmd
2、设置SD3启动的uboot脚本,拨码为01000010(8至1),SD3插着SD卡
setenv loadaddr 0x10800000
setenv bootargs_base 'setenv bootargs console=ttymxc0,115200'
setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk1p1 rootwait rw video=mxcfb1:dev=ldb,LDB-XGA,if=RGB666 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24'
setenv bootcmd_mmc 'run bootargs_base bootargs_mmc;mmc dev 2;mmc read ${loadaddr} 0x800 0x2000;bootm'
setenv bootcmd 'run bootcmd_mmc'
saveenv
run bootcmd
|