uboot-busybox-kernel-libc-qt版本总结

1. 在使用linux-2.6.28的情况下:

1)kernel 能通过arm-linux-gcc版本3.4.1、4.3.2、4.4.3的编译;

2)busybox 能通过arm-linux-gcc版本3.4.1、4.3.2、4.4.3的编译;

3) 3.4.1、4.3.2、4.4.3 arm-linux-gcc版本编译的kernel均能与arm-linux-gcc版本3.4.1编译的busybox配合正常启动,

而与4.3.2、4.4.3版本的arr-linux-gcc编译的busybox不能正常配合正常启动,错误提示为:

Kernel panic - not syncing: Attempted to kill init!

4)需特别指出的是即使3.4.1版本arm-linux-gcc编译的busybox在使用4.3.2(4.4.3未测试) arm-linux-gcc的库时也能与4.3.2版本

arm-linux-gcc编译的kernel正常配合启动。

5)结论:busybox需用3.4.1arm-linux-gcc编译,而其对所依赖的gcc动态库版本要求宽松。

6)推论:busybox用3.4.1 ,kernel 可任选较合适的gcc版本编译.

7)所用到的软件测试版本:

kernel: 2.6.28

busybox: 1.7.3 / 1.22.1

arm-linux-gcc: 3.4.1 / 4.3.2 / 4.4.3

2 总结与分析

1)综合考虑,

采用arm-linux-gcc 4.3.2编译kernel&QT;

采用arm-linux-gcc 3.4.1编译busybox;

采用arm-linux-gcc 4.3.2 的libc库;

采用soft-float-arm-linux-gcc编译uboot。

2)待解问题,busybox之所以只能用3.4.1编译,而其它(两个)版本编译不能正常配合kernel启动,

可能的原因是:其它arm-linux-gcc版本编译时,虽通过了编译,但是期间有很多警告,可能并没有成功的

完整编译busybox,因此使用时会出错。

3)通过file 查看libc-xxx.so发现,(从)4.4.3版本的arm-linux-gcc开始支持的最低kernel版本为

linux-2.6.32 > linux-2.6.28。

原文地址:https://www.cnblogs.com/ganrui/p/3803207.html