スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SH-12C ソースからのカーネルビルド

カーネルをソースからビルドして遊んでみたので、環境と手順等を書いてみる。

ソースからビルド出来れば、後々ためになりそうなのでやってみただけなので、「カスタムカーネルあるのに何を今さら」と言う意見はご勘弁をw

やってみたことは、nandロックやMiyabi LSMとかを無効にしたり、oobパッチを適用してみたり。

ただ、oobパッチは動作確認はしていない(怖くて出来ないw)。


1,環境を整える


①まずはLinux環境で作業するので、Ubuntuが起動できるPCを用意。
VMwaraとかでUbuntu起動でもOK
以下、全てUbuntu上での作業となる。

②JDK、Andoid SDKをダウンロード、インストール
これはWindowsでも同じ事をやっていると思うので、DLやインスコ方法とかはWEB参照で。。。(手抜き)
その他、USBドライバとかもインストールし、adb接続環境を整える。

③Android NDKをダウンロード、インストール
Android NDKのバージョンは、r5cがいいみたい。
これのインストールとかもWEB参照で。。。(ほんとに手抜きw)

④sudo apt-get install libncurses5-dev
で良かったと思う。。。^^;
これを端末で記入して、menuconfigを使えるようにする。

※各種PATHを通しておくのを忘れずに。.bashrcにexport~って記入していけばOK。ここらへんもWEBでやりかたすぐ見つかるはず。
※かなり適当なので、何か足りないものとかあるかもしれないけど、悪しからず。。。

WindowsにUbunuでadb環境にて、詳しく書いてみた。


2,ソースのダウンロード

Sharp deveroperから、カーネルソースをダウンロードする。
https://sh-dev.sharp.co.jp/android/modules/oss/index.php?/sh12c
上のリンクから、”SH-12C (Build number 01.01.03~) オープンソースソフトウェア”の、kernel.tar.gzをダウンロード。

ついでに、system_wlan_broadcom.tar.gzもダウンロードしておく。
(これは、後で出てくるmake中にエラーが出たのでDLした)

3,ソースを展開、必要な.configを用意

①とりあえず、DLしkernel.tar.gzを適当なフォルダに解凍する。
自分は、/home/android/sh12c_kernel というフォルダを作り展開した。

②実機(SH-12C)から、configファイルを持ってくる。
端末より(Ubuntuの端末ね。Windowsで言う所のコマンドプロンプトみたいなもの)

cd ~/android/sh12c_kernel/kernel
adb pull /proc/config.gz .
gunzip config.gz
mv config .config


これで、.configが必要な場所に置かれた。

make menuconfig


と打てば、設定画面が現れ、.configフィアルを設定できる。
セキュリティー切ったり出来るという事。
先日UPされていたカスタムカーネルのreadmeを見ると参考になる。

③system_wlan_broadcom.tar.gzも展開する。
展開場所は、/sh12c_kernel直下に。

ちょっとディレクトリ構成がわかりにくいので書いておく。
kernel.tar.gzを展開すると、kernelってフォルダが出てきて、その中にたくさんのファイルが入っている。
system_wlan_broadcom.tar.gzを展開すると、systemってフォルダが出てくる。
そのkernelフォルダとsystemフォルダを、同じ階層に置いておく。
なので、sh12c_kernelフォルダを開くと、kernelフォルダと、systemフォルダがあるってこと。
そして、そのkernelフォルダの中には、.configが入っているはず(②で入ってるはず)

④(下のmake途中でエラーがでたので)/kernel/drivers/sharp/shmds/mpu3050に入っている、mlsl.hmlos.hと、log.hmltypes.h/kernel/include フォルダにコピーしておく。
これは、全く正しいのか間違っているのかはわからないけど、とりあえずエラー回避にはなった。
パスが変なことになってるのかな?
まあ、とりあえずこれで対処できたのでよしとするw


4,カーネルのビルド

環境とファイルが整ったので、ビルドしていく。
Ubuntu端末より、

export ARCH=arm
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:~/android/android-ndk-r5c/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/


これの最後のPATHを通してるのは、.bashrcに記述していたら打つ必要は無いけど。。。
あ、今気付いたけど、最後のPATHはAndroid NDKをホームにandroidって名前のフォルダを作りそこにインストールした場合のパス。。。
そしたら、

make


と続けて打てばビルドが始まる。

10分程度でビルドも終わり、/kernel/arch/arm/bootフォルダの中に、Imageと言うファイルが出来上がっている。


5,boot.imgを構築

先程できたImageと言うファイルは、カーネルイメージ。
なので、mkbootimgして、ubinizeすれば使えるboot.imgが出来上がると言う事。

ramdiskのcpioとかは、別途自分で用意する。
元々のboot.imgをばらして、そのramdiskを色々いじったりすれば簡単だと思う。



いつもそうなのだけど、書き始めるときはもっと詳しく書いていこうと思っているのだけど、途中で(と言うか割と早い段階で)めんどくさくなって手抜きになってしまうw

今回は超手抜きになってしまったな~。。。^^;

次はzramの移植の方法でも勉強したいって思ってるんだけど。。。むずかしそw
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

tozionsdoor

Author:tozionsdoor
ただ書くだけ。スクショとか取るの面倒。貼るのも面倒w

検索フォーム
FC2カウンター
最新記事 5件
最新コメント
月別アーカイブ
カテゴリ
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。