亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Google Android操作系統內核編譯圖文教程

系統 2293 0

和標準的Linux開發流程一樣,Android平臺開發的一個很重要的基礎工作就是對其內核的編譯和移植。本文結合Android的開發文檔以及本人的實踐經驗,簡單介紹了Android內核的編譯過程,希望有助于對內核移植感興趣的開發人員。

  Android作為Google公司推出的一款手機開發平臺,其本身是基于linux內核的。Google提供的內核源代碼中除了linux部 分外,有很大一部分是與虛擬處理器Qemu和模擬硬件平臺Goldfish相關的。所以如果想將Android移植到實際的硬件平臺上需要將這部分代碼剝 離出來。當然這不是這篇文章的重點,我們現在的目的是要編譯出一個可以在模擬器上運行的系統內核,那么,現在就開始我們的工作吧!?

工作環境及所需軟件包

  系統環境:Redhat?Linux?9.0

  交叉編譯器:GNU?Toolchain?for?ARM?Processors?下載地址: http://www.codesourcery.com/gnu_toolchains/arm/download.html
  其中第一項選擇ARM?EABI或ARM?GNU/Linux,第二項選擇IA32?GNU/Linux即可。


此主題相關圖片如下:
按此在新窗口瀏覽圖片

  Android內核源代碼:linux-2.6.23-android-m5-rc14.tar.gz?下載地址: http://code.google.com/p/android/downloads/list
  注意該內核版本要與你選用的模擬器版本盡量一致。


此主題相關圖片如下:
按此在新窗口瀏覽圖片

  Android?SDK?下載地址: http://code.google.com/android/download_list.html


此主題相關圖片如下:
按此在新窗口瀏覽圖片

1.搭建交叉編譯環境

  1)?安裝Android?SDK:?將android-sdk_m5-rc14_linux-x86.zip解壓縮到適當路徑下即可使用。本文將其釋放至/usr/local/android_sdk_linux路徑下,并將其tools路徑添加到PATH中:

  $?export?PATH=$PATH:/usr/local/android_sdk_linux/tools

  2)?安裝交叉編譯器:將arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2?解壓縮至/usr/local/arm-2007q3目錄下,并將其bin路徑添加到PATH中:

  $?export?PATH=$PATH:/usr/local/arm-2007q3/bin


此主題相關圖片如下:

  3)?解壓縮內核源代碼:將linux-2.6.23-android-m5-rc14.tar.gz解壓縮,得到kernel文件夾,本文中將其放置在/Android目錄下。

2.獲取內核編譯配置文件

  交叉編譯環境搭建好后需要得到android的內核編譯參數的配置文件,該文件需要從android?sdk?中的模擬器中得到。啟動android模擬器,然后通過adb得到模擬器中提供的內核配置文件:?

  $emulator?&?
  $adb?pull?/proc/config.gz?

  這時候adb工具會連接模擬器,并從它里面下載一個叫做config.gz的文件到你的當前目錄下。將其移動至kernel目錄,解壓該文件得 到config,將其重命名為.config,這樣就可以跳過make?config而直接得到Makefile所需要的內核配置文件。

  $?gunzip?config.gz
  $?mv?config?.config


此主題相關圖片如下:

3.修改Makefile

  首先修改第187行,將CROSS_COMPILE值改為arm-none-linux-gnueabi-,這是我們安裝的交叉編譯工具鏈的前綴,修改此處意在告訴make在編譯的時候要使用該工具鏈。


此主題相關圖片如下:

  然后修改第519、520行,將build?id?值注釋掉,因為目前版本的android內核不支持該選項。


此主題相關圖片如下:

4.開始編譯

  在kernel目錄下執行make:?

  $?make

  除個別警告外編譯過程一切順利,最終在/kernel/arch/arm/boot目錄下面生成一個zImage,即為編譯好的內核鏡像了。


此主題相關圖片如下:
按此在新窗口瀏覽圖片


此主題相關圖片如下:

5.運行該鏡像

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

  最終效果如圖所示。


此主題相關圖片如下:
按此在新窗口瀏覽圖片

?

?

?

Google Android操作系統內核編譯圖文教程


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎影视免费 | 国产香蕉免费精品视频 | 亚洲精品国产高清不卡在线 | 伦理一区 | 夜夜夜夜夜操 | 久久久影院| 婷婷在线综合 | 成年女人免费观看视频 | 亚洲日本中文 | 99在线精品国产不卡在线观看 | 成人影院www在线观看 | 亚洲一区成人 | 久久网国产 | 波多野结衣亚洲一区二区三区 | 欧美成综合网网站 | 欧美一区二区三区综合色视频 | 在线观看麻豆精品国产不卡 | 四虎影视永久在线精品免费 | 青青青免费视频精品99 | 51国产午夜精品免费视频 | 99热久久这里只有精品6 | 国产一区二区三区久久精品小说 | 日本一级网站 | 香蕉九九| 成人免费大片a毛片 | 国产一级一国产一级毛片 | 黄页网址在线免费观看 | 日日碰夜夜| 5060网一级毛片免费观看 | 欧美人与动人物a级网站 | 伊人色视频 | 精品亚洲一区二区 | 99国产精品2018视频全部 | 伊人365| 国产日韩一区二区三区在线播放 | 老子影院午夜伦手机不卡无 | 真人特级毛片免费视频 | 四虎影院观看视频 | 亚洲毛片 | 一级片播放 | 精品免费在线视频 |