基于uclibc-ng的交叉编译内核,内核打印booting the kernel后停止了

~青花瓷 2017-07-08 07:23:42
本人用的linux3.3.x 版本,虚拟机是ubuntu10.4,交叉编译环境一开始用的是gnu glibc交叉编译工具gcc-4.4.4,
编译出来的ubi文件系统精简后也要7M左右,
但还是不太能满足系统要求,因为我们的flash比较小,

然后我使用buildroot做了一个基于uclibc-ng的交叉编译工具,在编译的时候,将原先的make uImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
改为make uImage ARCH=arm CROSS_COMPILE=arm-none-uClibcgnueabi- 编译一开始不成功,在编译kernel/bound.s时报错,提示没有找到compile_gcc5.h。

然后我在buildroot的一个文件夹下面找到了compile_gcc.h,放到include /linux目录下边。 之后 编译结束,生成内核映象文件。

烧到FLASH以后,结果内核无法启动,打印显示:
Uncompressing Linux.done,booting the kernel 就没有下文了,停止了

问题是用glibc交叉编译工具Make uImage,生成的映象文件烧到FLASH后能够正常启动内核

现在不知道什么原因了,

目前想到的:1. u-boot我还没有用uclibc这个交叉编译环境编译过, 而内核已经是新的交叉编译环境make,并烧进去了
也就是说FLASH上的uboot还是用gcc-4.4.4编译的版本,而FLASH上的内核是uclibc编译的版本, 会不会两个不同的
交叉编译环境 不匹配??

2. 交叉编译环境本身有问题


不知道哪位大侠有做过基于buildroot生成的uclibc的交叉编译环境 编译过内核的??
...全文
751 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