a)准备交叉编译工具链
android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。
b)设定环境变量
$ emacs ~/.bashrc
增加如下两行:
export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/ arm-eabi-4.4.0/bin
export ARCH=arm
保存后,同步变化:
$ source ~/.bashrc
c)获得合适的内核源代码
$ cd ~/android
获得内核源代码仓库
$ git clone git://android.git.kernel.org/kernel/common.git kernel
$ cd kernel
$ git branch
显示 * android-2.6.27
说明你现在在android-2.6.27这个分支上,也是kernel/common.git的默认主分支。
显示所有head分支:
$ git branch -a
显示 * android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29
我们选取最新的android-goldfish-2.6.29,其中goldfish是android的模拟器模拟的CPU。
$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$ git branch
显示 android-2.6.27
* android-goldfish-2.6.29
我们已经工作在android-goldfish-2.6.29分支上了。
d)设定交叉编译参数
打开kernel目录下的Makefile文件,把CROSS_COMPILE指向刚才下载的prebuilt中的arm-eabi编译器
CROSS_COMPILE ?= arm-eabi-
把 LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
$(call ld-option, -Wl$(comma) build-id,))
这一行注释掉,并且添加一个空的LDFLAGS_BUILD_ID定义,如下:
LDFLAGS_BUILD_ID =
e)编译内核映像
$ cd ~/android/kernel
$ make goldfish_defconfig
$ make f)测试生成的内核映像
$ emulator -avd myavd -kernel ~/android/kernel/arch/arm/boot/zImage
分享到:
相关推荐
为友善之臂mini2440编译好的内核映像文件zImage,内核版本号2.6.29,交叉编译工具arm-linux-gcc-3.4.5
用于使用Clang / LLVM编译Linux内核的自定义Docker映像 Docker Hub: : 就个人而言,我正在使用此Docker contianer映像来编译和构建Linux稳定的内核树。 安装了最少的必需软件包和Clang C编译器/工具链,作为基于...
讲述在linux内核2.6下具体的裁剪过程
使用此 repo,您可以自定义源代码并自己编译 Linux 内核映像。 好好享受! 如何编译 ###1。 下载源代码### git clone ###2。 编译### make mx3_defconfig make -j8 ARCH=arm CROSS_COMPILE=arm-linux-...
使用此存储库,您可以自定义源代码并自己编译Linux内核映像。 好好享受! 如何编译 ### 1。 下载源代码### git clone ### 2。 编译### 对于M1注意./build.sh m71 对于M1 ./build.sh m79 笔记: 确保您有手臂...
1.1 Linux内核基础知识... 2 1.1.1 Linux版本... 2 1.1.2 什么是标准内核... 2 1.1.3 Linux操作系统的分类... 3 1.1.4 linux内核的选择... 4 1.2 Linux内核启动过程概述... 5 1.2.1 Bootloader启动过程... 5 ...
1.1 Linux内核基础知识 2 1.1.1 Linux版本 2 1.1.2 什么是标准内核 2 1.1.3 Linux操作系统的分类 3 1.1.4 linux内核的选择 4 1.2 Linux内核启动过程概述 5 1.2.1 Bootloader启动过程 5 1.2.2 Linux启动过程 7 1.3 ...
4、由于《Linux内核完全注释(0.11) 》原书版本更新的原因,注释中提到的图、表可能与V3.0版书中不一致。 5、由于代码中加入注释,代码行号发生变化,注释中提到的代码行号会出现不一致,建议对照3.0版查询对应...
模块一般用来支持那些不经常使用的功能。例如,通常情况下你仅使用拨号网络,因此网络功能并不是任何时候都需要的,那么就应该使用可装入的...完成之后,就编译出一个没有调入多余模块的一个“干净的”内核映像文件了。
我们在这里并不安装程序光盘映像文件,而是选择稍后安装操作系统,这里可以进行一些设置 选中 Linux,我们以 Ubuntu 64位为例 这里的位置根据自己的需求选择,博主C盘空间不够所以选择了D盘 在这里的选择我们可以...
第一章:Linux内核移植和根文件系统制作 第一章 移植内核..................................................................................................... 2 1.1 Linux 内核基础知识.........................
但是要添加 initrd 和内核命令行,必须在内核编译时指定。 为了演示这个功能并有一个有用的产品,我创建了一个 shell 脚本,它在 Fedora 上创建了一个带有救援内核和救援 initrd 的“救援”映像。 内核命令行“rd....
2 内核映像的形成 8 2.1 MakeFile预备知识 9 2.1.1 Makefile书写规则 9 2.1.2 Makefile变量 10 2.1.3 条件判断 14 2.1.4 函数 17 2.1.5 隐含规则 17 2.1.6 定义模式规则 19 2.1 KBuild体系 23 2.1.1 内核目标 24 ...
为了实现这一点,Buildroot能够生成交叉编译工具链、根文件系统、Linux内核映像和引导加载程序。Buildroot可以独立构建这些选项的任意组合(例如,可以使用现有的交叉编译工具链,并仅使用Buildroot构建根文件系统)...
生成的ISO映像文件包含Linux内核,使用默认选项编译的GNU C库,使用默认选项编译的Busybox,非常简单的initramfs结构和一些“覆盖包”(默认构建过程提供了很少的覆盖包)。 您没有开箱即用的Windows支持,也没有任
mediacomMP82S4 我的工作是为各种中国更名的平板电脑编译一个可用的 linux 内核,例如 Mediacom Smartpad S4 8.0、Prestigio PMP... 现在您已准备好使用 rkflashkit 刷新内核映像,并享受黑屏(我希望它能正常工作)
开发环境建立包括在Pc机上安装1.,inux系统和交叉编译器,编译开发板的Linux内核 映像文件,制作根文件系统,加载引导程序。至此,就完成了一个ARM9嵌入式系统构建,可以开始进行Linux .嵌入式系统开发。
利用这个机制,可以根据需要,在不必对内核重新编译链接的条件下,将可安装模块动态的插入运行中的内核,成为内核的一个有机组成部分;或者从内核移走已经安装的模块。正是这种机制,使得内核的内存映像保持最小,但...
自己编译的uboot 、内核映像、busybox及根文件系统。可以在mini2440开发板上跑起来的最小系统。分析源代码可以了解linux系统启动流程!
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核...