1: 2010-08-30 (月) 05:55:18 yuji ソース
Line 1: Line 1:
 +*kernelのコンパイル [#n214438c]
 +Androidのkernelをソースからコンパイルしてみる。
 +**Android repoの設定~ [#obf27ee9]
 +-自分のホームにbinディレクトリが必要~
 + mkdir -p ~/bin
 +-androidのgitリポジトリを設定~
 + curl http://android.git.kernel.org/repo > ~/bin/repo
 + chmod a+x ~/bin/repo
 +ログインし直すと,$PATHにbinが設定されているのを確認する。~
 +
 +**AndroidのソースコードをDownloadする [#ga97b195]
 +-ワークディレクトリを作る~ mkdir -p ~/android/system
 + cd ~/android/system
 +-ソースをダウンロードする(CyanogenModのソースにしてみる)~
 + repo init -u git://github.com/CyanogenMod/android.git -b froyo
 + repo sync
 +-コンパイラ環境を設定する~
 + export CCOMPILER=${HOME}/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
 +
 +**実際にkernelをコンパイル [#d87a30ed]
 +-ワークディレクトリを作る~
 + mkdir -p ~/android/kernel
 + cd ~/android/kernel
 +-カーネルのソースコードをgitでDownloadする~
 + git clone git://github.com/CyanogenMod/cm-kernel.git
 +-その後,kernel .configをHT-03Aから持ってくるか,menuconfigなんかで作成する。~
 +--持ってくる場合~
 + cd cm-kernel
 + adb pull /proc/config.gz /home/user_name/androkern/cm-kernel/config.gz
 + gunzip config.gz && mv config .config
 +--configし直す場合~
 + make ARCH=arm CROSS_COMPILE=$CCOMPILER oldconfig
 + もしくは,
 + make ARCH=arm CROSS_COMPILE=$CCOMPILER menuconfig
 +とかして,.configを作成する。~
 +-kernelをコンパイルする~
 + make ARCH=arm CROSS_COMPILE=$CCOMPILER
 +結構時間がかかる。~
 +kernelは,~/android/kernel/cm-kernel/arch/arm/boot/zImage に保存される。~
 +
 +*boot.imgの作成 [#m7e8073d]
 +**filesystem [#wb787241]
 + cat /proc/mtd
 + dev:    size  erasesize  name
 + mtd0: 00040000 00020000 "misc"
 + mtd1: 00500000 00020000 "recovery"
 + mtd2: 00280000 00020000 "boot"
 + mtd3: 05a00000 00020000 "system"
 + mtd4: 05000000 00020000 "cache"
 + mtd5: 127c0000 00020000 "userdata"
 +mtd3=/system,mtd4=cache,mtd5=/dataにそれぞれmountされる。~
 +mtd2はboot時使われるファイルで,mtd1はリカバリーモードで使われる。
 +**bootイメージ [#i1df0efb]
 +bootイメージは,linuxのブート時に使用されていて,
 ++2kのAndroid用ヘッダー
 ++gzip圧縮されたkernel
 ++システムを初期化するためなどに使用される,基本的なコアファイルを入れてあるramdisk
 ++2ndステージローダー(オプション)
 +がbootイメージに入っている。~
 +kernelをコンパイルした後,kernelファイルとこれらのファイルをマージしてboot.imgを作成する。~
 +これをmtd2にflashすると,bootloaderがkernelを起動してくれる。


トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 613, today: 1, yesterday: 0