Android内核编译

说明:

我这里用的是Android
4.2.2自带的交叉编译工具。如果是使用host系统安装的,我觉得应该也是可以的。但是没有测试过。因为Android源代码已经自带了,所以大多数情况下,不需要再安装host系统的交叉编译工具。

Android自带的交叉编译工具有两套,位于prebuilts/gcc/linux-x86/arm目录下:
1.
arm-eabi-4.6
2.
arm-linux-androideabi-4.6

两者的区别是:后者比前者新一些,具备一些新的特性。实际测试表明都可以用来编译内核,都可以。似乎是后者更多地用于NDK。而且包含一些针对Android的特定修改。

对于如何编译Android
kernel
(默认指的是给Android模拟器编译),说明文档位于Android源代码下的
external/qemu/docs/ANDROID-KERNEL.TXT。大家可以参考。

环境准备:

1.将交叉编译工具链的路径加入系统路径中

在~/.bashrc中加入如下语句(具体路径请根据自己实际情况调整):

export
PATH=$PATH:~/Android_4.2.2_r1.2/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin

2.重新登录终端或者使用source
~/.bashrc。

3.在命令行下执行 arm-eabi-gcc
--version,如果没有出错信息,说明配置完成。

编译:

去google下载最新的kernel代码。假设放在了goldfish目录下,则执行以下命令编译(假设你的模拟器是armv7,你的编译工作站有8个core);
cd
goldfish
export CROSS_COMPILE=arm-eabi-
export ARCH=arm
export
SUBARCH=arm
make goldfish_armv7_defconfig
make
-j8

如果编译过程没有出错,则最后编译出的arch/arm/boot/zImage,就是我们要的kernel,可以用来测试了。

时间: 2024-07-28 14:43:20

Android内核编译的相关文章

Android学习【Android内核编译流程和错误笔记】

博客:http://blog.csdn.net/muyang_ren Ubuntu14.04 LTS(要求是64位长期支持版LTS) Jdk1.8 内核:android4.0 一:jdk 1.解压jdk,获得路径 2. sudo vim /etc/environment 修改为: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/lhy/jdk/

Android 内核编译记录

下载内核源码和交叉编译链,交叉编译链我用的https://aosp.tuna.tsinghua.edu.cn/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9 export CROSS_COMPILE=$(pwd)/bin/<toolchain_prefix>- 例如: export CROSS_COMPILE=$(pwd)/bin/aarch64-linux-android- export ARCH=<arch

Android 内核编译过程记录

下载内核源码和交叉编译链交叉编译链我用的 https://aosp.tuna.tsinghua.edu.cn/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9 设置交叉编译链前缀export CROSS_COMPILE=$(pwd)/bin/<toolchain_prefix>-例如:export CROSS_COMPILE=$(pwd)/bin/aarch64-linux-android- 指定交叉编译目标架构exp

Android学习【Android内核编译之Linux通信环境搭建】

博客:http://blog.csdn.net/muyang_ren Linux系统:Ubuntu Kylin 1404 NFS服务器的安装配置和使用: 安装nfs服务器: 1->安装NFSserver端口映射和服务 sudo apt-get install nfs-kernel-server 2->先重启portmap服务 sudo /etc/init.d/portmap restart 3->编辑/etc/exports,添加目标系统的根文件系统映射目录,假如目标系统的根文件系统最后

Android内核编译步骤

android_4.0.4_tq210$ source build/envsetup.shandroid_4.0.4_tq210$ lunch 5/android_4.0.4_tq210$ make -j8

Android内核开发:系统编译输出的镜像文件

本文是<Android内核开发>的第四篇文章,主要介绍一下源码编译输出的几个重要的镜像文件,这里把bootloader源码和Linux内核源码的编译输出也算在其中,因为毕竟Android系统缺少了这两个部分在设备上也是跑不起来的. 1. MLO, u-boot.img 任何操作系统的启动,都离不开"引导程序",比如桌面Windows系统的BIOS.桌面Linux系统常用的是Grub,而在嵌入式系统中,这个引导程序通常叫做"bootloader",它通常由

Android内核的编译与测试

1.下载Android内核 source.android.com/source->Downloading and Building Building Kernels 大概要花2个小时,其源码在培训软件里面的 Android模拟器使用的Linux-3.10版本内核源码 复制到Ubuntu,并解压之.进入该目录 这是Android源代码已经自带好的交叉工具链,只需要把它加入到path环境变量即可. sudo gedit /etc/profile source /etc/profile 测试: 2.编

编译Android内核

首先需要知道自己android内核的版本,我们android系统是android 4.0.1,内核版本为2.6.29. 由于我们在下载android源代码的时候默认是不带内核源码的,因为他内置了一个编译好的zImage内核镜像,所以,如果要编译内核源码的时候,我们需要下载我们当前版本的内核源码.注意,这里的内核源码并不是Linux官网的内核源码,而是谷歌定制的内核. 我们首先需要在android源代码根目录下新建一个kernel目录. mkdir kernel cd kernel git clo

realarm Android系统编译后内核无法启动的解决方法

由于之前版本使用的内核并非uImage格式,而在编译时使用的是非uImage格式编译,所以照成无法启动. 解决方法是,在编译内核时使用make uImage方式编译. 修改根目录下的build_realv210.sh文件,如下图所示 另外注意上图中CPU_JOB_NUM这个参数,要根据自己的电脑配置来选择,该参数在该文件的起始处设置,可以设置成电脑CPU核心数的2倍,例如:如果核心数为2,那么设置成4即可. 完整脚本下载地址:http://download.csdn.net/detail/u01