andorid 内核源码编译-Android内核的编译和裁剪

概述

如果我们只对Android内核感兴趣,我们可以选择合适的Android内核来下载编译。

可用的内核源代码有许多版本:

[清楚的]

$gitclone$gitclone$gitclone$gitclone$gitclone$gitclone$gitclone

goldfish项目包含适合模拟器平台的源代码;

msm 项目包含适用于 ADP1、ADP2、Nexus One 和 Nexus 4 的源代码,可用作开发 Snapdragon MSM 芯片组自定义内核的起点;

omap项目包含适用于PandaBoard和Galaxy Nexus的源代码,可作为德州仪器OMAP芯片组内核开发和定制的起点;

三星项目包含适用于Nexus S的源代码,可以作为三星蜂鸟芯片组核心开发和定制工作的起点;

tegra项目包含适用于Xoom和Nexus 7的源代码,可作为NVIDIA Tegra芯片组核心开发和定制工作的起点;

exynos 项目包含适用于 Nexus 10 的源代码andorid 内核源码编译,可用作三星 Orion 芯片组核心定制开发的起点。

编译

1.我选择的是金鱼版本,也就是克隆金鱼而已。

[清楚的]

$mkdirAndroidKernel$gitclone

需要等待一段时间,具体取决于网络速度:

2、然后进入goldfish,发现上面没有文件。 别担心,我们仍然需要选择一个分支并下载真正的源代码:

这可以通过执行以下命令来完成:

[清楚的]

$gitbranch-a

要查看所有分支,然后:

[清楚的]

$ gitcheckout-bandroid-goldfish-2.6.29origin/android-goldfish-2.6.29

下载源码

3.下载编译所需的预构建工具:

[清楚的]

$gitclone

稍等片刻:

4.将预构建工具添加到环境变量中以供后续使用:

[清楚的]

$exportPATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH

5.然后配置其他必要的环境变量:

[清楚的]

$exportARCH=arm $exportSUBARCH=arm$exportCROSS_COMPILE=arm-eabi-

6. 我们执行:

[清楚的]

$makegoldfish_defconfig

要在内核源根目录中生成默认的 .config 文件:

7.最后我们可以编译了:

[清楚的]

$make

编译过程截图:

镜像的输出为:arch/arm/boot/zImage,通过默认配置完成了Android内核的编译。

剪下

裁剪使用一个非常有用的命令:

[清楚的]

$makemenuconfig

上述命令的运行需要以下库,必须提前安装:

[清楚的]

$ sudo apt-get install ncurses-dev

编译Linux内核时会用到make menuconfig命令。 关于它的详细描述,你可以参考以下地方并详细阅读:

简单来说,在编译过程中,编译器通过配置文件学习如何编译,知道应该编译到哪个模块中。这个命令会打开一个红色的命令行菜单,让你在编译时修改配置。 切割时也会通过该命令打开一个菜单来修改编译配置。 如果退出时有变化,会手动提示保存。

我们将make menuconfig打开的菜单中的菜单项更改为剪切。 这个菜单还是很友好的。 您可以根据自己的需要知道如何切割。 切割完成后,退出时询问是否保存andorid 内核源码编译,当然必须保存(实际上就是更新上面提到的默认源码根目录下的config文件)。

然后我们就可以编译修剪后的内核了(当然,编译过程中也会读取更新后的配置文件):

[清楚的]

$ 制作

编译完成后,看一下编译后的镜像。 如果没有问题,你会发现新的镜像比未裁剪的编译镜像要小。

----------------------------------

1、环保设备

首先准备好所需的Linux操作系统和C盘空间。 磁盘空间必须足够大。 内存>1G,硬盘>40G

1.1. 安装JDK1.6: sudo apt-get install sun-java6-jdk

1.2. 安装开发过程中需要的一些开发包

sudo apt-get install git-core gnupg valgrind flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip libncurses5-dev zlib1g-dev

