L01FのKKカーネルのビルド方法 | 文具屋さんネット
Feed

L01FのKKカーネルのビルド方法

Posted on 8月 7th, 2014 in 店長日記 by 店長

仕事が忙しくて、なかなか更新できなくて・・・

個人的に仕事も忙しいし、問題時にサポートもする余裕もないので、L01FのKKカーネルは非公開、非配布としていることはご勘弁を・・・
しかし、L01FのKKカーネルのリクエストが多いので、ビルドの仕方を書いておきます。

ビルドに必要な環境
Linux64bitマシン 32bitは不可 ubuntuとかMintとか・・・実機でも仮想でも
# gcc, gpp, cpp, c++, g++, lzma, lzop, xterm, ia32-libs 適宜インストール

必要なもの
toolchain
https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7 あたりで大丈夫かと

カーネルソース
https://www.lg.com/global/support/opensource/opensourceList?types=ALL&search=d802 から
LG-D802(G2)_Android_KK_D802_Kernel (v20b, v20d)のソースをダウンロード

ramdisk
このあたりから
https://github.com/dorimanx/LG-G2-D802-Ramdisk.git
root-ramdiskがいいかも・・・後でroot再取得しなくてもよくなる

mkbootimg mkbootfs dtbTool
公式のソースには含まれてないのでカスタムカーネルのソースから引っ張ってくる

手順

作業用のフォルダーを作成
/home/hoge/l01f4.4 適当に・・・
ターミナルから

$ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7

で /home/hoge/にarm-eabi-4.7が作成される。

カーネルソースを/home/hoge/l01f4.4/に展開
/home/hoge/l01f4.4/kernel
/home/hoge/l01f4.4/kernel/scriptにmkbootimg mkbootfs dtbToolをコピーしておく。

ramdiskを/home/hoge/l01f4.4/に配置
/home/hoge/l01f4.4/ramdisk

ここからの作業はrootになる必要があります。
ターミナルから

$ su -
#

出力用フォルダーの作成

# cd /home/hoge/l01f4.4/
# mkdir -p output/system/lib/modules
# mkdir -p output/boot

カーネルのビルド

# cd /home/hoge/l01f4.4/kernel
# export PATH=$PATH:tools/lz4demo
# make ARCH=arm CROSS_COMPILE=/home/hoge/arm-eabi-4.7/bin/arm-eabi- g2-dcm-perf_defconfig
# make CROSS_COMPILE=/home/hoge/arm-eabi-4.7/bin/arm-eabi-

クロスコンパイルが始まります。
30分程度かかるかも....
途中エラーを吐くときは適宜対応が必要

クロスコンパイルが終わったらモジュールの作成

# make modules CROSS_COMPILE=/home/hoge/arm-eabi-4.7/bin/arm-eabi-
# make modules_install CROSS_COMPILE=/home/hoge/arm-eabi-4.7/bin/arm-eabi-

/home/hoge/l01f4.4/kernel/arch/arm/boot 以下にzImage(カーネル)が出来る。

ここからboot.imgの作成

dt.imgを作成する。

# ./scripts/dtbTool -s 2048 -o ./arch/arm/boot/dt.img -p ./scripts/dtc/ ./arch/arm/boot/

ramdiskの作成

# ./scripts/mkbootfs ../ramdisk | gzip > ramdisk.gz

これらを作業用フォルダーに移動させる

# cp arch/arm/boot/zImage ../output/boot
# cp arch/arm/boot/dt.img ../output/boot
# mv ramdisk.gz ../output/boot
# find -name '*.ko' -exec cp -av {} ../output/system/lib/modules/ \;

zImage,dt.img,ramdisk.gzを合体させる

kernel # cp scripts/mkbootimg ../output/boot
kernel # cd ../output/boot
boot # base=0x00000000
boot # offset=0x05000000
boot # tags_addr=0x04800000
boot # cmd_line="console=ttyHSL0,115200,n8 androidboot.hardware=g2 user_debug=31 msm_rtb.filter=0x0 mdss_mdp.panel=1:dsi:0:qcom,mdss_dsi_g2_lgd_cmd"
boot # ./mkbootimg --kernel zImage --ramdisk ramdisk.gz --cmdline "$cmd_line" --base $base --offset $offset --tags-addr $tags_addr --pagesize 2048 --dt dt.img -o newboot.img
boot # mv newboot.img ../boot.img

/home/hoge/l01f4.4/output にboot.imgが出来上がる。
/output/system/lib/modules/以下のモジュール群はROMの中の/system/lib/modules/にコピーする。

非公式のkernelですので、その後は各自で調整をしてください。
苦情、要望等は、受け付けません

 
«