Monday, January 9, 2017

Memahami thermal-engine pada Xiaomi MI-4c


"MI-4c dipakai buat ngegame bentar doank kok panas sih???
Dipaksain makin panas...eh tapi kok jadi ngelag banget yaaa???
Kenapa sih nih hape???!!

Urggghhh...!!!! "


Mungkin itu salah satu ilustrasi yang kerap kali dihadapi oleh pengguna Xioami MI-4c. Smartphone yang diposisikan sebagai kakak dari MI-4i yang sudah lebih dulu meluncur secara global terlebih dahulu. Sebagai kakak, tentunya mengusung spesifikasi yang lebih mumpuni dibanding sang adik. CPU MI-4c adalah SD808 lebih unggul daripada SD615 milik si adik. Keunggulan lain yaitu adanya IR yang dapat digunakan sebagai universal remote control dan adanya pilihan RAM 3GB serta storage 32GB
Hape ini sebenarnya hanya dipasarkan di Tiongkok saja, namun oleh beberapa importir dibawa masuk ke Indonesia (masalah resmi enggaknya gak akan saya bahas disini ya...hehehe..). 
Dan...sebenarnya lagiiii, HP ini sudah agak jadul. Lalu mengapa baru sekarang saya menulis ini? Tak lain tak bukan karena harga. Ya, harganya yang sudah lebih ramah dikantong dibandingkan saat pertama kali muncul. Di beberapa toko online di Indonesia, MI-4c 2/16 GB dijual pada kisaran harga 1,4-1,5juta sedangkan 3/32GB pada kisaran 2-2,3 juta saja. Ditambah dengan spesifikasi kamera dengan sensor Sony IMX258 yang mumpuni dalam hal mobile photograhy, HP ini seolah tenar kembali, berikut masalah-masalah yang dibawanya termasuk panas dan lag yang terjadi setelah panas mendera.

Lalu, kenapa prosesor ini banas banget? Hal ini disebabkan karena ukuran 20nm yang diterapkan pada teknologi transistor planar. Apa pula itu? Lain kesempatan akan saya bahas ya. Untuk kali ini akan saya bahas cara mengatasi panas yang timbul atau yaaahh...paling nggak meminimalisir lah...hehehe.

Lanjut ya..., heat management pada MI-4c diatur oleh sebuah binary yang disebut dengan thermal-engine. Binary ini dikonfigurasi oleh suatu file yang terdapat pada sub folder etc yang terdapat pada folder system (/system/etc). File ini bernama thermal-engine-8992.conf. Inilah isi file thermal-engine-8992.conf bawaan MI-4c V8.0.5.0 ketika dibuka dengan Notepad++ di PC. 



Bagian kotak berwarna kuning adalah pengaturan cluster1 (kotak berwarna merah) yaitu core A57 sedangkan kotak berwarna biru adalah pengaturan untuk cluster0 (kotak berwarna hijau) yaitu core A53. Ada beberapa parameter yang penting disana, yaitu :
  1. algo_type : tipe algoritma yang digunakan untuk melakukan throttling, yaitu ss : single step. Pada tipe algoritma ss, throttling hanya bisa dilakukan untuk satu step kecepatan CPU saja. 
  2. sampling : menunjukkan lamanya pengukuran suhu oleh sensor (satuan mili detik, 1000 = 1 detik)
  3. sensor : sensor suhu yang digunakan sebagai dasar untuk melakukan throtlling
  4. device : menunjukkan big cluster atau small cluster (1 untuk big, 0 untuk small)
  5. set_point : menunjukkan suhu dimana kecepatan maksimum CPU turun (dalam mili derajat, 1000 = 1 derajat Celsius)
  6. set_point_clr : menunjukkan suhu dimana kecepatan maksimum CPU kembali ke semula (dalam mili derajat, 1000 = 1 derajat Celsius)
  7. device_max_limit : menunjukkan kecepatan CPU yang akan digunakan saat mencapai suhu set_point (dalam MHz, harus diisi sesuai dengan CPU step)

