编译平台:Fedora 20 x64
交叉编译工具链:arm-linux-androideabi-4.6
话说这个编译工具我研究了两天,Fedora自带一个arm-none-eabi的ToolChain(工具链),但是会有编译错误,后来又换成CodeBench ToolChain,还是不行。因为近期Google被墙,也找不到什么好的资料,一怒之下买了一个VPN。最终上了Android的官网。把Android ToolChain能够找到的全部相关工具全都下载下来。
新装好一个Fedora后安装yum加速插件,更新全部软件,安装vim(须要perl)、gcc。
解压缩arm-linux-androideabi-4.6,并把bin文件夹加入到PATH中。直接依照源代码中的readme进行编译就可以。
编译时会出错。提示lenovo89_CU_jb文件夹找不到,查找后发现文件夹确实存在。但名字是lenovo89_cu_jb,所以要把编译命令中的CU变成小写的。
TARGET_PRODUCT=lenovo89_cu_jb MTK_ROOT_CUSTOM=../mediatek/custom/ make
编译一会儿之后还有错误,提示找不到xt_HL.o,查找后确实也存在。仅仅是名字是xt_hl.o,所以还要改动kernel\net\netfilter\Makefile,找到相应行并把文件名称改成小写的。
obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_hl.o
至此没有错误了,能够成功编译。
非常有意思的问题,不知道当时官方在编译的时候是怎么样的?
相关工具下载:点击打开链接