编译mx 内核成功
转:http://hi.baidu.com/_xiaxiaowen_/item/a14c51ff4ad1193dce9f329a
昨天编译android4.0.1,想不到成功了,,想到mx也把内核源代码放出了,所以干脆把mxkernel也编译下,其中会出现几处错误,步骤如下:
我是在ubuntu12.04下编译的,其他版本应该也适合,不过要把那些交叉环境的库装好,这个百度交叉编译环境有很多,
首先是下载我编译android时编译出的交叉编译器:arm-eabi-4.3.1;这个是我好不容易找到的版本号,因为mxkernel中有预编译好的库文件,交叉编译器版本不对的话就会出现ebaiAttribute44(eabi属性不对)的蛋疼情况,
然后cd进入kernel
1
cd/opt/WORKING_DIRECTORY/kernel/meizu-mx-kernel/
WORKING_DIRECTORY是我的android目录,meizu-mx-kernel是mx内核目录
然后编辑Makefile
1
vimMakefile
可以用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退出
lsarch/arm/configs/看到这个文件里已有mx内核的配置文件,然后直接makemeizu_defconfig配置内核
如果是第一次运行makemeizu_defconfig会有很多显示,我已经运行过一次了,所以显示很少,
之后make-j3开始编译,-j3是3线程让编译快些,
其中会出现一些error,是op_t类型的a0,a1.a2.a3的未初始化,更改下就行了
1
viminclude/linux/memcopy.h
可以看到op_t的结构体就是unsightlongint型的,所以只要把有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