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

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

個人的に仕事も忙しいし、問題時にサポートもする余裕もないので、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ですので、その後は各自で調整をしてください。
苦情、要望等は、受け付けません

「L01FのKKカーネルのビルド方法」への10件のフィードバック

  1. Great! But I don’t understand how you compile a l01f kernel from d802’s source code. Do I miss something? It looks like you compile the d802 kernel except for the root-ramdisk.

  2. ドコモからはもアップデートがなく残念なl01f.自分でアップデートすることしかなく
    大変参考になりました。下記について質問させてください。カスタムカーネルとは具体的はどこからのカーネルでしょうか?

    >カスタムカーネルのソースから引っ張ってくる

コメントする

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)