Android Kernel下载编译
2017-02-03 14:24
567 查看
基于android5.1.1系统源码,清华镜像站https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/下载系统源码和kernel3.4源码。
以下编译的是arm架构的kernel,所以系统源码编译出来的也必须是arm架构。
1.内核下载(清华镜像)
在$android_source目录下
mkdir Kernel
cd Kernel
common方式
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/common.git
goldfish方式(以此为例)
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
带下载完成,进入goldfish目录,执行以下命令查看分支
git branch -a
然后checkout内核代码
git checkout -b android-goldfish-3.4 origin/android-goldfish-3.4
2.编译环境准备
将prebuilt工具添加到环境变量中以备后续使用
export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
接着配置其他必要的环境变量:
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-eabi-
3.开始编译
编译配置,在arch/arm/configs路径下找到两个配置文件:
goldfish_armv7_defconfig
goldfish_defconfig
make goldfish_defconfig (可以通过编译,但启动模拟器到不了桌面,是内核版本配置的原因)
或
make goldfish_armv7_defconfig(android高版本,推荐,有太多配置,手动配置兼职要命,需要裁剪,编辑arch/arm/configs/goldfish_armv7_defconfig就行)
基于文本选单的配置界面
make menuconfig
编译
make
映像的输出为:arch/arm/boot/zImage,这样就通过默认的配置完成了Android内核的编译。
编译时可能会遇到的错误:
ERROR: the symlink include/asm points to asm-x86 but asm-arm was expected
set ARCH or save .config and run 'make mrproper' to fix it
解决方案有俩:
(1).按提示,运行make mrproper命令。
(2).将内核目录下,即goldfish/include下的asm 目录删除以后,再编译即可。
include下的asm 文件夹是内核编译过程中创建的(在你编译之前,还没有创建,但是现在还没有编译,里面已经有了),它是一个这个目录下的asm-arm目录的链接,表明该系统的平台是arm 架构的,在编译过程中,系统会创建该链接,但此时已经有了,这样会与asm 文件夹的名字发生冲突,把它删掉就好了。
误删除,恢复所有代码,命令:
git ls-files -d | xargs -i git checkout {}
4.kernel裁剪(如果需要裁剪的话)
裁剪要用到一个很有用的命令:
make menuconfig
上述命令的运行需要以下库,必须提前安装:
sudo apt-get install ncurses-dev
5.编译成功后,运行模拟器(前提是先选择编译平台sourc
a3f1
e build/envsetup.sh和lunch,才能运行emulator)
emulator -kernel arch/arm/boot/zImage &
&在后面,表示脱离命令行在后台运行,但没效果,终于看到android 桌面,成功了!!!
以下编译的是arm架构的kernel,所以系统源码编译出来的也必须是arm架构。
1.内核下载(清华镜像)
在$android_source目录下
mkdir Kernel
cd Kernel
common方式
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/common.git
goldfish方式(以此为例)
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
带下载完成,进入goldfish目录,执行以下命令查看分支
git branch -a
然后checkout内核代码
git checkout -b android-goldfish-3.4 origin/android-goldfish-3.4
2.编译环境准备
将prebuilt工具添加到环境变量中以备后续使用
export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
接着配置其他必要的环境变量:
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-eabi-
3.开始编译
编译配置,在arch/arm/configs路径下找到两个配置文件:
goldfish_armv7_defconfig
goldfish_defconfig
make goldfish_defconfig (可以通过编译,但启动模拟器到不了桌面,是内核版本配置的原因)
或
make goldfish_armv7_defconfig(android高版本,推荐,有太多配置,手动配置兼职要命,需要裁剪,编辑arch/arm/configs/goldfish_armv7_defconfig就行)
基于文本选单的配置界面
make menuconfig
编译
make
映像的输出为:arch/arm/boot/zImage,这样就通过默认的配置完成了Android内核的编译。
编译时可能会遇到的错误:
ERROR: the symlink include/asm points to asm-x86 but asm-arm was expected
set ARCH or save .config and run 'make mrproper' to fix it
解决方案有俩:
(1).按提示,运行make mrproper命令。
(2).将内核目录下,即goldfish/include下的asm 目录删除以后,再编译即可。
include下的asm 文件夹是内核编译过程中创建的(在你编译之前,还没有创建,但是现在还没有编译,里面已经有了),它是一个这个目录下的asm-arm目录的链接,表明该系统的平台是arm 架构的,在编译过程中,系统会创建该链接,但此时已经有了,这样会与asm 文件夹的名字发生冲突,把它删掉就好了。
误删除,恢复所有代码,命令:
git ls-files -d | xargs -i git checkout {}
4.kernel裁剪(如果需要裁剪的话)
裁剪要用到一个很有用的命令:
make menuconfig
上述命令的运行需要以下库,必须提前安装:
sudo apt-get install ncurses-dev
5.编译成功后,运行模拟器(前提是先选择编译平台sourc
a3f1
e build/envsetup.sh和lunch,才能运行emulator)
emulator -kernel arch/arm/boot/zImage &
&在后面,表示脱离命令行在后台运行,但没效果,终于看到android 桌面,成功了!!!
相关文章推荐
- 下载编译 android kernel goldfish2.6.29源码
- 下载 编译 Android源代码 和 Android kernel源代码
- 在Ubuntu上下载、编译和安装Android4.0.3 source与 kernel 源码
- Android kernel 下载编译笔记
- 第三期 Android Kernel 下载和编译 《手机就是开发板》
- 下载android4.0源代码和kernel及编译
- Android kernel 下载 编译- 2012/04/06
- 下载并编译Android kernel的指定版本源代码
- [Android]Kernel的下载和编译
- android kernel下载及编译
- 下载android kernel内核,并编译。
- 如何下载Android kernel内核源代码,编译烧写验证
- 下载编译android kernel
- 下载android4.0源代码和kernel及编译
- 【Android内核】下载编译android kernel( 原文地址 http://blog.csdn.net/chizhaolin/archive/2010/07/08/5721539.aspx)
- 如何下载编译android kernel 3.4
- ubuntu下载编译android源码(二)
- Ubuntu 10.04环境下载&编译Android-2.2.1 (froyo) 源代码 1/2
- 32 位ubunt u下载编译android2.2源码的问题之一
- 如何编译Android的kernel