编译android内核源码
来源:互联网 发布:如何让安卓手机连入mac 编辑:程序博客网 时间:2024/06/02 08:37
官网:http://source.android.com/source/building-kernels.html
下载地址:https://android.googlesource.com/?format=HTML
一般下载:goldfish版本的
1.建立目录
mkdir kernel
2.解压文件(goldfish-android-goldfish-3.4.tar.gz)到目录下
tar zxvf goldfish-android-goldfish-3.4.tar.gz -C kernel
文件目录结构
3.修改文件夹中的Makefile文件中的编译环境
VIM
# ARCH ?= (SUBARCH)
# CROSS_COMPILE?=
ARCH ?= arm #体系结构为arm
CROSS_COMPILE ?= arm-eabi- #交叉编译工具链前缀
或者
$ export ARCH=arm$ export SUBARCH=arm$ export CROSS_COMPILE=arm-eabi-
4.导出交叉编译工具目录到$PATH环境变量中去
这步没做,下面报错
export PATH=$PATH:/media/M_hM_=M_M_dM__M_6/Download/442/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin
5.编译
切换到kernel目录 ( cd kernel)
命令:make goldfish_defconfig (make goldfish_armv7_defconfig)
2.3版本以后的体系架构是用的是armv7
命令:make -j16
错误1:
/kernel_dir ...../arch/arm: 是一个目录。 停止
修改:
ARCH ?= arm<空格>
删除空格
错误2:
/bin/sh: 1: arm-eabi-gcc: not found 导出交叉编译工具目录到$PATH环境变量中去
导出交叉编译工具目录到$PATH环境变量中去:export PATH=$PATH:/media/M_hM_=M_M_dM__M_6/Download/442/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin
6.编译成功
7.在模拟器中运行编译好的内核
export PATH=$PATH:/media/M_hM_=M_M_dM__M_6/Download/442/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/media/M_hM_=M_M_dM__M_6/Download/442/out/target/product/generic
8.在后台中指定内核文件启动模拟器
切换到android源码目录 运行命令:emulator -kernel kernel/arch/arm/boot/zImage &
错误1:
解决:
source build/envsetup.sh
lunch sdk-eng
错误2:黑屏
原因:
2.3版本以后的体系架构是用的是armv7了,
解决:将make goldfish_defconfig改成make goldfish_armv7_defconfig
9.结果:
- 编译android内核源码
- Android源码、内核编译
- 编译android内核源码
- Android 编译Android内核源码
- 如何编译Android内核源码
- 编译Android goldfish内核源码
- Android 编译内核kernel源码
- Android源码编译(8)---编译内核
- 编译Android系统源码和内核源码
- 编译Android系统源码和内核源码
- 编译Android系统源码和内核源码
- 编译Android系统源码和内核源码
- 编译android系统源码和内核源码
- 编译Android系统源码和内核源码
- Ubuntu上编译Android内核源码
- Ubuntu11.10下编译android内核源码
- Android内核源码下载与编译
- 编译Android源码与内核总结
- spark源码学习(二):sparkContext的初始化分析(二)
- Repeater获取勾选数据,拼接成SQL实现批量删除+存储过程
- OpenCV求解的矩阵: CvMat与cvSolve函数
- 【SPOJ-INVCNT】Inversion Count【树状数组】【逆序对】
- 在Spring Boot中整合Spring Security并自定义验证代码
- 编译android内核源码
- Spring Bean配置:注解配置
- R语言从github安装recharts包
- arraylist排序
- mysql执行脚本无法插入中文
- Java在linux下调用C/C++生成的so文件
- Android中Butter Knife库使用
- char *ch = new char; 与 char *ch = new char[10];
- CocoaPod使用