真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

編譯android內核,android 內核開發(fā)

如何編譯android kernel

1.準備工作: (ubuntu1110 32位)

麗水網站建設公司成都創(chuàng)新互聯(lián)公司,麗水網站設計制作,有大型網站制作公司豐富經驗。已為麗水近1000家提供企業(yè)網站建設服務。企業(yè)網站搭建\外貿營銷網站建設要多少錢,請找那個售后服務好的麗水做網站的公司定做!

ubuntu等linuxOS,下載好eclipse,安裝好JDK, 安裝好android的SDK, 在eclipse中成功打開android 手機模擬器即OK。

2.初始化編譯環(huán)境 :

關注該網頁上的“installing required packages”,其中有的軟件包因為版本問題而安裝不上,不用管它,之后遇到錯誤再單獨解決。

3.下載內核源碼:

android 2.3 內核 下載需要等待一段時間。

4.下載交叉編譯器:

該步驟有可能耗費大量時間,依據網速不同,幾個小時到幾天不等,或許可以嘗試git clone 后面的地址只下載prebuilt/linux-x86/toolchain

5.設置參數以及編譯:

$ export ARCH=arm

$ export SUBARCH=arm

$ export CROSS_COMPILE=arm-eabi-

$ cd goldfish // 進入下載的源代碼目錄

$ git checkout commit_from_first_step //這個步驟我沒有做,不知道干嘛用的

$ make goldfish_defconfig

$ make

6.報錯信息:

若有報錯說找不到 (arm-eabi-gcc command not found)等等,嘗試使用 中說到的解決方案即可(即采用另外一個交叉編譯器)。

7.測試:

最后,測試一下剛才編譯的內核:emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImageemulator若系統(tǒng)找不到,可以去android SDK中某文件夾找到,加入系統(tǒng)PATH即可。 -avd后面的參數 myavd即為模擬器的名字,這個我是在eclipse中的模擬器管理中新建的一個模擬器,用那個模擬器的名字即可。 -kernel后面的參數就找到剛才編譯出的內核的路徑。

若啟動模擬器失敗,可嘗試關閉后再啟動。第一次啟動模擬器時可能需要等待比較長的時間,3分鐘到15分鐘不等。

在編譯android內核的時候出現下面的錯誤,是怎么回事?

解決方案:找到工程中Makefile文件,將其中 “-m64" 字符串刪除即可。

原因:gcc 3.4 或者更高版本,已經將其去除了,所以會出現上面的錯誤!

去android源代碼網站找樓主編譯android版本的對應GCC,安裝后重新編譯

如何預編譯 Android 模擬器專用內核

Android源碼編譯之后生成的是ramdisk.img、system.img和userdata.img。而內核源碼編譯完成之后生成的是ZImage。在一般情況下Android源碼是不帶有內核源碼的,但是帶有一個鏡像,這樣在編譯完Android源碼之后就可以模擬器啟動了,如果要更換系統(tǒng)的內核,此時將高版本的內核源碼進行編譯生成ZImage然后替換Android系統(tǒng)的的鏡像。這樣使用模擬器啟動之后就可以查看內核是否已經被刷新。

如何在32位ubuntu11.10 下編譯android 4.0.1源碼和goldfish內核

一準備工作

1安裝javasdk6

(1)從jdk官方網站下載jdk-6u29-linux-i586.bin文件。

(2)執(zhí)行jdk安裝文件

[html] view plaincopy

$chmod a+x jdk-6u29-linux-i586.bin

$jdk-6u29-linux-i586.bin

(3)配置jdk環(huán)境變量

[html] view plaincopy

$sudo vim /etc/profile

[html] view plaincopy

#JAVAEVIRENMENT

exportJAVA_HOME=/usr/lib/java/jdk1.6.0_29

exportJRE_HOME=$JAVA_HOME/jre

exportCLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存后退出編輯,并重啟系統(tǒng)。

2安裝依賴包

[html] view plaincopy

$sudo apt-get install git-core gnupg flex bison gperf build-essential\

zipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libs\

x11proto-core-devlibx11-devlib32readline5-devlib32z-dev\

libgl1-mesa-devg++-multilibmingw32tofrodospython-markdown\

libxml2-utils

3用repo工具下載源碼

(1)初始化repo

[html] view plaincopy

$cd ~

