Saturday, April 20, 2013

CPU Controller Script


Script ini akan mengubah-ubah CPU Governor dan CPU Speed berdasarkan beberapa kondisi. Script ini sebaiknya dipakai dengan thermal configuration yang sudah dimodifikasi agar ketika charging tidak terkunci di kecepatan 700Mhz (optional).
Bahan bacaan thermal configuration ada di sini
Jika sudah paham, mari kita mulai.

Tweak ini akan mengubah CPU Governor dan CPU Speed berdasarkan level batere dan juga status charging/discharging. Selain itu juga ada pengaturan dalvik vm yang akan berubah-ubah ketika screen on/off. Sebagian besar CPU Governor yang dipakai adalah conservative karena conservative paling cocok digunakan untuk menghemat batere dan berdasarkan pengalaman di Andromax U governor ini tidak begitu menimbulkan lag. Setting conservative yang dipake juga udah ditweak agar lebih responsif daripada conservative aslinya, jadi meskipun conservative tapi kinerjanya gak kalah sama ondemand tapi ramah untuk batere. Untuk lebih responsif lagi, dual core selalu aktif ketika screen on, dan akan diatur oleh system (umumnya dimatikan) ketika screen off.
Jangan takut background process akan mengakibatkan wake_lock sehingga tidak bisa masuk mode deepsleep, karena proses background nya tidak memiliki wake_lock. Resource yang terpakai untuk RAM hanya 364kb, dan untuk CPU tidak akan pernah lebih dari 0% sekali pun. Tested selama beberapa hari.

Kondisi:
1. Charging

  • CPU Governor = Ondemand
  • Max Speed = 1152000
  • Dual core aktif
  • Setting Ondemand default.
2. Batere diatas 75%
  • CPU Governor Conservative
  • Max Speed = 1152000
  • Dual core aktif
  • Speed naik apabia beban CPU diatas 85%, default 80% (lebih sering di speed rendah = batere irit)
  • speed diturunkan apabila beban CPU dibawah 55%, default 20% (lebih sering di speed rendah = batere irit)
  • kenaikan speed adalah 50% dari speed max, default 5% (lebih responsif)
  • sampling_rate 4x lebih cept dari aslinya agar lebih sering menaikkan/menurunkan speed sesuai kebutuhan.
3. Batere antara 50%-75%
  • CPU Governor = Conservative
  • Max Speed = 1008000
  • Dual core aktif
  • Speed naik apabia beban CPU diatas 85%, default 80% (lebih sering di speed rendah = batere irit)
  • speed diturunkan apabila beban CPU dibawah 55%, default 20% (lebih sering di speed rendah = batere irit)
  • kenaikan speed adalah 35% dari speed max, default 5% (lebih responsif)
  • sampling_rate 2x dari aslinya agar lebih sering menaikkan/menurunkan speed sesuai kebutuhan.
4. Batere antara 15%-50%
  • CPU Governor = Conservative
  • Max Speed = 700800
  • Dual core aktif.
  • Speed naik apabia beban CPU diatas 85%, default 80% (lebih sering di speed rendah = batere irit)
  • speed diturunkan apabila beban CPU dibawah 55%, default 20% (lebih sering di speed rendah = batere irit)
  • kenaikan speed adalah 10% dari speed max, default 5% (lebih responsif)
  • sampling_rate 2x dari aslinya agar lebih sering menaikkan/menurunkan speed sesuai kebutuhan.
5. Batere dibawah 15%
  • CPU Governor = Powersave
  • Dual core aktif.
6. Sleeping
  • CPU Governor = Powersave
  • Dual core diatur oleh system, (umumnya hanya core0 yang aktif = batere irit).

How to:
  • Pastikan hh kalian support init.d
  • Pastikan applet pgrep terinstall atau symlinked ke busybox.
  • Download file-nya di sini
  • copy ke /system/etc/init.d
  • set permission nya ke rwxrwxrwx
  • reboot

Untuk mengetahui script jalan atau tidak, buka /data/CPU-Control.log
Di dalamnya akan ada log tiap2 profile yang diterapkan. Check secara berkala untuk memastikan. Selamat mencoba, dan jangan lupa kasih feedback guna penyempurnaan apabila profile kurang cocok.

Fix Buat Gamer:
Script CPU Controller di atas dirancang untuk penghematan batere, dengan setting governor conservative yang kurang cocok untuk gamer. Untuk itu, muncul lah update ini. Untuk saat ini (dan mungkin seterusnya) saya hanya membuat fix simple, yaitu dengan mengganti governor ke ondemand atau performance tetapi harus dilakukan secara manual. Bisa saja saya buat supaya bisa mengganti secara otomatis dengan cara deteksi jika game "tertentu" jalan, maka akan menganti ke profile gaming. Namun karena kata "tertentu" bisa bermacam-macam, maka akan menjadikan script terlalu panjang.

Bahan:
  • Download file di sini
  • Extract kedua file, dan copy ke /system/xbin
  • Set Permission ke rwxrwxrwx

Cara apply:
  • Buka terminal emulator
  • Ketik "su" kemudian enter
  • Ketik "gamer" atau "gamerx" kemudian enter

Penjelasan:
"gamer" akan mengubah governor menjadi ondeman dengan frekuensi maks 1152000.
"gamerx" akan mengubah governor menjadi performance yang frekuensinya tidak akan pernah turun dari 1152000.
Selama screen nyala, governor tidak akan berubah. Jika screen mati, maka governor berubah sesuai profile CPU Control, jadi harus diulang. Intinya kalo ingin tetap di performance atau ondemand, screen jangan sampai mati. Peringatan, "gamerx" akan membuat hh panas dan batere boros, tapi paling enteng buat main game berat.

0 comments:

Post a Comment

 

Fadel's Virtual Life