Semakin kebawah akan ditemukan pengaturan CPU yang lain yaitu hotpluging. Kotak berwarna ungu menunjukkan pengaturan hotpluging untuk CPU4 dan CPU5. Pada hexacore SD808, urutan CPU-nya adalah sebagai berikut : Core A53 = CPU0-3, Core A57 = CPU4-5. Ketika CPU hotplug aktif maka CPU akan berada dalam mode tidur atau sleeping. Pada pengaturan hotplug ada beberapa parameter penting, yaitu :
  1. algo_type tipe algoritma yang digunakan untuk melakukan hotpluging.
  2. sampling : menunjukkan lamanya pengukuran suhu oleh sensor (satuan mili detik, 1000 = 1 detik)
  3. sensor : sensor suhu yang digunakan sebagai dasar untuk melakukan hotpluging
  4. thresholds menunjukkan suhu dimana CPU akan dimatikan (dalam mili derajat, 1000 = 1 derajat Celsius)
  5. thresholds_clr menunjukkan suhu dimana CPU akan hidup kembali (dalam mili derajat, 1000 = 1 derajat Celsius)
  6. actions : menunjukkan aksi yang dilakukan, hotplug_cpu{number} = hotplug cpu pada CPU ke-
  7. actions_info : 1 berarti aktif, 0 berarti non aktif
Arti dari file diatas secara keseluruhan berdasarkan CPU throttling & hotpluging yaitu bahwa CPU4 akan mati pada saat suhu yang diukur sensor xo_therm_buf mencapai 42 derajat Celsius. Jika suhu masih naik terus maka, kecepatan maksimum Core A57 yang masih aktif (CPU5) akan turun ke 864MHz (step 800MHz tidak ada dalam cpu_available_freq). Jika suhu masih naik lagi, maka saat mencapai 45 derajat Celsius CPU5 akan dimatikan. CPU5 akan aktif kembali saat suhu sudah turun menjadi 40 derajat Celcius dengan kecepatan maksimum 864MHz. CPU4 akan aktif kembali saat suhu sudah 37 d dan akan kembali ke kecepatan semula yaitu 1,8GHz setelah suhu 37 derajat Celsius bersamaan dengan normalnya kecepatan semua CPU Core A57 (1,8 GHz). 
Sedangkan Core A53 akan turun kecepatan maksimumnya menjadi 600MHz saat mencapai suhu 48 dan akan kembali ke kecepatan semula yaitu 1,4GHz saat suhu sudah turun menjadi 40 derajat Celcius. Nah sampai sini udah bingung belum??? wkwkwkwk...☺
Kalo belum bisa dilanjut dengan memodifikasi file tersebut. Untuk mengurangi panas bisa dilakukan dengan menurunkan thresholds pada CPU hotpluging sehingga CPU4&/5 bisa cepat dimatikan ketika suhu menghangat atau bisa juga dengan menurunkan set_point-nya. Akan tetapi hal ini dapat menurunkan performanya. Bagi yang doyan maen game disarankan untuk mempercepat hotpluging CPU4&5 tetapi menaikkan threesholds dan thresholds_clr pada GPU MANAGEMENT karena biasanya performa gaming akan lebih berpengaruh saat kecepatan GPU turun. 
Untuk memperoleh hasil yang diinginkan bisa mengotak-atik file ini hingga dirasa pas dan sesuai.
Selamat mencoba dan berkreasi.  ✌

Wednesday, October 5, 2016

Throttling ???

Akhirnya sempet bikin postingan blog lagi setelah sekian lama. Maklum lagi ngurusin negara api yang sedang kacau balau wkwkwkwk. Eh engg...tapi ya bukan karena sibuk atau sok sibuk bener siiiih...tapi lagi asik mesra dengan temen lama yang bernama MALES aja sihhhh... *mojok sambil gigitin sprei*.

Sebenernya topik postingan kali ini mungkin udah banyak yang tau (biar gak dibilang basi aja sih...) tetapi kan gak ada salahnya mengulang. Yaaa...macem matakuliah gitu tuh, alesannya memperdalam...tapi sebenernya kalo blom ngulang 3 kali belum lulus afdooool...*curcol mode on*.

