Android4.2如何使用3.4的linux Kernel

我之前下载的android4.2的源代码,自带的linux的kernel是2.6.29,现在使用的都是3.4的kernel。那么如何用上3.4的kernel呢?

假设android的源代码的目录是android, 在android目录下新建一个kernel目录。

cd kernel,然后git clone http://android.googlesource.com/kernel/goldfish.git
下载完成后,得到kernel/goldfish目录。

cd kernel/goldfish
git branch -a,查看所有分支。里边有2.6.29以及3.4的
git checkout  remotes/origin/android-goldfish-3.4  ,此时goldfish目录下有了3.4的源代码。
下面就来编译。
还是在kernel/goldfish目录下。
执行make ARCH=arm goldfish_armv7_defconfig  该命令执行完后,将得到一个.config文件。
设置环境变量export CROSS_COMPILE=/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-   这个是设置交叉编译工具链的位置和前缀。

(上面的路径解释一下,fanyijun为ubuntu的用户名,android为整个android4.2的源代码的根目录。)

这样在编译kernel时将使用这个前缀+gcc相关工具来编译kernel


然后就是make ARCH=arm。

编译完成后最后一个输出就是 Kernel: arch/arm/boot/zImage is ready   zImage就是最后编译得到的kernel内核镜像。


启动新的kernel的方式:

emulator -kernel /home/fanyijun/android/kernel/goldfish/arch/arm/boot/zImage
新的kernel的截图:


注明:
emulator能够直接在命令行运行需要设置一些环境变量。
在用户名是fanyijun,android的源代码的根目录是/home/fanyijun/android的前提下。
我设置了如下这些变量 就可以直接启动emulator。
export ANDROID_BUILD_PATHS="/home/fanyijun/android/out/host/linux-x86/bin:/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin:/home/fanyijun/android/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6/bin:/home/fanyijun/android/development/emulator/qtools:/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin:/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:/home/fanyijun/android/development/scripts"
export ANDROID_BUILD_TOP="/home/fanyijun/android"
export ANDROID_DEV_SCRIPTS="/home/fanyijun/android/development/scripts"
export ANDROID_EABI_TOOLCHAIN="/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin"
export ANDROID_HOST_OUT="/home/fanyijun/android/out/host/linux-x86"
export ANDROID_JAVA_TOOLCHAIN="/opt/jdk1.6.0_45/bin"
export ANDROID_PRE_BUILD_PATHS="/opt/jdk1.6.0_45/bin:"
export ANDROID_PRODUCT_OUT="/home/fanyijun/android/out/target/product/generic"
export ANDROID_QTOOLS="/home/fanyijun/android/development/emulator/qtools"
export ANDROID_TOOLCHAIN="/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin"
export ARM_EABI_TOOLCHAIN="/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin"
export OLDPWD="/home/fanyijun/android/out/target/product/generic/system/app"
export OPROFILE_EVENTS_DIR="/home/fanyijun/android/external/oprofile/events"
export OUT="/home/fanyijun/android/out/target/product/generic"
export PATH="/opt/jdk1.6.0_45/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/jdk1.6.0_45/bin:/home/fanyijun/android/out/host/linux-x86/bin:/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin:/home/fanyijun/android/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6/bin:/home/fanyijun/android/development/emulator/qtools:/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin:/home/fanyijun/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:/home/fanyijun/android/development/scripts"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值