【Android源码 栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了Android源码 -在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel) - 操作系统的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
在Ubuntu上下载、编译和安装
Android最新内核源代码Linux Kernel 在前一篇文章提到从源代码树下载下来的最新
Android源代码是不包括内核代码的也就是
Android源代码工程默认不包含Linux Kernel代码而是使用预先编译好的内核也就是prebuilt/
android-arm/kernel/kernel-qemu文件。
那么如何才能DIY自己的内核呢这篇文章一一道来。
一. 首选参照前一篇在Ubuntu上下载、编译和安装
Android最新源代码准备好
Android源代码目录。
二. 下载Linux Kernel for
Android源代码。
1. 使用GIT工具下载执行以下命令 USER-NAMEMACHINE-NAME:/
Android mkdir kernel USER-NAMEMACHINE-NAME:/
Android cd kernel USER-NAMEMACHINE-NAME:/
Android/kernel git clone git://
android.git.kernel.org/kernel/common.git 同样是经过漫长的等待后在kernel目录下有一个common目录Linux内核代码就在这里了。
2. 下载完成后可以查看下载的内核代码版本 USER-NAMEMACHINE-NAME:/
Android/kernel cd common USER-NAMEMACHINE-NAME:/
Android/kernel/common git branch
android-2.6.36 3. 上面得到的是主线上的内核源代码现在我们需要适用于模拟器用的内核因此我们需要checkout goldfish版本 USER-NAMEMACHINE-NAME:/
Android/kernel/common git branch -a
android-2.6.36 remotes/origin/HEAD - origin/
android-2.6.36 remotes/origin/
android-2.6.35 remotes/origin/
android-2.6.36 remotes/origin/archive/
android-2.6.25 remotes/origin/archive/
android-2.6.27 remotes/origin/archive/
android-2.6.29 remotes/origin/archive/
android-2.6.32 remotes/origin/archive/
android-gldfish-2.6.29 remotes/origin/archive/
android-goldfish-2.6.27 选择
android-gldfish-2.6.29 USER-NAMEMACHINE-NAME:/
Android/kernel/common git checkout remotes/origin/archive/
android-gldfish-2.6.29 三. 编译内核代码。
1. 导出交叉编译工具目录到PATH环境变量中去 USER-NAMEMACHINE-NAME:/
Android/kernel/common export PATHPATH:/
Android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin 2. 修改common目录下的Makefile文件的以下两行为 ARCH SUBARCH CROSS_COMPILE ARCH arm 体系结构为arm CROSS_COMPILE arm-eabi- 交叉编译工具链前缀参考/
Android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin目录 3. 开始编译 USER-NAMEMACHINE-NAME:/
Android/kernel/common make goldfish_defconfig USER-NAMEMACHINE-NAME:/
Android/kernel/common make 编译成功后可看到下面两行 OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready 在执行make命令前你也可以执行make menuconfig先配置一下编译选项。
四. 在模拟器中运行编译好的内核。
1. 在启动模拟器之前先设置模拟器的目录到环境变量PATH中去 USER-NAMEMACHINE-NAME:/
Android export PATHPATH:/
Android/out/host/linux-x86/bin 2. 设置
ANDROID_PRODUCT_OUT环境变量 USER-NAMEMACHINE-NAME:/
Android export
ANDROID_PRODUCT_OUT/
Android/out/target/product/generic 3. 在后台中指定内核文件启动模拟器 USER-NAMEMACHINE-NAME:/
Android emulator -kernel ./kernel/common/arch/arm/boot/zImage 4. 用adb工具连接模拟器查看内核版本信息看看模拟器上跑的内核是不是我们刚才编译出来的内核 USER-NAMEMACHINE-NAME:/
Android adb shell 这时候如果是第一次运行 adb shell命令会看到以下输出不用管它再运行一次adb shell命令就可以了。
daemon not running. start it now on port 5037 daemon started successfully error: device offline 切换到proc目录 rootandroid:/ cd proc rootandroid:/proc cat version Linux version 2.6.29-gb0d93fb-dirty luoubuntu-11-04 gcc version 4.4.3 GCC 1 Fri Jun 3 23:17:24 HKT 2011 从机器名luoubuntu-11-04和日期1 Fri Jun 3 23:17:24 HKT 2011可以看出模拟器使用的内核即为刚刚编译出来的内核。
上一篇:
Android系统原理与源码分析(1):利用Java反射技术阻止通过按钮关闭对话框
下一篇:
韩国婚纱照片模板下载