當前位置:首頁 » 編程軟體 » 編譯安卓通用內核

編譯安卓通用內核

發布時間: 2023-08-01 08:05:14

⑴ Android內核編譯時如何獲得.config文件

得到config之後,直接復制到你下載來的內核文件夾kernel下,更名為.config,打開終端,進入此目錄(假設你放在里你的home下,即~/kernel)運行make ARCH=arm menuconfig(ARCH=arm表示編譯的是arm平台的)

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

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

⑶ 如何編譯一個可以燒寫進手機中的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

⑷ 編譯內核時,出現的問題,使用的是安卓原生態編譯,只編譯kernel

刪除kernel-3.10\include下的config文件夾就可以解決。

⑸ android 怎樣編譯kernel 命令 make

方法如下:
在Linux的環境下:
建立目錄:

mkdir ~/android-kernel cd android-kernel

下載源代碼, 大概有280MB, 慢慢等哈~~~ (當然你要先安裝git) git clone git://git.linuxtogo.org/home/groups/mobile-linux/kernel.git
類似的屏幕信息:
Initialized empty Git repository in /home/user/android-kernel/kernel/.git/ remote: Counting objects: 908251, done.
remote: Compressing objects: 100% (153970/153970), done.
remote: Total 908251 (delta 755115), reused 906063 (delta 753016) Receiving objects: 100% (908251/908251), 281.86 MiB | 292 KiB/s, done. Resolving deltas: 100% (755115/755115), done. Checking out files: 100% (22584/22584), done.
然後去到htc-msm branch: cd kernel
git checkout -b htc-msm origin/htc-msm
屏幕信息:
Branch htc-msm set up to track remote branch refs/remotes/origin/htc-msm. Switched to a new branch "htc-msm"

下載ARM的toolchain, 大概64MB左右, 下到~/android-kernel: 下

:
http://www.codesourcery.com/gnu_toolchains/arm/portal/package2549/public/arm-none-linux-gnueabi/arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

cd ~/android-kernel
tar xjf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
編譯kernel

准備預設的Kaiser 配置文件.config
cd ~/android-kernel/kernel

make htckaiser_defconfig ARCH=arm
然後編譯zImage:
export PATH=~/android-kernel/arm-2008q1/bin:$PATH
make zImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
編譯好的在: ~/android-kernel/kernel/arch/arm/boot/zImage

如果你的機器是多核的, 可以編譯的時候用-j <cores/cpus_number>來加速:
比如, 雙核的可以:
make -j 2 zImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi
滿意請採納謝謝

⑹ 編譯安卓內核錯誤新手

c++和c有一定的相通,先學哪本都沒什麼關系的,沒有那種要先學哪本再學哪本的順序。如果只是為了學c++,你就可以直接開始看c++的書了。c++Primer算是一本必讀之書,主要用作基礎,就相當一本詞典。學習c++主要是要堅持,一開始看,都是不了解的,肯定看不懂。但是只要堅持,看到後面的內容,就會隱隱感到似乎明白了一些前面不懂的,然後再堅持往復看,就能夠逐漸看懂了。書不用多買,先買一本,把它看明白就可以了。一開始,建議買中文版。有一定的基礎之後就開始實踐編程練習,由簡開始。先編一些書後面的簡單習題。有一定的知識以後就可以看看面向對象之類的編程了。

⑺ 安卓編譯內核生成的是o文件嗎,然後再打包進boot.img

.o是中間文件,.ko是內核模塊
kernel是一個可執行的bzImage,簡單來講就是由.o鏈接生成的目標文件,不是像你說的那樣n多.o
.ko可以編譯進內核,也可以不編譯進內核,作為插件的形式存在
安裝內核的意思就是把內核到啟動分區,然後安裝內核模塊,以及一些其他的東西。。
每次開機直接把內核裝載到內存裡面去不就行了嗎,這也得先安裝才行不是。

熱點內容
源碼地帶 發布:2025-02-05 18:46:37 瀏覽:613
我的世界伺服器怎麼騎別人的頭 發布:2025-02-05 18:46:32 瀏覽:89
怎麼卸載ftp賬號 發布:2025-02-05 18:41:52 瀏覽:62
SQL指定的服務並未以 發布:2025-02-05 18:40:09 瀏覽:972
電腦連接不了伺服器什麼意思 發布:2025-02-05 18:34:46 瀏覽:355
2015版dw怎麼配置站點 發布:2025-02-05 18:33:37 瀏覽:429
php數組中重復值 發布:2025-02-05 18:16:59 瀏覽:366
分布式存儲優點 發布:2025-02-05 18:15:29 瀏覽:644
徵婚交友源碼 發布:2025-02-05 17:45:24 瀏覽:918
3nvm伺服器怎麼搭建 發布:2025-02-05 17:43:52 瀏覽:661