zoukankan      html  css  js  c++  java
  • Android内核源码交叉编译

    一、使用git下载android内核部分源码

    首先新建要保存android内核源码的目录

    mkdir android_kernel

    cd android_kernel

    android kernel的网站http://android.git.kernel.org/

    git clone git://android.git.kernel.org/kernel/common.git

    下载android内核源码,完成之后会看到common目录,内核的源码就算下载完成了

    如果想下载某一内核的版本,可以使用下面几个命令:

    git branch -a // 显示所有的分支

    git branch -r // 显示romote端的分支

    git checkout // 检出某一分支

    二、设置交叉编译环境

    交叉编译的环境在android源码已经存在,源码的下载可以参考《下载编译android源码》。在源码目录的android_source/prebuilt/linux-x86/toolchain/,可以看到多个交叉编译的工具

    mac@mac-desktop:~/works/android_dev/prebuilt/linux-x86/toolchain$ ls -all

    总用量 44

    drwxr-xr-x 9 mac mac 4096 2011-08-28 15:16 arm-eabi-4.2.1

    drwxr-xr-x 9 mac mac 4096 2011-08-28 15:16 arm-eabi-4.3.1

    drwxr-xr-x 10 mac mac 4096 2011-08-28 15:16 arm-eabi-4.4.0

    drwxr-xr-x 10 mac mac 4096 2011-08-28 15:16 arm-eabi-4.4.3

    drwxr-xr-x 10 mac mac 4096 2011-08-28 15:16 arm-linux-androideabi-4.4.x

    drwxr-xr-x 6 mac mac 4096 2011-08-28 15:16 i686-android-linux-4.4.3

    drwxr-xr-x 8 mac mac 4096 2011-08-28 15:17 i686-linux-glibc2.7-4.4.3

    drwxr-xr-x 10 mac mac 4096 2011-08-28 15:17 i686-unknown-linux-gnu-4.2.1

    drwxr-xr-x 6 mac mac 4096 2011-08-28 15:17 sh-4.3.3

    一般使用最新版本。

    三、配置编译时的config文件

    因为编译的镜像是要刷到模拟器运行的,模拟器的处理器架构是基于goldfish,所以需要下载有关goldfishconfig文件。下载方法:

    mac@mac-desktop:~/works/kernel-2.6.29$ git branch -a

    * (no branch)

    android-2.6.29

    android-2.6.36

    remotes/origin/HEAD -> origin/android-2.6.36

    remotes/origin/android-2.6.35

    remotes/origin/android-2.6.36

    remotes/origin/android-2.6.37

    remotes/origin/android-2.6.38

    remotes/origin/android-2.6.39

    remotes/origin/android-3.0

    remotes/origin/archive/android-2.6.25

    remotes/origin/archive/android-2.6.27

    remotes/origin/archive/android-2.6.29

    remotes/origin/archive/android-2.6.32

    remotes/origin/archive/android-gldfish-2.6.29

    remotes/origin/archive/android-goldfish-2.6.27

    remotes/origin/linux-bcm43xx-2.6.39

    remotes/origin/linux-wl12xx-2.6.39

    下载remotes/origin/archive/android-gldfish-2.6.29 版本:

    git checkout origin/archive/android-gldfish-2.6.29

    然后就可以到arch/arm/configs下看到goldfish_defconfig这个文件了。

    goldfish_defconfig文件拷贝到android_kernel目录,并重命名为.config

    四、make编译

    首先设置环境:

    export PATH=$PATH:~/android_source/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

    然后修改Makefile

    ARCH = arm #体系结构为arm

    CROSS_COMPILE = arm-eabi- #交叉编译工具链前缀,参考/toolchain/arm-eabi-4.4.3/bin

    然后就可以make编译了,编译过程中会连续提示yes/not,能看懂的多注意几眼,看不懂的一路狂按Enter,最后如果前面的设置正确,编译完整后会看到下面的提示:

    OBJCOPY arch/arm/boot/zImage

    Kernel: arch/arm/boot/zImage is ready

    五、编译得到zImage,用新内核启动模拟器

    ./emulator -avd android2.1 -kernel ~/kernel-2.6.29/arch/arm/boot/zImage

    在模拟器上查看系统信息:

  • 相关阅读:
    【2017 Multi-University Training Contest
    【CS Round #39 (Div. 2 only) D】Seven-segment Display
    【CS Round #39 (Div. 2 only) C】Reconstruct Sum
    【CS Round #39 (Div. 2 only) B】Circle Elimination
    【CS Round #39 (Div. 2 only) A】Removed Pages
    【Uva 10163】Storage Keepers
    【Uva 1632】Alibaba
    【2017 Multi-University Training Contest
    Network Function Virtualization for a Network Device
    C#程序集相关的概念
  • 原文地址:https://www.cnblogs.com/mahang/p/2161960.html
Copyright © 2011-2022 走看看