最近在学习韦老师第二期毕业班的课程,尝试着移植最新版的uboot,kernel和文件系统。
在移植根文件系统时遇到问题,一直停留在这有一段时间了,经过各种尝试还是不能解决问题,于是在
william hill官网
发帖寻求帮助,后来想把老师的镜像拿过来用替换的方法确定问题到底出在哪。
使用老师的uboot和内核镜像,经过各种尝试,结果如下:
老师uboot + 老师kernel + 自己制作的根文件系统(busybox 1.20.0动态编译 + 库
ARM-linux-gcc 4.3.2) --------------- 能够正常挂载使用
老师uboot + 老师kernel + 自己制作的根文件系统(busybox 1.20.1动态编译 + 库 arm-linux-gcc 4.3.2) --------------- 能够正常挂载使用
老师uboot + 老师kernel + 自己制作的根文件系统(busybox 1.20.1静态编译 arm-linux-gcc 4.3.2) --------------- 能够正常挂载使用
老师uboot + 老师kernel + 自己制作的根文件系统(busybox 1.28.1动态编译 + 库 arm-linux-gcc 4.5.1) --------------- 加载根文件系统时报错
老师uboot + 老师kernel + 自己制作的根文件系统(busybox 1.28.1静态编译 arm-linux-gcc 4.5.1) --------------- 加载根文件系统时报错
出错时内核输出信息为:
VFS: Mounted root (jffs2 filesystem) on device 31:3.
Freeing init memory: 124K
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
Backtrace:
[
] (dump_backtrace+0x0/0x10c) from [] (dump_stack+0x18/0x1c)
r7:c381ad60 r6:c381ad60 r5:c03f1478 r4:c03f1478
[] (dump_stack+0x0/0x1c) from [] (panic+0x7c/0x1d0)
[] (panic+0x0/0x1d0) from [] (do_exit+0x644/0x76c)
r3:c3820e00 r2:c381ae84 r1:00000004 r0:c036c394
[] (do_exit+0x0/0x76c) from [] (do_group_exit+0x50/0xb8)
[] (do_group_exit+0x0/0xb8) from [] (get_signal_to_deliver+0x1e0/0
x4e8)
r5:00000004 r4:00000000
[] (get_signal_to_deliver+0x0/0x4e8) from [] (do_notify_resume+0xd
0/0x4f4)
[] (do_notify_resume+0x0/0x4f4) from [] (work_pending+0x24/0x28)
制作文件系统的方法是一样的,只是busybox的版本和编译链的版本不一样。
而且我尝试使用arm-linux-gcc 4.3.2编译busybox1.28.1时,报错,各种类型定义有冲突。
我就在想是不是不同的Linux内核制作根文件系统时对busybox和编译链的版本要求不一样,如果是,那这种版本的对应要求又在哪能找到呢?
如果我的思路有问题的话,还请老师指点以下,我下一步该从哪个方向入手找问题的原因呢?
非常感谢。