Android内核编译与裁剪

编译Android内核

  1. 创建一个目录android,用来存放我们即将要下载的android源码。

   命令:$ mkdir android

  1. 进入上一步中建立好的目录android。

   命令:$ cd android

  1. 选择一个内核版本,使用git下载android的源码。我选择了goldfish版本,该版本是适用于模拟器平台的内核版本。

   命令:

   $ git clone https://android.googlesource.com/kernel/goldfish.git 

   查看goldfish内核在git中的所有分支信息。

   命令:$ git branch -a

   选择适合的分支,下载goldfish真正的代码。

   命令:$ git branch android-goldfish-2.6.29

  1. 在编译android内核时,需要使用交叉编译器。选择工具链,使用git下载prebuilt工具链。

   命令:

   $ git clonehttps://android.googlesource.com/platform/prebuilt

  1. 将工具链的其bin路径添加到PATH中,确保工具链在环境变量中。

   命令:

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

  6.  设置其他环境变量。

   命令:

   $ export ARCH=arm

   $ export SUBARCH=arm

   $ export CROSS_COMPILE=arm-eabi-

  1. 进入内核的目录中。

   命令:$ cd goldfish

  1. 编译内核源码。首先,设定编译时的默认配置文件,如果不这么做,可能会出现“找不到配置文件”错误。

   命令:$ make goldfish_defconfig


图1.执行make goldfish_defconfig命令

   执行完此条命令后,会在goldfish目录下生成一个.config文件。接着可直接编译。


图2.执行完上条命令,生成.config文件

   命令:$ make

图3.执行make命令

   执行完该命令后,会在“kernel/goldfish/arch/arm/boot/”目录下生成名为zImage的文件,大小为1.7M左右。

图4.执行完make命令,生成zImage文件

裁剪Android内核

   1.   为了使用makemenuconfig,需要安装ncurses。

    命令:$ sudo apt-get install ncurses-dev

   2.   进行内核配置,执行相应命令。

    命令:$ make menuconfig

   3.   进行内核裁剪。通过界面操作更改配置,以进行某些模块的裁剪。


图5.通过界面操作配置进行裁剪

   4.   编译裁剪之后的内核。生成新的zImage文件,大小约为995K。

    命令:$ make


图6.编译裁剪过的内核生成的zImage文件属性

 

   通过上述裁剪的过程,可以进行相关类似的操作,以裁剪不同的模块,满足不同的需要。编译裁剪之后的内核一般会发现其生成的zImage文件的大小会变小。

展开阅读全文

没有更多推荐了,返回首页