韦东山Linux嵌入式课程社区
直播中

王桂珍

7年用户 160经验值
私信 关注

请问Linux内核和Busybox版本有对应吗?

最近在学习韦老师第二期毕业班的课程,尝试着移植最新版的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和编译链的版本要求不一样,如果是,那这种版本的对应要求又在哪能找到呢?
如果我的思路有问题的话,还请老师指点以下,我下一步该从哪个方向入手找问题的原因呢?
非常感谢。

回帖(3)

张子腾

2019-5-13 09:41:47
这种版本和工具链的组合,造成不能正常使用也是常见,可以理解的了。
好比用arm-linux-gcc 4.5.1工具链编译2012uboot 不会报错,但是就根本无法运行。
目前,还没有发现有地方对他们之间的版本适用性做说明的地方。往往都是靠经验,比如太旧的不用太新的。

http://www.100ask.org/bbs/forum. ... =%B9%A4%BE%DF%C1%B4
举报

李渝辉

2019-5-13 09:57:20
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

齐镭

2019-5-13 10:04:43
arm-linux-gcc 4.5.1 这个编译器哪里来的,不会是4412的吧?
编译器不可以随便用,一般特定的编译器都是针对特定的cpu的,架构,浮点等都必须一致才可以
如果你拿4412 A9编东西给2440用 跑步起来太正常
举报

更多回帖

发帖
×
20
完善资料,
赚取积分