OpenEdv-开源电子网

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

NFS挂载根目录卡在random: nonblocking pool is initialized

[复制链接]

3

主题

8

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2019-11-5
在线时间
11 小时
发表于 2020-2-14 17:12:19 | 显示全部楼层 |阅读模式
1金钱
开发指南第三十八章-38.3根文件系统初步测试,出现问题。SecureCRT终端信息表面根文件已挂载,但是最终卡在random: nonblocking pool is initialized,没有继续运行。
终端信息:
  1. fec 20b4000.ethernet eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=20b4000.ethernet:01, irq=-1)
  2. IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
  3. fec 20b4000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
  4. IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
  5. IP-Config: Complete:
  6.      device=eth0, hwaddr=00:04:9f:04:d2:35, ipaddr=192.168.214.50, mask=255.255.255.0, gw=192.168.214.1
  7.      host=192.168.214.50, domain=, nis-domain=(none)
  8.      bootserver=192.168.214.30, rootserver=192.168.214.30, rootpath=
  9. can-3v3: disabling
  10. ALSA device list:
  11.   No soundcards found.
  12. VFS: Mounted root (nfs filesystem) on device 0:15.
  13. devtmpfs: mounted
  14. Freeing unused kernel memory: 480K (8090e000 - 80986000)
  15. request_module: runaway loop modprobe binfmt-464c
  16. Starting init: /sbin/init exists but couldn't execute it (error -8)
  17. request_module: runaway loop modprobe binfmt-464c
  18. Starting init: /bin/sh exists but couldn't execute it (error -8)
  19. Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
  20. ---[ end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
  21. random: nonblocking pool is initialized
复制代码
我的环境变量配置:
  1. bootargs=console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.214.30:/home/liangchanghao/linux/nfs/rootfs ip=192.168.214.50:192.168.214.30:192.168.214.1:255.255.255.0::eth0:off
复制代码

我的分析:
1、在前面的37.2.3linux内核启动测试是成功的,当时是用了EMMC里面的根文件
说明:NFS 下载没有问题,Uboot linux内核以及.dtb设备文件没有问题。
2、启动挂载NFS根目录时,打印的信息中出现了,VFS: Mounted root (nfs filesystem) on device 0:15.
说明,已经挂载成功了,环境变量应该没有输错。
3、根据最后出现的报错信息推断,
  1. Starting init: /sbin/init exists but couldn't execute it (error -8)
  2. request_module: runaway loop modprobe binfmt-464c
  3. Starting init: /bin/sh exists but couldn't execute it (error -8)
  4. Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
  5. ---[ end Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
  6. random: nonblocking pool is initialized
复制代码


出错原因是Linux内核无法执行init这个文件。既然能找到文件,并提示无法执行应该是权限问题或者配置问题。按照教程检查了一遍根文件的配置,并没有找出问题。


求助各位出现过类似问题的提供一下思路!

最佳答案

查看完整内容[请看2#楼]

是文件格式不对了,在rootfs目录下查看 file bin/busybox。发现文件是X86的64位。 检查了下,是busybox编译时,手册里给的Makefile参考多了个问号,导致编译不对。 去掉问号重新编译,查看文件,是32位的了。重新运行,一切正常。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2019-11-5
在线时间
11 小时
 楼主| 发表于 2020-2-14 17:12:20 | 显示全部楼层


是文件格式不对了,在rootfs目录下查看 file bin/busybox。发现文件是X86的64位。

检查了下,是busybox编译时,手册里给的Makefile参考多了个问号,导致编译不对。
  1. 164 CROSS_COMPILE ?= /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
复制代码


去掉问号重新编译,查看文件,是32位的了。重新运行,一切正常。
回复

使用道具 举报

9

主题

890

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2390
金钱
2390
注册时间
2019-9-25
在线时间
397 小时
发表于 2020-2-15 12:48:55 | 显示全部楼层
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-25 06:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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