Beberapa waktu yang lalu mungkin banyak yang sudah tau kalo Snapdragon 810 dilanda masalah overheating sehingga SoC yang seharusnya menjadi SoC terkencang didunia pada saat itu malah sering nge-lag ketika digunakan. Bahkan Samsung dengan tegas menolak menggunakan chipset ini pada smartphone flagshipnya saat itu yaitu Galaxy S6 dan S6 edge. Namun, beberapa perusahaan lain masih belum menyerah menjinakkan semburan panas sang naga. OnePlus 2, terpaksa men-downclock clockspeed SoC ini untuk mengurangi panas berlebih yang dihasilkannya. FYI, pada kondisi standard SoC ini mempunyai clcokspeed core Cortex-A57 nya hingga 2.0Ghz sedang pada OnePlus 2 hanya samapi 1,8Ghz saja. Bahkan Xperia Z5 hingga menggunakan 2 heatpipe  untuk mengakali panas yanag ditimbulkan. Namun demikian pihak Sony tetap menyertakan suatu peringatan yang menyatakan bahwa Xperia Z5 ini menghasilkan panas yang berlebih dan ada kemungkinan penurunan performa saat hal itu terjadi. 



Ternyata panas berlebih tersebut memang berimbas pada performanya. Hal ini terbukti dengan rendah dan anjlognya nilai benchmark sintetik-nya. Nilai Antutu OnePlus 2 pada review gsmarena.com hanya 47-ribuan saja kalah dengan LG G4, hingga 49-ribuan, yang "hanya" menggunakan SoC Snapdragon 808. SoC ini hanya memiliki 2 core Cortex A57 dengan clcokspeed maksimal 1,8Ghz sedangkan SD810 memiliki 4 core yang sama dengan clockspeed yang lebih tinggi. 


Performa yang lebih rendah ini disebabkan oleh throttling yang lebih agresif pada SD810 dibanding SD808. Throttling berarti melambatkan dengan sengaja dan dalam hal ini terjadi karena panas yang berlebih. Setiap SoC Snapdragon memiliki thermal engine yang bertugas mengatur kapan throttling akan terjadi dan kapan SoC akan kembali ke kecepatan normalnya. Kapan disini adalah bukan kapan waktu jam menit atau detik tetapi temperatur. Pada saat smartphone digunakan, prosesor akan memproses input yang dilakukan. Saat input ringan, seperti penggunaan harian sms, telfon, chat, maka beban yang prosesor tidak terlalu berat sehingga kenaikan tempertatur tidak terlalu tinggi sehingga throttling kemungkinan tidak terjadi. Akan tetapi ketika input yang diberikan itu berat, seperti game dengan grafis detail, maka beban prosesor akan berat sehingga kenaikan temperatur yang tinggi tidak dapat dihindari. Pada saat itulah throttling terjadi, maksimum clockspeed prosesor akan melambat. Clockspeed prosesor yang dibatasi merupakan satu cluster, bisa pada big cluster (core Cortex A57) dan atau pada little cluster (core Cortex A53). Clockspeed prosesor akan kembali ke semula jika panas turun hingga hingga tempertur tertentu. Proses throttling ini sendiri melibatkan sensor temperatur yang terdapat dalam smartphone. Sensor-sensor temperatur apa saja yang ada dalam sebuah smartphone dapat diketahui melalui aplikasi CPU-Z yang dapat diunduh di GooglePlay dan tidak semua sensor tersebut dijadikan parameter dalam proses throttling, jadi hanya beberepa saja. 
Sebenarnya throttling ini terjadi demi kenyamanan pengguna juga. Bayangkan apa yang terjadi ketika menggunakan sebuah smartphone yang powerfull tetapi panas. Ibarat mengendarai sebuah mobil balap tetapi yang dipegang adalah knalpotnya wkakakakkakakak.... 
Sayangnya, throttling pada beberapa smartphone tertentu terjadi sangat agresif, sehingga saat digunakan untuk light-middle task saja throttling sudah terjadi. Hal ini akan berakibat fatal ketika digunakan untuk heavy task. Performa prosesor yang sudah turun saat mengerjakan tugas ringan dipaksa mengerjakan tugas berat maka yang terjadi adalah lag parah. Untuk game berat (biasanya dengan detail grafis yang tinggi), game tersebut bisa sangat tidak nyaman dimainkan karena bukan hanya frame skipping/drop yang terjadi tetapi benar-benar lag atau bahkan sangat patah-patah. Jika sudah demikian, prossesor yang powerfull tersebut malah terlihat letoy dan kurang bertenaga. Beberapa developer berusaha mengakali hal ini dan memang berhasil tetapi dengan konsekuensi panas yang dirasakan tangan saat smartphone digunakan untuk heavy task lebih berasa. Untuk sebagian orang hal ini membuat smartphone dirasa tidak nyaman untuk digunakan. 

