ARM下Kernel panic - not syncing: Attempted to kill init!错误分析
1. 前言
最近在通过busybox制作rootfs的时候,发现使用不同版本的交叉编译器去编译busybox的时候,有些版本编译器编译出的busybox可执行文件不能用,它会导致系统启动过程中在加载init程序时出错。本文将分析怎么去查找这个错误具体是由什么引起的,以及如何才能解决该错误。如果我在分析中有什么不正确的地方,希望大家能够指正,谢谢。
我的开发环境如下
系统环境:Ubuntu 12.04(lsb_release -a命令查看)
交叉编译工具:arm-linux-gcc 3.3.2、arm-linux-gcc 4.2.2、arm-linux-gcc 4.5.1
busybox:busybox1.13.3、busybox1.25.0
linux内核:2.6.29
soc:s3c6410
2. 不同busybox和编译器版本组合结果
下面是我选择的不同busybox和交叉编译器版本的组合。
(1)busybox1.13.3 + arm-linux-gcc 3.3.2,出现如下错误
(2)busybox1.13.3 + arm-linux-gcc 4.2.2,没有问题,能正常启动进入shell命令行
(3)busybox1.25.0 + arm-linux-gcc 4.2.2,没有问题,能正常启动进入shell命令行
(4)busybox1.25.0 + arm-linux-gcc 4.5.1,没有问题,能正常启动进入shell命令行
3. 查找Kernel panic - not syncing: Attempted to kill init!错误
3.1 确认引起错误的原因
&