posts - 33, comments - 0, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Android內核源碼交叉編譯

          Posted on 2011-09-01 14:19 馬航 閱讀(1350) 評論(0)  編輯  收藏

          一、使用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

          在模擬器上查看系統信息:


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 昭苏县| 高台县| 安吉县| 岑巩县| 嵩明县| 石门县| 左贡县| 普兰县| 林西县| 林口县| 内黄县| 桐乡市| 阜宁县| 扬中市| 盐山县| 五原县| 青铜峡市| 镇原县| 习水县| 民县| 宿州市| 德令哈市| 齐齐哈尔市| 乾安县| 边坝县| 灵璧县| 贡觉县| 潍坊市| 青阳县| 林芝县| 长丰县| 隆回县| 七台河市| 东乡| 龙南县| 扶绥县| 阳山县| 治多县| 宜兰市| 阿勒泰市| 文水县|