编译mx 内核成功

转 : http://hi.baidu.com/_xiaxiaowen_/item/a14c51ff4ad1193dce9f329a

昨天编译android 4.0.1,想不到成功了,,想到mx也把内核源代码放出了,所以干脆把mx kernel也编译下,其中会出现几处错误,步骤如下:
我是在ubuntu 12.04 下编译的,其他版本应该也适合,不过要把那些交叉环境的库装好,这个百度交叉编译环境有很多,
首先是下载我编译android时编译出的交叉编译器:arm-eabi-4.3.1;这个是我好不容易找到的版本号,因为mx kernel中有预编译好的库文件,交叉编译器版本不对的话就会出现ebai Attribute 44 (eabi 属性不对)的蛋疼情况,
然后cd 进入kernel
1
cd /opt/WORKING_DIRECTORY/kernel/meizu-mx-kernel/
WORKING_DIRECTORY是我的android目录,meizu-mx-kernel是mx 内核目录
然后编辑Makefile


1
vim Makefile
可以用tab健补全文件名

第195行arch改成arm,CROSS_COMPILE 改成你的arm-eabi中的bin路径,不要忘了,还要加上arm-eabi-
1
2
ARCH            ?= arm
CROSS_COMPILE   ?=/opt/WORKING_DIRECTORY/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-


修改好了就按shift+;进入指令模式,然后键入wq退出
ls arch/arm/configs/ 看到这个文件里已有mx内核的配置文件,然后直接make meizu_defconfig配置内核


如果是第一次运行make meizu_defconfig会有很多显示,我已经运行过一次了,所以显示很少,
之后make -j3 开始编译,-j3是3线程让编译快些,
其中会出现一些error,是op_t类型的a0,a1.a2.a3的未初始化,更改下就行了
1
vim include/linux/memcopy.h



可以看到op_t的结构体就是unsight long int 型的,所以只要把有error的那些a0,a1,a2,a3,后面都加上=0就行了,a0=0,a1=0......
然后再make -j3编译就行了
生成的镜像在/arch/arm/boot中,


这个仅共学习的哈,不能烧到手机里!
arm-eabi-4.3.1 下载:http://yanshangtao.cn/dl/Linux/crosstools/arm-eabi-4.3.1.tar.gz

你可能感兴趣的:(编译)