开机卡在start kernel...情况分析

事件描述

环境:Linux4.4的内核
从rk拉下来的代码,然后直接编译,烧录完以后停在了Start Kernel…然后进行原因分析.
在这里插入图片描述

分析

1 在板子上烧录安卓的固件,可以正常跑起来,初步排除硬件问题.

2 在另外项目的板子上烧录同样的固件,也可以跑起来,这就奇怪了,但是在我调试的板子上就是Start Kernel…

3 添加打印信息,确定跑到了kernel_entry(0, machid, r2);

(此时,陷入了迷茫了,开始查资料)
在网上看的很多都可以排除,然后提交readme,官方人员一直没有回复…

4 然后在uboot启动阶段暂停,打印系统信息.

4.1 内核中打开early_printk.

在这里插入图片描述
kernel --> make menuconfig --> Kernel hacking --> Memory Debugging --> Kernel memory leak detector
或者直接在config中添加
+CONFIG_DEBUG_KMEMLEAK=y
然后烧录内核,开机按热键Ctrl+c暂停自动启动.进入命令模式
执行命令md c10ce5cc
这个命令怎么来的呢?
kernel下查找grep __log_buf System.map得到这个值.
在这里插入图片描述
然后一直按回车.知道看到异常信息,或者按网上说的,直到全部为0为止.我这边的信息如下:

然后在一点一点的往上找,今天有点累了,明天继续分析.

结果分析

最终结果是换了一颗ddr,ddr不在官方支持列表里面。
(小声逼逼:各种换料,各种稀奇古怪的bug)

猜你喜欢

转载自blog.csdn.net/arunboy/article/details/102746467
今日推荐