编译Linaro的Android内核有感

本文分享了作者在自行编译padaboard Android镜像过程中的经验和遇到的问题,包括如何正确配置menuconfig、解决编译文件夹不干净导致的错误、指定交叉编译工具进行make操作、解决gcc编译过程中的bug等关键步骤。通过参考官方wiki和社区资源,作者解决了编译过程中遇到的各种挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  这段时间在折腾android的ril层开发,所以一切都要从头做起。之前用前辈的编译脚本,勉强编译过去了,但是后来出现烧到板子上却起不来。于是今天尝试着自己用Linaro网站上的方法自己从头开始编译padaboard的android镜像。

  一开始遇到了一些问题,比如menuconfig,依照以往编译kernel的经验,都是自己配置menuconfig,而linaro却给我提供了他们做好的.config文件,所以,按照官网的办法,是用CP指令把他们给的.config文件拷贝到目录里,比如kernel/out里面。而编译指令也要有讲究,注意ARCH=arm和O=out。

  编译中遇到了以下几个问题,稍作记录:

  (1)说找不到.config文件,原因是前面讲的,我们应该linaro提供的config文件拷贝到我们的"O="里面的文件夹中,比如我的out。

  (2)编译文件夹不够干净(clean),要求我们运行make mrproper来进行clean操作,这个时候运行它却报错,说找不到bcm80211这个文件。这个时候,我们应该尝试把kernel/drivers/net/wireless/makefile中的obj-$(CONFIG_BCM4329)  += bcm80211/ 修改为obj-$(CONFIG_BCM4329)  += brcm80211/,然后再去clean,clean完记得改回来。(反正后来config文件也指定了不编译它,不改应该也没问题)

  (3)需要指定CROSS_COMPLIE来进行make,也就是交叉编译工具,因为只有在ubuntu10.10以上才有arm-linux-gnueabi-gcc这个玩意儿,所以要使用官方的脚本还是会出现一些编译错误的,于是我参照官网的一个编译内核的网页,进行手动设置。

   参考网址:https://wiki.linaro.org/Platform/Android/JustWorkOnTheKernel

  (4)在编译过程中,gcc报了一个bug,大致内容是write_cache_pages的错误,我在网上找到了一些解决办法,贴下来:

   参考网址:http://blog.youkuaiyun.com/sustzombie/article/details/6107079和http://blog.chinaunix.net/uid-20564848-id-74802.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值