安卓boot編譯
『壹』 安卓編譯內核生成的是o文件嗎,然後再打包進boot.img
.o是中間文件,.ko是內核模塊
kernel是一個可執行的bzImage,簡單來講就是由.o鏈接生成的目標文件,不是像你說的那樣n多.o
.ko可以編譯進內核,也可以不編譯進內核,作為插件的形式存在
安裝內核的意思就是把內核到啟動分區,然後安裝內核模塊,以及一些其他的東西。。
每次開機直接把內核裝載到內存裡面去不就行了嗎,這也得先安裝才行不是。
『貳』 整體編譯Android系統,大家用了多少時間
我自己實際編譯ICS4.0.4源碼情況:acer台式機,3.2Ghz cpu,4核,8GB/1600hz內存,整體編譯(含u-boot、kernel、boot.img和system.img)需要1小時10分鍾。編譯時,使用make -j8(因為硬體cpu是4線程的,故使用2倍線程數)。之後的增量編譯,一般需要5~10分鍾即可。
『叄』 安卓手機bootrom是什麼意思
BOOTROM BOOTROM插座也就是常說的無盤啟動ROM介面,其是用來通過遠程啟動服務構造無盤工作站的。遠程啟動服務(Remoteboot,通常也叫 BOOTROM插槽
RPL)使通過使用伺服器硬碟上的軟體來代替工作站硬碟引導一台網路上的工作站成為可能。網卡上必須裝有一個RPL(Remote Program Load遠程初始程序載入)ROM晶元才能實現無盤啟動,每一種RPL ROM晶元都是為一類特定的網路介面卡而製作的,它們之間不能互換。帶有RPL的網路介面卡發出引導記錄請求的廣播(broadcasts),伺服器自動的建立一個連接來響應它,並載入MS-DOS啟動文件到工作站的內存中。 此外,在BOOTROM插槽中心一般還有一顆93C46、93LC46或93c56的EEPROM晶元(93C56是128*16bit的EEPROM,而93C46是64*16bit的EEPROM),它相當於網卡的BIOS,裡面記錄了網卡晶元的供應商ID、子系 帶有BOOTROM插槽的網卡
統供應商ID、網卡的MAC地址、網卡的一些配置,如匯流排上PHY的地址,BOOTROM的容量,是否啟用BOOTROM引導系統等內容。主板板載網卡的EEPROM信息一般集成在主板BIOS中。 在VxWorks嵌入式開發中,也會有BootRom,這里的BootRom是VxWorks操作系統集成的啟動代碼,在Tomado集成開發環境的Build菜單中可以直接編譯BootRom,它的功能和U-boot類似,都是Bootloader程序。只是BootRom是由VxWorks提供的一個bootloader程序,通過它可以和Tomado集成的一些工具進行VxWorks內核的下載和調試工作。 通常,BootRom軟體有以下功能: (1)通過串口下載操作系統映像; (2)通過串口升級自身映像; (3)通過串口下載系統配置文件、系統信息文件; (4)載入操作系統映像,使其正常啟動; (5)其他的輔助功能,如地址內容查看功能、地址內容修改功能和bootrom菜單顯示信息控制功能。 在VxWorks嵌入式開發中. Bootrom和Boot image的區別,Boot image和VxWorks image的聯系和區別bootrom 是指on-chip bootrom,在CPU晶元內部,內嵌有小的boot程序(bootloader),類似於PC機主板上的BIOS的存儲區域。和boot image不是一回事。VxWorks文檔中的bootrom區是指boot image存放的位置。
擴展閱讀:
1
BootLoader
2
U-boot
開放分類:
計算機,網卡
『肆』 如何編譯一個可以燒寫進手機中的ROM,Android安卓開發者
首先.還是跟其它文章講的一樣.先下載ANDORID的源碼.在下源碼之前.請看下面第一步
----------
增加代碼,下真機配置
1
vim .repo/local_manifest.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-2.6.29"/>
<project path="hardware/htc/dream" name="platform/hardware/htc/dream" revision="master"/>
</manifest>
增加上面這段代碼,為一個配置.告訴伺服器.我們下的代碼.是要裝進真機的.
(就為了多下載一個KERNEL下來。。還有下載DREAM的真機配置參數..)
小哈在這里折騰了很久.很久..非常久..回憶起來內牛滿面
-----
下相關的代碼
2.
repo sync
-----
3.
vim env_rc
加入:
export EMU=/home/coconut/cupcake/out/host/linux-x86/bin
export ARCH=arm
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:/home/coconut/cupcake/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin:${EMU}
source env_rc
4.
編譯內核及無線網路驅動
$ cd $ANDROID/kernel
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- msm_defconfig # 設定默認的msm配置
#編譯內核
make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
#編譯無線網路驅動
cd $ANDROID/system/wlan/ti/sta_dk_4_0_4_32
make ARCH=arm CROSS_COMPILE=$ANDROID/prebuilt/linux-86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- KERNEL_DIR=$ANDROID/kernel
//內核拷到目錄下
$ cp $ANDROID/kernel/arch/arm/boot/zImage $ANDROID/vendor/htc/dream-open/kernel
$ cp $ANDROID/system/wlan/ti/sta_dk_4_0_4_32/wlan.ko $ANDROID/vendor/htc/dream-open/wlan.ko
5.
在HTC網站(developer.htc.com/adp.html)
下載名為signed-dream_devphone_userdebug-ota-14721.zip的包,並把它放在$ANDROID目錄下
$ cd $ANDROID
$ source build/envsetup.sh
$ lunch aosp_dream_us-eng # 指明機型
這樣編譯出來.就會在OUT下出來一個DREAM_OPEN的目錄.裡面就有相關的鏡像文件了.
$ cd vendor/htc/dream-open
$ ./unzip-files.sh # 解壓htc相關驅動
$ cd $ANDROID
$ vi buildspec.mk # 新建配置文件
----
Vim htc_dream.mk
vim /oracle/android/src/vendor/htc/dream-open/htc_dream.mk
在頭部增加
PRODUCT_PACKAGES := \
Calculator \
Email \
ImProvider \
SdkSetup \
VoiceDialer
完成。
回到根目錄
cd /oracle/android/src
vim buildspec.mk
加入( 2010.7.7 不需要加入):
#TARGET_PRODUCT:=htc_dream
#TARGET_PREBUILT_KERNEL:=kernel/arch/arm/boot/zImage
增加:
CUSTOM_LOCALES:=zh_CN
然後:
其中增加環境:
ubuntu 8.10 , sudo apt-get libelf-dev
make clean
// 保證PC有 1280 內存, 加上 1000 SWAP空間..虛擬機也是如此.
然後開始編譯 BOOT.IMG SYSTEM.IMG USERDATA.IMG:
make -j2
接下來
mmm -B $ANDROID/packages/apps/Luancher/ snod
cd out/target/proct/dream-open/
//先測試:
emulator -system . -kernel ~/cupcake/prebuilt/android-arm/kernel/kernel-qemu -data userdata.img
因為出來了BOOT.IMG.這個是真機的..所以不能用BOOT做為內核.要用模擬器來做內核.
//然後開始燒機
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot reboot
『伍』 如何編譯boot和android
1. 執行:apt-get install mingw32安裝了linux-windows交叉編譯環境mingwin 2. 執行:. build/envsetup.sh 3. 執行choosecombo,選擇各個參數 這兩步設置了一些編譯參數和環境變數,按照你正常編譯Android的設置即可。 4. 執行:make USE_MINGW=y adb 5. 執行:make USE_MINGW=y fastboot 最後到out/host/windows-x86/bin目錄下就能找到你剛剛編譯的東西了。
