2014年1月25日土曜日

XPERIA E Dual C1605 "11.3.A.1.39" OverClock(1.3GHz) kernel

スポンサーリンク

------------------------------------------

 1月9日新年早々Sony Mobile様がE DualのOpen source archive for build 11.3.A.1.39を公開してくれました。

 また、11.3.A.1.39への公式?アップデートも来ている。※追記XDAではFW1.39よりもFW2.1が最新だと、いうことをおっしゃる方(実際にいじっていない人だと思います)がいるようですが、FW.2.1のbuild.propからSUS経由でアップデート出来ているので、、、、。ただし実際にSonyWebサイトで公開されている最新のFWは確かにFW2.1なので、試験的なアップデートなのかもしれません。
 とりあえず早速RelockしてUpdate。
以前Emmaで作成した同Firmwareではcom.android.phone が20%近くbattery drainしていましたが、数時間使用してみまして今のところその症状もなく改善されている模様。
 ※追記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

で展開されて同ディレクトリに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内にペーストする
oc$ cp config ./kernel/.config   ←.ファイルなので隠れている
configをコピーしたらkernelディレクトリにcdしておく
oc$ cd 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,)
上記のように編集


・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)
を追記


・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.

と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.
を追記


・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 },
を追記


・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/に作成される

boot.imgを作る
CWMrecoveryとTWRPをportしたramdiskの作成手順は
できあがったmy_ramdisk.img.gzsony_cmdline.imgmkelf.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

boot.img(OverClock1.3GHz kernel)

  • 公式Update StockRomBootloader 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)がベターな気がします。


Related Posts Plugin for WordPress, Blogger...

スポンサーリンク

------------------------------------------

0 件のコメント :

コメントを投稿