また、11.3.A.1.39への公式?アップデートも来ている。※追記XDAではFW1.39よりもFW2.1が最新だと、いうことをおっしゃる方(実際にいじっていない人だと思います)がいるようですが、FW.2.1のbuild.propからSUS経由でアップデート出来ているので、、、、。ただし実際にSonyWebサイトで公開されている最新のFWは確かにFW2.1なので、試験的なアップデートなのかもしれません。
とりあえず早速RelockしてUpdate。
※追記2月15日 長期間使用しましたが、battery drainはさほど改善していないようです。
build.propは"1271-1644 Turkey"。もしかすると"1271-1644 Turkey"以外のdiviceではまだupdateされないかもしれない。Turkey_build.prop.zip(install from CWMcovery or TWRP)
2013年11月に無理矢理、BuildしたCWMrecoveryとTWRPを入れたboot.imgもありが、sonyが公開してくれたソースをもとに、OverClock(1.3GHz)と、CPUGovernorにSmartassV2の追加も併せて改めてKernelをBuildしてみる。TWRP,CWMrecovery(by XDA hsr0)入り。
Build手順等(色々端折る)
・参考サイト等
XDA hsr0様 ソースを公開してくれいていましたのでそちらを参考にさせていただきました。
この場をお借りいたしまして、感謝申し上げます。Thanks!
端末弄りに関しましては、自己責任が前提条件
環境とファイル群
- ubuntu12.04 x64
- android SDK
- 11.3.A.1.39.ftf(1271-1644 1/28)をFlashtoolでFlash or SUSでupdate
- gcc 4.6 を使用
- FW 11.3.A.1.39のsourceをSonyMobileさんから
- 他色々
- config.gzを端末からcat /proc/config.gzで抜いて展開しておく(configが展開される)
ソース展開とconfigのペースト
SourceをSonyからDLしてお好みのディレクトリに置き同ディレクトリにcd。
お好みのディレクトリは、とりあえずOCにしておく。
$ cd oc
oc$ tar -xf 11.3.A.1.39.tar.bz2
oc$ tar -xf 11.3.A.1.39.tar.bz2
で展開されて同ディレクトリにkernelとplatformができる
ソースの中(kernel/arch/arm/config/msm7627a-perf_defconfig)にもconfigはありますが、今回は端末から抜いたものを使用する。
端末から抜いてきたconfigをkernelとplatformがあるディレクトリにコピー。
コピーしたconfigにSmartassV2の記述を追記する。
ONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y ←これを削除
CONFIG_CPU_FREQ_DEFAULT_GOV_SMARTASS2=y ←これを追記
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_SMARTASS2=y ←これを追記
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
編集後にkernel内にペーストするCONFIG_CPU_FREQ_DEFAULT_GOV_SMARTASS2=y ←これを追記
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_SMARTASS2=y ←これを追記
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
oc$ cp config ./kernel/.config ←.ファイルなので隠れている
configをコピーしたらkernelディレクトリにcdしておく
oc$ cd kernel
oc/kernel$
oc/kernel$
OC用のソース等をhsr0さんからお借りしてsonyソースにペースト
・コンパイル時のエラー回避のためmakefileの編集
KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
else
KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,) $(call cc-disable-warning,implicit-function-declaration,) $(call cc-disable-warning,strict-prototypes,) $(call cc-disable-warning,unused-function,) $(call cc-disable-warning,unused-variable,)
上記のように編集else
KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,) $(call cc-disable-warning,implicit-function-declaration,) $(call cc-disable-warning,strict-prototypes,) $(call cc-disable-warning,unused-function,) $(call cc-disable-warning,unused-variable,)
・include/linux/cpufreq.h の編集
define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_ondemand)の記述の下に
#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_SMARTASS2)
extern struct cpufreq_governor cpufreq_gov_smartass2;
#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_smartass2)
を追記extern struct cpufreq_governor cpufreq_gov_smartass2;
#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_smartass2)
・drivers/cpufreq/Kconfig の編集
driver. Fallback governor will be the performance governor.の記述の下に
config CPU_FREQ_DEFAULT_GOV_SMARTASS2
bool "smartass2"
select CPU_FREQ_GOV_SMARTASS2
help
Use the CPUFreq governor 'smartassV2' as default.
bool "smartass2"
select CPU_FREQ_GOV_SMARTASS2
help
Use the CPUFreq governor 'smartassV2' as default.
とIf in doubt, say N.の記述の下に
config CPU_FREQ_GOV_SMARTASS2
tristate "'smartassV2' cpufreq governor"
depends on CPU_FREQ
help
'smartassV2' - a "smart" optimized governor for the hero!
If in doubt, say N.
を追記tristate "'smartassV2' cpufreq governor"
depends on CPU_FREQ
help
'smartassV2' - a "smart" optimized governor for the hero!
If in doubt, say N.
・drivers/cpufreq/Makefileの編集
bj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.oの記述の下に
obj-$(CONFIG_CPU_FREQ_GOV_SMARTASS2) += cpufreq_smartass2.o
を追記・arch/arm/mach-msm/acpuclock-7627.cの編集
{ 1, 1008000, ACPU_PLL_4, 6, 0, 126000, 3, 7, 200000},の記述の下に
{ 1, 1036800, ACPU_PLL_4, 6, 0, 129600, 3, 7, 200000 },
{ 1, 1056000, ACPU_PLL_4, 6, 0, 132000, 3, 7, 200000 },
{ 1, 1113600, ACPU_PLL_4, 6, 0, 139200, 3, 7, 200000 },
{ 1, 1152000, ACPU_PLL_4, 6, 0, 144000, 3, 7, 200000 },
{ 1, 1190400, ACPU_PLL_4, 6, 0, 148800, 3, 7, 200000 },
{ 1, 1228800, ACPU_PLL_4, 6, 0, 153600, 3, 7, 200000 },
{ 1, 1267200, ACPU_PLL_4, 6, 0, 158400, 3, 7, 200000 },
{ 1, 1305600, ACPU_PLL_4, 6, 0, 163200, 3, 7, 200000 },
を追記{ 1, 1056000, ACPU_PLL_4, 6, 0, 132000, 3, 7, 200000 },
{ 1, 1113600, ACPU_PLL_4, 6, 0, 139200, 3, 7, 200000 },
{ 1, 1152000, ACPU_PLL_4, 6, 0, 144000, 3, 7, 200000 },
{ 1, 1190400, ACPU_PLL_4, 6, 0, 148800, 3, 7, 200000 },
{ 1, 1228800, ACPU_PLL_4, 6, 0, 153600, 3, 7, 200000 },
{ 1, 1267200, ACPU_PLL_4, 6, 0, 158400, 3, 7, 200000 },
{ 1, 1305600, ACPU_PLL_4, 6, 0, 163200, 3, 7, 200000 },
・drivers/cpufreq/に下記ファイルを追加
cpufreq_smartass2.c
以上で下準備完了
kernelのコンパイル(詳細は省きます)
・make oldconfig
oc/kernel$ ARCH=arm CROSS_COMPILE=/home/android/arm-eabi-4.6/bin/arm-eabi- make oldconfig
・make menuconfig で$KERNEL_VERSION)-perfを変更
oc/kernel$ ARCH=arm CROSS_COMPILE=/home/android/arm-eabi-4.6/bin/arm-eabi- make menuconfig
これをしないとエラー(include/config/auto.conf: 行 589: KERNEL_LOCAL_VERSION: コマンドが見つかりません)・もう一度make oldconfig
・make
oc/kernel$ ARCH=arm CROSS_COMPILE=/home/android/arm-eabi-4.6/bin/arm-eabi- make
~省略~
AS .tmp_kallsyms2.o
LD vmlinux
SYSMAP System.map
SYSMAP .tmp_System.map
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
GZIP arch/arm/boot/compressed/piggy.gzip
AS arch/arm/boot/compressed/piggy.gzip.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
Building modules, stage 2.
MODPOST 20 modules
oc/kernel$
zImageが/kernel/arch/arm/boot/に作成される~省略~
AS .tmp_kallsyms2.o
LD vmlinux
SYSMAP System.map
SYSMAP .tmp_System.map
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
GZIP arch/arm/boot/compressed/piggy.gzip
AS arch/arm/boot/compressed/piggy.gzip.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
Building modules, stage 2.
MODPOST 20 modules
oc/kernel$
boot.imgを作る
CWMrecoveryとTWRPをportしたramdiskの作成手順はここでできあがったmy_ramdisk.img.gzをsony_cmdline.imgとmkelf.pyをoc/ディレクトリにペーストしておく
zImageを/kernel/arch/arm/boot/からコピーしてmy_kernel.imgにrenameしoc/ディレクトリにペースト
oc$ cp ./kernel/arch/arm/boot/zImage my_kernel.img
mkelf.pyでboot.imgを作る
oc$ python mkelf.py -o my_boot.img my_kernel.img@0x00208000 my_ramdisk.img.gz@0x01500000,ramdisk sony_cmdline.img@0x0,cmdline
※mkelf.pyに実行権限を与えておくできあがったmy_boot.imgをfastbootでflash
oc$ fastboot flash boot ./my_boot.img
oc$ fastboot reboot
oc$ fastboot reboot
■boot.img(OverClock1.3GHz kernel)
- 公式Update StockRom と Bootloader Unlocked ・・必須条件
- FlashtoolからFastaboot modeでFlash可
- TWRP,CWMrecovery でFull Wipeする。
- su superSU等のzip fileをどこからかさがして、TWRP,CWMrecoveryからinstall.
- CPUGovernorをSetCPU、AntutuCPUマスターなどのアプリでSmartassV2に変更。
- Radio.apk JP仕様のzipファイル TWRP,CWMrecoveryからinstall.
追記2月15日 公式のupdateされて
FW39よりもFW2.1の方が安定しているよう。STAMINAmodeに関しては、有効なのですが、他の点で電池が消耗、、、本末転倒。
公式のupdateをするのならもう少しクオリティ、、、と思う。
もしかすると私の端末だけなのかもしません。良い解決方法があればと思うのですが、、。
ログで確認すると色々とエラーなりをはいているようですが、改善する知識もなく現在に至る。
E Dual StockRomが使用できる、kernel選定は、FW2.1のXDA OverClockKernel(by hsr0)がベターな気がします。
スポンサーリンク
------------------------------------------