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ですので、その後は各自で調整をしてください。
苦情、要望等は、受け付けません

 


トラックバック URL

コメント:10個
  1. xdamemberより、 2014/8/8 金曜日:

    Thank you very much, admin.
    Will follow your guide and see what happen. Tks again

  2. vegetable chinaより、 2014/8/9 土曜日:

    can you share kernel for us。thanks a lot!!!! you are famous in china。

  3. zedddより、 2014/8/9 土曜日:

    share this pleeeeease,you are a good man

  4. dvorakより、 2014/8/10 日曜日:

    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.

  5. dinより、 2014/10/28 火曜日:

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

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

  6. 店長より、 2014/10/28 火曜日:

    dinさん

    D802用では、Dorimanx-kernelが有名どこです。
    ソースは https://github.com/dorimanx/Dorimanx-LG-G2-D802-Kernel
    にあります。

  7. cloudyfaより、 2014/11/5 水曜日:

    thank you

  8. Binhより、 2015/3/1 日曜日:

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

  9. 店長より、 2015/3/2 月曜日:

    More, I do not know that it is not specifically written the contents

    Somewhere, do not you there is a miss in the procedure?

  10. goodより、 2015/6/4 木曜日:

    Can you make a CAF LOLLIPOP with l01f? thank you.

コメントをどうぞ

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