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ですので、その後は各自で調整をしてください。
苦情、要望等は、受け付けません
Thank you very much, admin.
Will follow your guide and see what happen. Tks again
can you share kernel for us。thanks a lot!!!! you are famous in china。
share this pleeeeease,you are a good man
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.
ドコモからはもアップデートがなく残念なl01f.自分でアップデートすることしかなく
大変参考になりました。下記について質問させてください。カスタムカーネルとは具体的はどこからのカーネルでしょうか?
>カスタムカーネルのソースから引っ張ってくる
dinさん
D802用では、Dorimanx-kernelが有名どこです。
ソースは https://github.com/dorimanx/Dorimanx-LG-G2-D802-Kernel
にあります。
thank you
/home/hoge/l01f4.4/kernel/arch/arm/boot 以下にzImage(カーネル)が出来る。
I can’t find zImage
More, I do not know that it is not specifically written the contents
Somewhere, do not you there is a miss in the procedure?
Can you make a CAF LOLLIPOP with l01f? thank you.