$mkdir bin

$curl;~/bin/repo

$chmod a+x ~/bin/repo

$exportPATH=$PATH:~/bin(導出環(huán)境變量)

(2)下載android最新源碼

[html] view plaincopy

$mkdir android

$cd android

$ repo init -u -bandroid-4.0.1_r1

...(輸入用戶名和郵箱名)

$repo sync -j5

...(此處用5個線程開始下載源碼,下載過程及其漫長,需要耐心等待)

二 編譯源碼

1開始編譯

[html] view plaincopy

$source build/envsetup.sh

includingdevice/samsung/maguro/vendorsetup.sh

includingdevice/samsung/tuna/vendorsetup.sh

includingdevice/ti/panda/vendorsetup.sh

includingsdk/bash_completion/adb.bash

$make-j4(此處用4個線程編譯)

編譯完成后,會看到類似的輸出:

[html] view plaincopy

Targetramdisk:out/target/product/generic/ramdisk.img

Targetuserdatafsimage:out/target/product/generic/userdata.img

Installedfilelist:out/target/product/generic/installed-files.txt

2編譯遇到的問題

編譯錯誤:

[html] view plaincopy

命令行:0:0:錯誤:“_FORTIFY_SOURCE”重定義[-Werror]

built-in:0:0:附注: 這是先前定義的位置

cc1plus:所有的警告都被當作是錯誤

make:*** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o]錯誤 1

原因:

因機器上的gcc版本過高,需替換成4.4.6重新進行編譯。

解決方法:

1)安裝4.4版本的gcc和g++

[html] view plaincopy

$ sudo apt-get install gcc-4.4

$ sudo apt-get install g++-4.4

2)設置gcc版本,使gcc鏈接到gcc-4.4

[html] view plaincopy

$ ls -l /usr/bin/gcc*

lrwxrwxrwx 1 root root 7 2011-11-01 23:56 /usr/bin/gcc - gcc-4.6

-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 /usr/bin/gcc-4.4

-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 /usr/bin/gcc-4.6

$ cd /usr/bin

$ sudo mv gcc gcc.bak

$ sudo ln -s gcc-4.4 gcc

3)設置g++版本,使g++鏈接到g++-4.4

[html] view plaincopy

$ sudo mv g++ g++.bak

$ sudo ln -s g++-4.4 g++

4)設置完畢后,重新進行編譯即可

3從模擬器啟動編譯后的鏡像文件

1)設置環(huán)境變量:

[html] view plaincopy

export PATH=~/android/out/host/linux-x86/bin:$PATH

export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic

其中l(wèi)inux-x86/bin存放模擬器emulator工具,product/generic存在編譯后的鏡像文件。

2)啟動模擬器

[html] view plaincopy

$emulator

emulator:WARNING: system partition size adjusted to match image file (162 MB 66 MB)

啟動后的截圖:

三 編譯androidgoldfish內核

1)進入android4.0.1源碼目錄,下載goldfish內核源碼

[html] view plaincopy

$ mkdir kernel

$ cd kernel

$ git clone

$ cd goldfish

$ git branch -a

* (no branch)

master

remotes/origin/HEAD - origin/master

remotes/origin/android-goldfish-2.6.29

remotes/origin/master

$ git checkout remotes/origin/android-goldfish-2.6.29

2)修改Makefile

[html] view plaincopy

goldfish$ gedit Makefile

修改

[html] view plaincopy

ARCH ?=$(SUBARCH)

CROSS_COMPILE ?=

[html] view plaincopy

ARCH ?=arm

CROSS_COMPILE ?=arm-eabi-

3)導出交叉編譯器目錄為環(huán)境變量

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

4)編譯內核

[html] view plaincopy

goldfish$ make goldfish_armv7_defconfig

goldfish$ make

編譯完成后,可看到類似如下的輸出:

[html] view plaincopy

OBJCOPY arch/arm/boot/zImage

Kernel: arch/arm/boot/zImage is ready

5)從模擬器中啟動內核鏡像

[html] view plaincopy

$emulator -kernel ~/android/kernel/goldfish/arch/arm/boot/zImage

啟動模擬器后,可從Settings-System-AboutPhone中查看內核版本信息。


文章題目:編譯android內核,android 內核開發(fā)
鏈接地址:http://weahome.cn/article/dsdcssg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部