OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...

关于使用NFS挂载,测试根文件系统rootfs出现的问题,无法进入根文件系统目录

查看数: 10089 | 评论数: 17 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-4-4 16:46

正文摘要:

本帖最后由 MrWeng 于 2020-4-4 17:15 编辑 在学习例程38.3 根文件系统初步测试时,参考例程的bootargs的格式,根据我的网络环境设定了bootargs,我的bootargs设置命令如下: setenv bootargs 'console=ttymxc0, ...

回复

chuckie 发表于 2020-6-28 18:26:59
就是要加    proto=tcp   ,我这边解决了
无忧花开 发表于 2020-5-19 20:03:13
楼主,你试试这个,这个总结的很好,这个链接里上面的一部分问题都总结出来了:
http://www.openedv.com/forum.php ... &extra=page%3D2
liu405746220 发表于 2020-5-18 21:02:25
恩, 刚刚又 测试了一下NFS版本是否会影响,答案是会影响。
网上提到说Ubuntu17版本之后, NFS默认启动 版本 3以上的版本,而uboot默认使用版本2,会导致无法连接。
你可以先通过
  1. sudo cat /proc/fs/nfsd/versions
复制代码

查看你的系统是否启用了NFS版本2
如果是
-2 +3 +4 +4.1 +4.2
说明没有。
所以可做如下修改
  1. sudo vi /etc/default/nfs-kernel-server
复制代码

在其中最后加上
  1. RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
复制代码

然后重启NFS服务
  1. sudo vi /etc/default/nfs-kernel-server
复制代码

然后在查看
  1. sudo cat /proc/fs/nfsd/versions
复制代码

应该得到
+2 +3 +4 +4.1 +4.2
这时,在加上前面说的,需要使用 proto=tcp 协议,就 可以了, 至少我的可以了。
liu405746220 发表于 2020-5-18 20:40:11
哇,在网上查了半天, 有说是NFS版本问题的,有说是防火墙的, 有说是什么端口大于1024的,都没解决,最后找到楼上老哥的http://www.openedv.com/forum.php ... 6&fromuid=39713, 但我没处理什么防火墙,就只加了他命令中标黄的 proto=tcp 就成功, 也就是说将
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.31.112:/home/tim/linux/nfs/rootfs ip=192.168.31.111:192.168.31.112:192.168.31.1:255.255.255.0::eth0ff'
变成
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.31.112:/home/tim/linux/nfs/rootfs proto=tcp ip=192.168.31.111:192.168.31.112:192.168.31.1:255.255.255.0::eth0ff'

请各位尝试
顺便一提我的Ubuntu版本是18.04
liu405746220 发表于 2020-5-18 20:33:42
哇, 网上找了半天资料,最后找到了楼上老哥的办法 http://www.openedv.com/forum.php ... 6&fromuid=39713 , 但我只是在原有bootargs参数中加了proto=tcp ,也就是从
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.31.112:/home/tim/linux/nfs/rootfs ip=192.168.31.111:192.168.31.112:192.168.31.1:255.255.255.0::eth0ff'
变成了
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.31.112:/home/tim/linux/nfs/rootfs proto=tcp ip=192.168.31.111:192.168.31.112:192.168.31.1:255.255.255.0::eth0ff'
就可以了,请各位尝试
tutuSTM32 发表于 2020-4-19 23:53:38
NFS根文件系统挂不上 的根本原因算是找到了!!!
http://www.openedv.com/forum.php ... 6&fromuid=39713
(出处: OpenEdv-开源电子网)
tutuSTM32 发表于 2020-4-19 23:53:05
NFS根文件系统挂不上 的根本原因算是找到了!!!
http://www.openedv.com/forum.php ... 6&fromuid=39713
(出处: OpenEdv-开源电子网)
tutuSTM32 发表于 2020-4-18 20:15:18
你的问题解决了吗,我也是这样的!
试了很多办法就是不通啊!
techxuan 发表于 2020-4-17 02:24:38
看看是不是/etc/fstab文件的问题,以下供参考:
#<file system> <mount point>         <type>         <options> <dump> <pass>
proc                 /proc                 proc         defaults   0       0
tmpfs                 /tmp                 tmpfs         defaults   0            0
sysfs                 /sys                 sysfs         defaults   0       0
techxuan 发表于 2020-4-17 02:23:02
看看是不是/etc/fstab文件的问题,以下供参考
#<file system> <mount point>         <type>         <options> <dump> <pass>
proc                 /proc                 proc         defaults   0       0
tmpfs                 /tmp                 tmpfs         defaults   0            0
sysfs                 /sys                 sysfs         defaults   0       0
lf19880813 发表于 2020-4-14 08:21:24

