Ubuntu下编译android的linux内核类归于: Android — 标签:Android, Linux, Ubuntu —
admin @ 5:04 下午 1、构建交叉编译环境
Android的默认硬件处理器是ARM的,因此我们需要在自己的host机器上构建交叉编译环境。来到CodeSourcery, (http://www.codesourcery.com
/gnu_toolchains/arm/download.html),点击GNU/Linux对应的链接,再点击IA32 GNU/Linux
Installer链接直接下载。把arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-
gnu.tar.bz2解压到一目录下,如~/programes/。并加入PATH环境变量: vim ~/.bashrc 添加:
ARM_TOOLCHIAN=~/programes/arm-2008q3/bin/ export
PATH=${PATH}:${ARM_TOOLCHIAN}; 保存,并source ~/.bashrc 2、获取内核源码 http://code.google.com/p/android/downloads/list
注意该内核版本要与你选用的模拟器版本尽量一致。下载后,解压后得到kernel.git文件夹: tar -xvf
~/download/linux-2.6.25-android-1.0_r1.tar.gz
3、获取内核编译配置信息文件编译内核时需要configure,而一般configure的选项很多,我们往往不知道需要那些选项。Android模拟
器运行时,有一文件/proc /config.gz,
config.gz是当前内核的配置信息文件,我们把config.gz获取出来,解压放到kernel.git/之下(改名为.config): cd
kernel.git/ emulator & adb pull /proc/config.gz gunzip config.gz mv
config .config 4、修改Makefile 修改195行: CROSS_COMPILE =
arm-none-linux-gnueabi-
将CROSS_COMPILE值改为arm-none-linux-gnueabi-,这是我们安装的交叉编译工具链的前缀,修改此处意在告诉make在
编译的时候要使用该工具链。注释562,563行: #LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%, #
$(call ld-option, -Wl$(comma)?build-id,)) 将build id
值注释掉,因为目前版本的android内核不支持该选项。 5、编译 make 很快就编译好,并生成zImage: LD
arch/arm/boot/compressed/vmlinux OBJCOPY arch/arm/boot/zImage Kernel:
arch/arm/boot/zImage is ready
生成zImage大小为1.23M,android-sdk-linux_x86-1.0_r2/tools/lib/images/kernel-
qemu是1.24M 6、用模拟器加载内核测试 cd
android/out/cupcake/out/target/product/generic emulator -image
system.img -data userdata.img -ramdisk ramdisk.img -kernel
~/project/android/kernel.git/arch/arm/boot/zImage 模拟器加载成功就OK了
分享到:
相关推荐
请注意,编译内核不仅需要对Linux内核有一定了解,还需要对Android系统的构建过程有深入的认识。在进行内核定制时,务必谨慎操作,因为错误的配置或编译可能导致系统不稳定甚至无法启动。同时,保持与官方内核的同步...
在本文中,我们将深入探讨如何在Ubuntu 32位系统上安装、编译Android 2.3源码以及内核,并解决编译过程中可能遇到的问题。Android 2.3,也被称为Gingerbread,是Android操作系统的一个重要版本,对开发者来说具有...
在Ubuntu上编译Android应用程序或库(如FFmpeg)允许开发者利用其丰富的开发工具和调试支持。 2. **FFmpeg**: FFmpeg是一个跨平台的多媒体处理工具,包含了各种编解码器、过滤器和协议。它能够处理各种音频和视频...
Android内核通常基于某个Linux内核版本进行定制和优化。 **1. 查看可用的内核版本** 在`common`目录下运行`git branch -a`查看所有可用的分支: ```bash cd common git branch -a ``` 假设你选择了`android-...
### Linux下编译Android内核源码遇到的问题及解决方案 #### 概述 在尝试编译Android内核源码的过程中,经常会遇到各种错误提示。本文将针对这些常见的编译错误进行详细解析,并提供相应的解决办法。这对于那些正在...
在Ubuntu系统上构建和安装Android的最新Linux内核源代码是一项技术性的工作,涉及到一系列步骤。首先,要明确的是,Android的源代码仓库并不直接包含Linux内核源代码,而是依赖于预先编译好的内核镜像。如果你想要...
这个压缩包文件"树莓派linux内核交叉编译shell脚本.zip"提供了在Ubuntu环境下为树莓派进行Linux内核交叉编译的工具和指南。交叉编译是在一个操作系统上编译另一个操作系统上的软件,这里是Ubuntu为树莓派编译Linux...
在开始之前,你需要安装OpenJDK,它是Java开发工具包,对于编译Android源码至关重要。你可以通过以下命令安装: ```bash sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install ...
在Android开发过程中,有时需要对Linux内核进行定制和优化,以满足特定设备或功能的需求。为此,开发者通常会在虚拟机上搭建一个Linux开发环境,然后通过远程终端工具如secureCRT进行连接。以下是一个详细的Android ...
在Ubuntu 10.04环境下编译Android源码的过程是一项复杂的任务,涉及到多个步骤和技术。首先,要了解Git,这是一个分布式版本控制系统,由Linux Torvalds创建,用于管理Linux内核开发。与传统的集中式版本控制系统如...
在本文中,我们将详细探讨如何在Ubuntu 12.04环境下编译Android 4.1.1_r6源代码。这个过程分为几个关键步骤,包括安装必要的软件、配置环境和下载源代码。 首先,确保你的硬件配置满足基本要求,例如拥有Intel Core...
在这个例子中,我们选择了Ubuntu 14.04版本的操作系统,这个版本自带了Linux 4.4.0-142-generic版本的内核。 二、编译器环境搭建 编译器是编译内核所需的关键工具。在这个例子中,我们使用了来自谷歌的aarch64-...
《Android内核编译手册》是一本专注于指导用户如何编译Android操作系统的内核的详尽指南。在Android系统中,内核起着至关重要的作用,它是连接硬件和上层软件的桥梁,负责管理和调度系统资源。对于开发者来说,理解...
### Ubuntu 8.04下编译Android源码全过程知识点详解 #### 一、获取Android源代码 在本文档中,介绍了如何在Ubuntu 8.04系统环境下获取Android源代码的过程。此过程主要涉及到了Git版本控制系统的使用以及Repo脚本...
2. **兼容性与性能**:Ubuntu下的Android开发环境能够充分利用硬件资源,优化编译与调试过程。 3. **集成工具**:Ubuntu内置了大量开发所需的基础工具,如GCC、GDB等,简化了开发环境的搭建流程。 #### 二、Android...
在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序。在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello、proc系统文件/...
【Ubuntu 10.04下编译Android源码实用指南】 在Ubuntu 10.04系统中编译Android源码是一项复杂的过程,需要掌握Git版本控制系统以及Android的Repo工具。Git是Linux Torvalds为管理Linux内核开发而创建的分布式版本...