2015年12月13日日曜日

[XPERIA Z1f (SO-02f)/Z1C(D5503)]14.6.A.1.236 CPUガバナとIOスケジューラモジュール

初めてcpufreq_smartassH3ビルドできたので・・・。
Linux初心者が適当にやってるので、間違った表現があればご容赦くださいf(^^;;;
(ちゃんと効果があるかわからないので今週確認してみます)

□1220追記



























機能しているみたい
------------------------------------------------------------------
□目的は、cpufreqとioschedをmakeすることだけです(笑)

色々、先人方のサイトを参考に勉強してみましたが、基本は下記になるみたい。
How to rebuild kernels for flagship Xperia devices

※ビルドするまで(自分環境に置き換える)
 備忘録 -Z1f kernel modules-ななしさんの後追いですけど。

□jdk1.8.0_66(最新版)とandroid-sdk-linuxは自力で入れておく。
 (使わないかも…)
 インストール終わったら、設定しておく。

設定のみ
$ nano ~/.bashrc

JAVA_HOME=/usr/local/java/jdk1.8.0_66
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

export ANDROID_HOME=${HOME}/android-sdk-linux
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

# Cross Compiler
export CROSS_HOME=/android
export CC46=$CROSS_HOME/arm-eabi-4.6/bin/arm-eabi-

□Open source archive for 14.6.A.1.236持ってくる
ダウンロードして、普通にGUI操作でざっくりと展開、適当なフォルダに置く。
使用するのは、kernelフォルダのみ。
今回は、
/home/(ユーザー名)/14.6.A.1.236
に置いた。

□Cross Compiler持ってくる
(名称は適当にして、フォルダ作成してから、移動)
$ cd /
$ mkdir android
$ cd android
$ su    (スーパーユーザーになっておく)
# git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/
あとは勝手に、DLと解凍してくれる。
/android/arm-eabi-4.6フォルダ
できてる。

□module関係を持ってくる
/home/(ユーザー名)/module
フォルダ作成して、ソースファイルからcpufreqとioschedフォルダを入れる。

□cpufreqとioschedフォルダ内にある、Makefileの一部を自分環境に合わせる
/home/(ユーザー名)/module/cpufreq/Makefile
KERNEL_DIR=/opt/9.2.A.0.295/kernel
KERNEL_DIR=/home/(ユーザー名)/14.6.A.1.236/kernel
に修正。

/home/(ユーザー名)/module/iosched/Makefile

CROSS_COMPILE=/opt/arm-2013.11/bin/arm-none-linux-gnueabi-
CROSS_COMPILE=/android/arm-eabi-4.6/bin/arm-eabi-
に修正。

□/module/cpufreqフォルダ内の、Makefileにビルドする内容を追記する
obj-m := symsearch.o cpufreq_badass.o cpufreq_dancedance.o cpufreq_hotplugx.o cpufreq_lionheart.o cpufreq_pegasusq.o cpufreq_smartmax.o cpufreq_wheatley.o cpufreq_intellidemand.o cpufreq_smartass2.c cpufreq_smartassH3.c

これだと、検討したいときに面倒なので下記に変えてます(内容は同じみたい)

#obj-m += symsearch.o
#obj-m += cpufreq_badass.o
#obj-m += cpufreq_dancedance.o
#obj-m += cpufreq_hotplugx.o
#obj-m += cpufreq_lionheart.o
#obj-m += cpufreq_pegasusq.o
#obj-m += cpufreq_smartmax.o
#obj-m += cpufreq_wheatley.o
#obj-m += cpufreq_intellidemand.o
obj-m += cpufreq_smartass2.o
#obj-m += cpufreq_smartassH3.o

ビルドしたいときは#を取るだけ

□kernelのビルド





















# cd /home/(ユーザー名)/14.6.A.1.236/kernel
# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make rhine_amami_row_defconfig

□defconfigインポート後にmenuconfig
# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make oldconfig
# make menuconfig
(ここからGUIになる)
General setup → Automatically append version information to the version stringをN
右キーから exit → exit → Y で完了
※どこまで実施するのかまでは、わかっていませんけどねf(^^;;;

















□とりあえずmake
# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make
# make -j
(この辺が怪しいですけど…できたので良しとしました)

□config編集とmake modules
# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make menuconfig
(ここからGUIになる)
File systems → DOS/FAT/NT File systems → NTFS File system supportにM
NTFS debugging supportにY
NTFS write supportにY
File systems → Native language support → Japanese charsets(Shift-JIS,EUC-JP)にM

# export ARCH=arm
# export CROSS_COMPILE=$CC46
# make modules
※これもどこまで実施するのかまでは、わかっていませんけどねf(^^;;;






















□最後にモジュールmakeする
# cd /home/(ユーザー名)/module/cpufreq
# make

※make終わった、****.koファイルを集める

# cd /home/(ユーザー名)/module/iosched
# make

※make終わった、****.koファイルを集める

ありがたく頂戴した、.zip

.zip\system\lib\modules\custom_modules内を入れ替える

これで一応完成。

□cpufreq_smartassH3ビルドについて




















ニッチで何が悪い
9)モジュールのソース・バイナリ提供
ソースコードを利用させていただきました。ありがとうございます。
(yoshi818/SO-02E-modules/ cpufreq / cpufreq_smartassH3.c)
そのままビルドできなかったので、エラーを元に、cpufreq_smartass2と比較しながら少し追記。
基本ソースコードは、154氏(赤星氏)が作成したものを利用させていただきました。
The Middle of Nowhere / 辺境の憩い カーネルモジュール
(cpufreq_smartass2どこを参照したのか分からなくなったので、あとで調べます)

とりあえずできたものとソース。使用に際しては自己責任にて。
(余計なものもあるかも…)

0 件のコメント:

コメントを投稿