都试过了 还是没用 最近使用开发手册的源码去测试 发现还是有问题 我再试一下重启nfs服务看看
茂茂2019 发表于 2020-4-13 11:46:36
lf19880813 发表于 2020-4-12 21:40
我也遇到了相同的问题,请问楼主解决了吗

重启一下nfs服务
lf19880813 发表于 2020-4-12 21:40:52
我也遇到了相同的问题,请问楼主解决了吗
Bloodsorrow 发表于 2020-4-5 22:45:30
楼主,问题解决了吗我也是这个问题,nfs到文件系统后无法挂载上去
MrWeng 发表于 2020-4-4 20:10:43
仰望星空之云 发表于 2020-4-4 18:34
ubuntu什么版本的呢?如果是18版本的,按照这个链接的文末最后提到的来改:
http://www.openedv.com/forum ...

按照你的方法我通过emmc启动了板子能成功挂载Ubuntu服务器的nfs文件,换成SD卡启动,设置bootargs的命令我也检查过了,没有什么问题,但是还是没法挂载nfs,以下代码是我的环境打印输出的信息,其中boocmd是可以通过tftp读取得到Ubuntu服务器的zImage和dtb文件,但是最终还是没法挂载nfs根文件系统,我的Ubuntu版本号是16.04,通过网上的方式修改nfs版本兼容的方式还是解决不了
  1. baudrate=115200
  2. board_name=EVK
  3. board_rev=14X14
  4. boot_fdt=try
  5. bootargs=console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.31.7:/home/mrweng/linux/nfs/rootfs ip=192.168.31.66:192.168.31.7:192.168.31.1:255.255.255.0::eth0:off
  6. bootcmd=tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000
  7. bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
  8. bootdelay=3
  9. bootfile=imx6ull-14x14-evk.dtb
  10. bootscript=echo Running bootscript from mmc ...; source
  11. console=ttymxc0
  12. ethact=FEC1
  13. ethaddr=00:04:9f:04:d2:35
  14. ethprime=FEC
  15. fdt_addr=0x83000000
  16. fdt_file=imx6ull-14x14-evk.dtb
  17. fdt_high=0xffffffff
  18. findfdt=if test $fdt_file = undefined; then if test $board_name = EVK && test $board_rev = 9X9; then setenv fdt_file imx6ull-9x9-evk.dtb; fi; if test $board_name = EVK && test $board_rev = 14X1                                         4; then setenv fdt_file imx6ull-14x14-evk.dtb; fi; if test $fdt_file = undefined; then echo WARNING: Could not determine dtb to use; fi; fi;
  19. gatewayip=192.168.31.1
  20. get_cmd=dhcp
  21. image=zImage
  22. initrd_addr=0x83800000
  23. initrd_high=0xffffffff
  24. ip_dyn=yes
  25. ipaddr=192.168.31.66
  26. loadaddr=0x80800000
  27. loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
  28. loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
  29. loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
  30. mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.file=/fat g_mass_storage.ro=1 g_mass_storage.idVendo                                         r=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" clk_ignore_unused
  31. mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
  32. mmcautodetect=yes
  33. mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; t                                         hen bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
  34. mmcdev=0
  35. mmcpart=1
  36. mmcroot=/dev/mmcblk0p2 rootwait rw
  37. netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
  38. netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${image}; if test ${boot_fdt} = yes || test ${boot_fd                                         t} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; f                                         i;
  39. netmask=255.255.255.0
  40. panel=TFT43AB
  41. script=boot.scr
  42. serverip=192.168.31.7

  43. Environment size: 2672/8188 bytes
复制代码


仰望星空之云 发表于 2020-4-4 18:34:43
ubuntu什么版本的呢?如果是18版本的,按照这个链接的文末最后提到的来改:
http://www.openedv.com/forum.php ... 2907&extra=page%3D2
最后检查一下bootargs,这个指令常常因为格式的问题挂载不上



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-9-29 21:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表