关于一二期衔接视频中,uboot启动时直接nfs挂载的bootargs的设置

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.0.105:/work/nfs_root/first_fs ip=192.168.0.17:192.168.0.105:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.0.105:/work/nfs_root/mnt ip=192.168.0.17:192.168.0.105:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.0.105:/work/nfs_root/fs_mini_mdev_new_digitpic ip=192.168.0.17:192.168.0.105:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200

在设置u-boot的bootargs的时候,只有挂载第一个first_fs目录时才能正常启动,这个目录下刚好也正好匹配现在的linux2.6内核;

但是去挂载另外两个目录mnt (单纯的一个空目录)与fs_mini_mdev_new_digitpic(三期第一个项目的fs,匹配linux3.4内核)时,则无法正常启动;

所以我想知道u-boot启动时,如果使用nfs直接挂载服务器目录,那个目录是不是有些要求,即一定要与当前的内核版本相匹配等等。

另外,当开发板使用本地fs正常启动后,上面三个目录都可以手动挂载成功,是否可以认为手动挂载只需要服务器端的目录开启NFS服务即可。

请先 登录 后评论

最佳答案 2020-04-08 15:21

首先uboot传入bootargs 是告诉内核,在启动完成后去哪里找到文件系统并挂载。

所以bootargs 传入的文件系统不是一个简单的目录。因此第一个可以,第二个不可以。


内核挂载文件系统后,会执行里面的应用程序,如linuxrc ,所以就制作工具链时候的文件系统和你内核最好保持一致。

请先 登录 后评论

其它 1 个回答

st_ashang - 论坛编辑
擅长:嵌入式开发

nfs文件系统启动:空目录肯定不行,内核和文件系统没对应(new字样的文件系统是给 linux2.6.22.6用),也肯定不行。手动挂载(mount):只是mount而已不会用作启动,好好体验这2者的区别。

请先 登录 后评论