Tetapi bagi jamaah Antutudiyah (ngutip dari SobatHape...wkwkwkwk...), kadang throttling ini hanya diakali saat akan digunakan untuk benchmark Antutu dan setelah itu dikembalikan lagi seperti semula atau dimodif tetapi dengan panas yang lebih bisa diterima (throttling tetap terjadi) dengan demikian skor Antutu yang diperoleh saat benchmark akan tinggi.
Nah, sekarang jadi lebih tau donk apa itu throttling dan mengapa ketika panas performa prosessor terutama Snapdragon menurun. Kalo untuk gimana memodif throttling akan diulas lebih jauh pada posting berikutnya yaaaa... (semoga gak mesra-mesraan lagi ama kasur & guling alias MALES) T_T.

Sunday, May 3, 2015

LteConfigs LG G2 (memunculkan opsi LTE pada setting)

Trik ini digunakan untuk memunculkan opsi LTE pada setting network, karena beberapa operator seperti XL meski sudah menggunakan kartu XL 4g LTE opsi ini juga belum muncul sehingga harus menggunakan kombinasi * dan # serta angka. Menurut saya sih kurang praktis, oleh karena itu saya buat trik ini. Oiya, ini udah tested di G2 802e stock rooted ya... 
Namun demikian tetep DWYOR

  1. Pastikan udah Rooted 
  2. Unduh LteConfigs dari https://app.box.com/LteConfigs
  3. Masukkan file tsb dalam memori G2 jika diunduh melalui PC/laptop
  4. Dengan Root Explorer atau palikasi sejenis, rename LteConfigs.apk dalam /system/app menjadi LteConfigs.apk.bak untuk backup (rom kitkat)
  5. untuk lolipop -> system/app/LteConfigs
  6. Kopipastekan file LteConfigs.apk yang diunduh tadi ke dalam /system/app dengan Root Explorer atau aplikasi sejenis
  7. Ubah permission dengan Root Explorer atau aplikasi sejenis menjadi rw-r--r-- atau 644
  8. Restart G2 
  9. Silahkan buka Network Setting, pilihan 4G/LTE/auto sudah tersedia

NB. 
a. LteConfigs ini seharusnya sudah bisa untuk Indosat, Telkomsel, XL, 3 dan Bolt
b. Hanya untuk yang BELUM mendapatkan update LteConfigs.apk
c. Saya ambil dari postingan ini dari postingan saya sendiri di Grup FB LG G2.

Install Custom Recovery di Redmi 1s (TWRP)

