`
abc20899
  • 浏览: 928912 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

编译linux内核映像

 
阅读更多
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
分享到:
评论

相关推荐

    Linux内核映像文件

    Linux内核映像文件是操作系统的核心部分,负责管理和协调计算机硬件与软件资源,为其他程序提供基础服务。在嵌入式系统中,特别是在开发板或物联网设备上,使用经过裁剪的Linux内核映像非常常见,以确保系统运行轻量...

    编译Linux内核

    编译Linux内核 编译Linux内核是Linux操作系统课程设计实验的一部分,目的是学习重新编译Linux内核,理解并掌握Linux内核和发行版本的区别。以下是编译Linux内核的详细知识点: 一、实验目的 * 了解Linux内核的...

    linux内核编译实验报告

    - **编译Linux内核**: 执行`make bzImage`命令编译内核映像文件`bzImage`,并使用`make modules`和`make modules_install`命令编译并安装内核模块。 - **修改Grub配置**: 修改Grub配置文件以支持新编译的内核,确保...

    windows下面编译linux-0.11内核

    为了编译Linux内核,你需要安装MinGW32的完整版,包括gcc、make以及其他必要的库和工具。确保你的MinGW32安装了g++编译器,因为内核源码主要是用C++编写的。 接下来,我们需要**Linux 0.11** 的源代码。在解压提供...

    OMAPL138编译Linux内核方法

    ### OMAPL138编译Linux内核方法详解 #### 1. 编译内核 根据提供的文档信息,本文将详细介绍如何针对OMAPL138平台编译Linux内核的方法。OMAPL138是一款高性能的嵌入式处理器,支持多种内核版本。本文档将涵盖Linux ...

    Linux内核配置编译分析实验

    Linux内核配置和编译的实验内容包括内核配置系统组成、内核编译流程分析、内核映像烧写以及如何在内核配置中添加编译模块等知识点。 内核配置系统由三部分组成:Makefile、配置文件和配置工具。Makefile定义了Linux...

    浅谈Linux内核的重编译

    - `make zImage`或`make bzImage`(后者用于大型内核):编译生成压缩的内核映像文件。 - **模块编译与安装**:若选择将某些功能编译为模块,还需执行`make modules`和`make module-install`,将编译后的模块放置于...

    Linux内核重配置及编译.rar_linux_linux 内核_linux 配置_linux内核_linux编译内核

    当需要对系统进行优化、添加特定功能或修复已知问题时,我们可能需要重新配置和编译Linux内核。本资料主要涵盖了Linux内核的重配置和编译过程,下面将详细解释这一过程。 首先,重配置内核意味着根据系统的特定需求...

    linux实验十编译linux内核.pdf

    这个实验旨在让学习者掌握在ARM系统上编译Linux内核的过程。实验设备包括一套S3C2410RP嵌入式实验箱和一台装有Redhat9的宿主机,需要确保宿主机已经配置好ARM Linux的开发环境。 实验步骤分为多个阶段: 1. 首先,...

    基于Arm的Linux内核编译指导及bootloader

    在基于Arm的设备上编译Linux内核,你需要遵循以下步骤: 1. **环境配置**:确保你的开发环境已经安装了交叉编译工具链,例如arm-linux-gnueabi-工具集,以适应Arm架构。同时,设置好PATH环境变量,使其能够找到这些...

    基于ARM的嵌入式linux内核的裁剪与移植.pdf

    本文讨论了基于ARM的嵌入式Linux内核的裁剪与移植,介绍了交叉编译环境的建立、Makefile的修改、nash分区的设置、内核的编译、内核映像的生成等过程。 Linux操作系统是嵌入式系统的不二之选,原因是Linux具有开放性...

    Zynq 7000 Linux内核编译方法

    对于使用Zynq 7000系列芯片进行Linux开发的用户来说,编译Linux内核是一个基础而重要的步骤。本文将详细介绍Zynq 7000 Linux内核的编译方法,通过一系列的命令和操作步骤帮助用户快速上手。 在开始之前,需要了解...

    at91sam9260的linux内核编译详解

    本文将详细介绍如何为at91sam9260-ek开发板编译Linux内核,帮助读者掌握这一过程中的每一个步骤。 #### 二、准备工作 1. **获取源代码**: - 首先,需要下载Linux内核源代码。在本例中,使用的版本是2.6.19。 - ...

    嵌入式Linux内核编译

    嵌入式Linux内核编译是一项复杂而关键的任务,它涉及到在特定的硬件平台上构建操作系统核心,以便在该平台上运行应用程序。在这个过程中,开发者需要创建一个交叉编译环境,因为通常开发工具(如编译器)运行在不同...

    Linux内核编译全过程详解

    1. **编译内核映像**:执行`make bzImage`以生成内核映像文件。 2. **编译内核模块**:使用`make modules`命令编译内核模块。 3. **安装内核模块**:通过`make modules_install`将编译好的模块安装到系统中。 4. **...

    Linux内核编译

    ### Linux内核编译知识点详解 #### 一、编译内核的准备工作 在开始Linux内核编译之前,需要完成一系列准备工作以确保编译过程能够顺利进行。 **1. 获取Root权限** - 输入指令:`su root` - 再输入root账户密码...

    linux 内核(arm).rar

    编译完成后,生成的内核映像可以烧录到目标硬件上,实现Linux系统的运行。 阅读《奔跑吧,Linux内核(ARM)》,读者将了解到如何在ARM平台上调试内核,包括使用GDB进行远程调试,以及利用kernel log和sysfs来获取内核...

    嵌入式linux内核编译配置命令

    Linux内核编译配置是一项重要的技术活动,尤其对于嵌入式系统开发者来说。在嵌入式Linux系统中,开发者通常需要根据具体的硬件平台和应用需求定制操作系统内核,以优化性能和功能。Linux内核编译配置命令是实现这一...

    基于linux 2.6内核裁剪过程

    在Linux操作系统中,内核是其核心...内核裁剪是一项细致的工作,需要对Linux内核有深入理解。在裁剪过程中,既要保证系统功能的完整,又要确保效率和稳定性。通过合理裁剪,可以为特定应用创建一个轻量级且高效的内核。

Global site tag (gtag.js) - Google Analytics