如果在提供的源中找不到所需的安装包,可以添加软件源:

添加源的过程:

① 备份当前源列表 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

② 修改 sudo gedit /etc/apt/sources.list

③ 修改后保存并更新 sudo apt-get update

准备好获取android源码所需的环境之后,我们就开始获取android源码了。

2.获取android源码

2.1. 在用户目录下新建一个文件夹,用来存放我们的android目录

①mkdir android

②cd安卓

andorid 内核源码编译-Android内核的编译和裁剪

③ mkdir bin

④ 光盘仓

⑤安装repo,通过curl下载repo:curl > repo(如果没有安装curl,sudo apt-get install curl)

sudo chmod a+x 仓库

⑥ 然后将bin路径添加到PATH中:exportPATH=$PATH:~/bin

2.2. 创建一个目录,存放android源码源码

① mkdir 源

②光盘源

③在git上获取android源码版本:../bin/repo init -u -b android-4.0.3_r1

④出现提示时,请配置您用于回购的真实姓名和电子邮件地址。 要使用 Gerrit 代码审查工具,需要注册 Google 帐户才能连接到电子邮件地址。 确保这是一个有效的实时地址,您可以通过该地址接收短信。 您在此处提供的名称将显示在您提交的代码的属性中。 完成后会出现“repoinitialized in /home/***(您的用户名)/android”,说明初步试用完成,可以开始下载了。 Repo初始化后,会形成一个隐藏目录“.repo”,通过查看该目录下的manifest文件可以看到对应的Project。

⑤ 在终端执行命令开始下载:../bin/reposync

3.下载安卓内核

新建一个目录存放android内核

① mkdir内核

②cd内核

③Android内核有多个部分,您可以根据需要运行以下命令下载所需内容。 克隆

下载android内核的时间会比下载源码的时间短。 需要注意的是,android内核的下载不能中断,并且android源码支持断点下载。下载的内容是隐藏的,使用du -sk命令测量文件夹大小

4.编译android源码

编译。 在Android/source目录下执行以下命令:make

第一次编译时间比较长,编译成功

编译通常不会比下载时间长。 默认情况下,编译完成后,会在/root/android目录下生成一个out文件夹,所有生成的文件都会放在这个文件夹中。编译生成后,out中会生成一些.img图片文件/目标/产品/通用/目录

5.编译android内核

5.1. 确定内核版本

进入android内核源码存放的kernel目录。 我下载了goldfish.git,进入goldfish目录,在命令行输入以下命令,显示所有分支和当前分支:

$ git 分支 -a

输入以下命令选择当前版本(goldfish是android模拟器描述的CPU):

$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29

再次输入命令 gitbranch -a ,会显示刚刚选择的最新分支,说明当前正在处理选择的分支

5.2. 设置环境变量

导出 PATH=$PATH:~/android/source/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/:$PATH

导出 ARCH=arm

导出 CROSS_COMPILE=arm-eabi-

5.3. 编译内核源代码

设置完毕后,就该编译android内核源代码了。 进入内核目录,输入以下命令

$make ARCH=arm goldfish_armv7_defconfig

$ 制作

第一条命令是编译时的默认配置文件。 如果不执行该命令,编译时可能会提示“配置文件未找到”。 第一条命令执行后,会在goldfish目录下生成.config文件。 然后就是一段等待的时间。 。 。 花费的时间并不长,一会儿就可以编译完成,比编译android源代码花费的时间要少得多。 编译完成后,会在“kernel/arch/arm/boot/”目录下生成一个名为zImage的文件。

6.运行Android系统

设置路径

导出 PATH=$PATH:~/android/source/out/host/linux-x86/bin/

导出 ANDROID_PRODUCT_OUT=~/android/source/out/target/product/generic/

加载:模拟器–内核./kernel/goldfish/arch/arm/boot/zImage

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 andorid 内核源码编译-Android内核的编译和裁剪 https://www.wkzy.net/game/184722.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务