Custom recovery merupakan hal yang sangat mendasar jika kita ingin mengutak-atik HH kita. Dengan custom recovery kita dapat melakukan nandroid backup (membackup ROM yang sedang kita gunakan) sehingga ketika terjadi bootloop karena tweaking/modifikasi system yang gagal atau nge-bug dapat kita kembalikan ke kondisi seperti sebelumnya. Pada sistem operasi windows kita mengenal apa yang disebut dengan System Restore, nah kira-kira salah satu fungsi custom recovery pada HH meyerupai hal tersebut. Fungsi lain yaitu untuk menginstall custom ROM itu sendiri dengan mengeflash zip nya. Salah satu custom recovery yang terkenal yaitu TWRP (Team Win Recovery) karena user interface (UI) yang sudah menggunakan touch.
Instalasi TWRP inipun cukup mudah, syarat utamanya adalah HH sudah dlm kondisi rooted dan ada koneksi internet

  • Install aplikasi TWRP Manager yang dapat diunduh dari Google Play Store.

  • Buka aplikasi kemudian akan ada pop-up muncul menanyakan akses root. Klik Grant/Yes.
  • Lakukan patch jika diperlukan lalu reboot.

  • Swipe ke kanan lalu pilih Install TWRP.

  • Pilih device name

  • Pilih Xiaomi Redmi 1S

  • Pilih Recovery Version to Install

  • Scroll ke bawah dan pilih versi paling baru

  • PIlih Install Recovery

  • Downloading

  • Muncul Warning setelah proses download selesai, pilih YES

  • Flashing TWRP sukses, pilih OK untuk reboot ke recovery



Proses instalasi TWRP Custom Recovery selesai. Mudah bukan...

Tuesday, December 23, 2014

Update/Flashing Redmi 1S

Udah tau kan ya Redmi 1S yang booming melalui penjualan exlusive lewat satu merchant terkemuka di Indonesia? Nah, kali ini gw gak akan membahas mengenai penjualannya. Sudah tau kan ya kalo tiap orange friday HH ini dapet update? Tapi untuk HH yang sudah rooted tidak akan dapat update lagi secara OTA dari Xiaomi. Oleh sebab itu update harus dilakukan manual. nah, gimana caranya? 
      
  • Pastikan pilih yang 1S-WCDMA untuk mengunduh OS versi internasional, lalu tekan tombol Hijau dengan tanda panah
  • Masukkan dalam internal storage 
  • Buka updater > pencet tombol menu > select update package > pilih file yang dimasukkan dalam internal tadi.
  • Akan muncul pilihan untuk membackup data pada HH
  • Selanjutnya HH akan reboot dan masuk ke recovery untuk melakukan update


Cara tersebut diatas diatas hanya bisa dipakai saat recovery yang dipakai masih ori yaitu MiRecovery dan tidak dalam kondisi bootloop. Lalu gimana kalo udah gak ori, misal pakai TWRP/CWM lalu bootloop? Ya tinggal di-restore aja dari backup-an. Nah, jika belum sempat membackup dan HH bootloop maka mau gak mau harus diflash ulang. Flashing dilakukan dengan FASTBOOT ROOM, dapat dilakukan juga jika menginginkan HH kembali seperti orinya alias standar pabrik. Langkah flashing adalah sbb :

  • Pastikan ADB Driver+fastboot sudah terinstall, jika belum silahkan download ini, ekstrak, lalu install 
  • Download MiFlash disini, ekstrak lalu install
  • Download fastboot rom 43.0 INDONESIA disini, ekstrak dengan 7-zip 
  • BukaMiFlash
           
  • Pencet Browse dan pilih pada folder image hasil ekstrak fastboot rom tadi 
           
  • Pencet tanda panah bawah samping Browse > Advanced, pada Fastboot Script tekan tombol Browse lalu pilih flash_all_except_storage.bat

          
  1. flash_all.bat: menghapus semua data dalam memori internal. WARNING!!! 
  2. flash_all_except_storage.bat: menghapus data dan aplikasi tetapi tidak menghapus data pada memori internal.  
  3. flash_all_except_data_storage.bat: hanya menghapus aplikasi, setting dan data pada memori internal tidak dihapus.

  • Matikan HH, kemudian masuk fastboot mode dengan cara menekan tombol Vol- dan Power bersamaan
  • Koneksikan HH dengan laptop/PC, lalu tekan tombol Refresh pada MiFlash
  • Setelah HH terdetek, klik tombol Flash dan tunggu hingga proses selesai



Kedua proses tersebut diatas akan menghilangkan akses root, sehingga harus di-root ulang.