DM814x挂载失败解决方法
本文是关于DM814x挂载失败解决方法的介绍,从问题背景、分析问题、解决问题几方面,全面的的为大家讲解DM814x挂载失败出现原因及解决方法。
了解内核打印情况:
CPSW phy found : id is : 0x1cc912
PHY 0:00 not found
IP-Config: Complete:
device=eth0, addr=192.168.0.33, mask=255.255.255.0, gw=192.168.0.1,
host=192.168.0.33, domain=, nis-domain=(none),
bootserver=192.168.0.1, rootserver=192.168.0.150, rootpath=
PHY: 0:01 - Link is Up - 1000/Full
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00 128 mtdblock0 (driver?)
1f01 2304 mtdblock1 (driver?)
1f02 128 mtdblock2 (driver?)
1f03 4352 mtdblock3 (driver?)
1f04 107520 mtdblock4 (driver?)
1f05 12288 mtdblock5 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
Backtrace:
[<c004bf70>] (dump_backtrace+0x0/0x110) from [<c038ef44>] (dump_stack+0x18/0x1c)
r6:00008000 r5:c4770000 r4:c0500b58 r3:60000013
[<c038ef2c>] (dump_stack+0x0/0x1c) from [<c038efa4>] (panic+0x5c/0x178)
[<c038ef48>] (panic+0x0/0x178) from [<c0009184>] (mount_block_root+0x1c4/0x204)
r3:00000000 r2:00000000 r1:c4425f58 r0:c0448c15
r7:c0448c79
[<c0008fc0>] (mount_block_root+0x0/0x204) from [<c0009358>] (mount_root+0xac/0xcc)
[<c00092ac>] (mount_root+0x0/0xcc) from [<c00094e4>] (prepare_namespace+0x16c/0x1cc)
r4:c0500024
[<c0009378>] (prepare_namespace+0x0/0x1cc) from [<c0008d70>] (kernel_init+0x114/0x154)
r5:c002d0ac r4:c002d0ac
[<c0008c5c>] (kernel_init+0x0/0x154) from [<c00731d4>] (do_exit+0x0/0x5d0)
r5:c0008c5c r4:00000000
DM814x挂载失败解决方法,问题背景分析:
这里用的是百兆网线连接板子的时候,可以进入文件系统,这也隐含说明,网络文件系统是没有问题的;
但是用千兆网线连接板子的时候,内核启动的时候会卡在挂载网络文件系统的那一步。
可以看下内核打印中打印的信息。
网卡不是TI官方原理图上的那个网卡,是我们后换了个网卡(RTL8211CL),所以刚开始怀疑可能是内核网卡驱动对我们这款网卡千兆支持有问题,所以费了点时间熟悉了下RTL8211CL,并结合内核代码去分析。
随后在 genphy_read_status()这个函数跟踪打印中,有了点突破性的发现,这个函数在drivers/net/phy/phy_device.c 。本来在百兆网线连接的环境下,因为打印也出现了卡住问题后来思考问题可能网卡哪边初始化太迟,导致在挂载网络文件系统的时候,还未完成,就导致了这卡住的问题,顺着这个思路,进行了一些测试,最后问题解决了DM814x挂载网络文件失败的问题。
DM814x挂载失败解决方法,问题分析阶段:去分析 init/main.c 、init/do_mounts.c 、net/phy/phy_device.c 文件中相关代码。
iplaypy.com DM814x挂载失败解决方法:解决方法如下:
有两种方法可寻
1、在启动参数 bootargs 中添加 rootdelay=2 即可;
2、在内核代码init/main.c文件中,有个kernel_init()函数,在此函数中以下代码位置添加一个延时两秒 ssleep(2),注意包含头文件 #include <linux/delay.h>;
if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
ramdisk_execute_command = NULL;
ssleep(2);//延时两秒左右
prepare_namespace();
}
DM814x挂载失败解决方法供参考。
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/linux/l6967.html
相关文章 Recommend
必知PYTHON教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
必知PYTHON模块 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • Linux物理内存使用量的查询方法
- • 提升工作效率的Unix操作命令示例
- • 被忽略的Linux系统命令
- • 2017常用Vim编辑命令大全
- • 初学者常用到的Linux进程命令有
- • cat命令合并文件Linux操作方法
- • IPv6协议关闭方法基于linux的操作
- • linux下Eclipse闪退怎么办?
- • PowerShell bash脚本的快速安装方法
- • Linux系统安装及使用calcurse库应用
图文精华 RECOMMEND
-
Linux物理内存使用量的查询方法
-
提升工作效率的Unix操作命令示例
-
2017常用Vim编辑命令大全
-
IPv6协议关闭方法基于linux的操作
-
Linux系统安装及使用calcurse库应用
-
Linux下mdp演示工具的使用方法
热点文章 HOT
- linux下Eclipse闪退怎么办?
- 应聘面试Linux基础问题及答案
- 初学者常用到的Linux进程命令有哪
- Linux系统locate命令使用方法详解
- Linux系统自动备份shell脚本示例
- 功能扩展示例之Cloud9 JavaScript ID
- 2017常用Vim编辑命令大全
- Linux下mdp演示工具的使用方法