編譯android內核源碼

官網:http://source.android.com/source/building-kernels.html

下載地址:https://android.googlesource.com/?format=HTML

一般下載:goldfish版本的

1.建立目錄

mkdir kernel

2.解壓文件(goldfish-android-goldfish-3.4.tar.gz)到目錄下

tar zxvf goldfish-android-goldfish-3.4.tar.gz -C kernel

文件目錄結構

3.修改文件夾中的Makefile文件中的編譯環境

VIM

# ARCH ?= (SUBARCH)

# CROSS_COMPILE?=
ARCH ?= arm  #體系結構爲arm

CROSS_COMPILE     ?= arm-eabi- #交叉編譯工具鏈前綴

或者

$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-

4.導出交叉編譯工具目錄到$PATH環境變量中去

這步沒做,下面報錯

export PATH=$PATH:/media/M_hM_=M_M_dM__M_6/Download/442/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin

5.編譯 

切換到kernel目錄 ( cd kernel)

命令:make goldfish_defconfig   (make goldfish_armv7_defconfig)

2.3版本以後的體系架構是用的是armv7

命令:make -j16

錯誤1:

/kernel_dir ...../arch/arm: 是一個目錄。 停止

修改:

ARCH ?= arm<空格> 

刪除空格

錯誤2:

/bin/sh: 1: arm-eabi-gcc: not found 導出交叉編譯工具目錄到$PATH環境變量中去

導出交叉編譯工具目錄到$PATH環境變量中去:export PATH=$PATH:/media/M_hM_=M_M_dM__M_6/Download/442/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin

6.編譯成功

7.在模擬器中運行編譯好的內核

export PATH=$PATH:/media/M_hM_=M_M_dM__M_6/Download/442/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/media/M_hM_=M_M_dM__M_6/Download/442/out/target/product/generic

8.在後臺中指定內核文件啓動模擬器

切換到android源碼目錄 運行命令:emulator -kernel kernel/arch/arm/boot/zImage &

錯誤1:


解決:

source build/envsetup.sh

lunch sdk-eng

錯誤2:黑屏

原因:
2.3版本以後的體系架構是用的是armv7了,

解決:將make goldfish_defconfig改成make goldfish_armv7_defconfig


9.結果:




發佈了50 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章