Memahami Konfigurasi TLP
Telah menjadi maklum bagi khalayak umum bahwasanya menggunakan GNU/Linux dalam laptop adalah bagaikan berjudi. Jika beruntung, semua perangkat keras langsung dikenali dan sistem berjalan dengan lancar, namun sebaliknya, sistem Linux akan selalu dirongrong dengan masalah.
Salah satu masalah pelik yang dihadapi pengguna Linux dalam laptop adalah perihal penataan daya (power management). Pengguna komputer desktop tidak akan terlalu peduli soal penggunaan daya karena komputernya selalu terhubung ke sumber daya listrik, sementara laptop sumber dayanya hanya bersandar pada beberapa sel baterai.
Mengapa dukungan penataan daya di GNU/Linux itu lemah? Tidak lain karena rendahnya dukungan vendor perangkat keras. Umumnya vendor perangkat keras hanya membuat driver bagi sistem operasi Microsoft Windows, karena ialah pangsa pasar terbesar sistem operasi. Pangsa pengguna Linux yang kecil tidak menimbulkan minat para pembuat perangkat keras untuk membuatkan driver-nya. Akhirnya ini menjadi seperti lelucon ayam dan telur. Pembuat perangkat keras enggan melirik Linux karena penggunanya sedikit, dan jarang yang bersedia menggunakan Linux karena kurangnya dukungan untuk perangkat keras yang mereka miliki.
Untunglah pengguna GNU/Linux umumnya mau menggaruk kegatalannya sendiri. Awalnya, dukungan penataan daya di laptop tersedia dalam kernel laptop mode, kemudian skrip yang mendayagunakan kernel laptop mode, dan akhirnya ada yang membuat piranti lunak yang lebih berdaya guna sekaligus lebih mudah digunakan.
Saya pernah menulis artikel tentang menghemat daya ThinkPad T520 di Debian Sid dengan menggunakan powertop. Namun kini ada cara yang lebih mudah untuk menata daya di laptop, yakni dengan menggunakan TLP. Jika dulu Anda pernah mengenal Jupiter, pasti akan paham dengan manfaat TLP.
Memasang TLP sangatlah mudah, jadi tidak akan dijabarkan dalam artikel kali ini. Dalam menggunakan TLP, kita saja pasang dan langsung pakai. Namun agar hasilnya lebih optimal sesuai perangkat keras yang kita pakai, adalah lebih baik untuk kemudian mengatur beberapa pengaturan di berkas /etc/default/tlp. Pengaturan di dalam berkas tersebut sekilas terlihat banyak dan membingungkan, namun jika kita menyempatkan untuk membacanya, tiap pengaturan selalu diberi sekilas petunjuk akan kegunaan pengaturan tersebut. Jika ternyata masih merasa bingung, silakan rujuk laman http://linrunner.de/en/tlp/docs/tlp-configuration.html.
Jadi, kali ini saya akan mengupas pengaturan-pengaturan dalam berkas konfigurasi TLP yang sesuai dengan ThinkPad T520 yang kini saya gunakan. Mari…
TLP_ENABLE=1TLPtidak memiliki perintah stop atau restart. Jadi bagaimana kalau kita sementara tidak ingin menggunakanTLP? Di sinilah pengaturannya; beri nilai0kemudian reboot.TLP_DEFAULT_MODE=ACMenentukan moda operasi default. Hanya bagi sistem sederhana semacam embedded hardware yang seringkali tidak menyediakan metode deteksi catu daya apa yang kini sedang dipakai. Untuk sistem lengkap seperti laptop atau desktop pengaturan ini tidak diperlukan karena
TLPbisa menentukannya secara otomatis.DISK_IDLE_SECS_ON_AC=0 DISK_IDLE_SECS_ON_BAT=2Nilai lebih besar dari 0 akan mengaktifkan kernel laptop mode, jadi tidak perlu untuk mengoprek
DISK_IDLE_SECS_ON_BATkarena tujuan memasangTLPtentu salah satunya agar bisa memanfaatkan kernel laptop mode.MAX_LOST_WORK_SECS_ON_AC=15 MAX_LOST_WORK_SECS_ON_BAT=60Ketika menulis sebuah berkas kemudian menyimpannya, kernel tidak serta-merta menuliskannya ke dalam diska, melainkan menyimpannya sementara ke dalam Page cache. Data-data yang sementara tersimpan dalam Page cache ini dinamakan sebagai dirty pages. Pengaturan
MAX_LOST_WORK_SECS_ONuntuk menentukan berapa lama dirty pages disimpan dalam Page cache. Semakin besar waktu ini, semakin besar pula resiko kehilangan data. Semakin kecil waktu ini, semakin kecil resiko kehilangan data, namun tentunya meningkatkan penggunaaan daya untuk menyapu cache ke dalam diska.CPU_SCALING_GOVERNOR_ON_AC=powersave CPU_SCALING_GOVERNOR_ON_BAT=powersaveDalam menggunakan komputer, kita tidak selamanya malar berkerja menguras daya komputer, namun sering kali misalnya hanya santai mendengar musik atau membaca buku elektronik. menyikapi ini, CPU juga mengubah frekuensinya menyesuaikan beban kerja. Jika beban kerja meningkat, CPU akan meningkatkan frekuensinya, demikian sebaliknya. Kernel menggunakan scalling governor untuk mengatur (throttling) frekuensi CPU ini.
CPU_SCALING_GOVERNORakan menentukan frequency scaling untuk scalling governor dari CPU. Pengaturannya bergantung pada driver yang digunakan sistem.
Gunakan perintahsudo tlp-stat -puntuk melihat scaling driver apa yang digunakan sistem.Prosesor ThinkPad T520 yang saya miliki adalah Intel Core i generasi kedua (Sandy Bridge), dan menurut
tlp-statmenggunakan driverintel_pstate. Governor yang didukung untuk prosesor ini adalahpowersavedanperformance, namunTLPlebih menyarankan pengaturan padaCPU_MIN/MAX_PERF.CPU_MIN_PERF_ON_AC=0 CPU_MAX_PERF_ON_AC=100 CPU_MIN_PERF_ON_BAT=0 CPU_MAX_PERF_ON_BAT=50Pengaturan performance CPU ini yang lebih disarankan bagi prosesor yang menggunakan driver
intel_pstate.CPU_BOOST_ON_AC=1 CPU_BOOST_ON_BAT=0Pengaturan khusus untuk prosesor Intel Core i berkemampuan Turbo boost.
SCHED_POWERSAVE_ON_AC=0 SCHED_POWERSAVE_ON_BAT=1Prosesor modern memiliki kemampuan hyperthreading yang seakan menyediakan kinerja setara lebih banyak inti (multi core) dibanding inti fisik yang dimiliki.
SCHED_POWERSAVEakan meminimalkan penggunaan inti prosesor ketika bebannya rendah.ENERGY_PERF_POLICY_ON_AC=performance ENERGY_PERF_POLICY_ON_BAT=powersaveMenentukan garis besar kompromi antara penghematan daya dan kinerja CPU. Bagaimana agar kinerja CPU tinggi namun penggunaan dayanya rendah.
Pengaturan ini memerlukan modul kernelmsrdan perkakasx86_energy_perf_policyyang sesuai dengan versi kernel.NMI_WATCHDOG=0Sepertinya ini tidak terlalu penting bagi saya. Silakan baca artikel Wikipedia mengenai NMI.
DISK_DEVICES="ata-PLEXTOR_PX-256M5S_P02302102450 ata-TOSHIBA_MQ01ABD100_X3TOP6YUT"Pengaturan perangkat penyimpanan yang diinginkan untuk diatur oleh
TLP. ThinkPad saya selain menggunakan SSD di main bay, juga menggunakan HDD di ultra bay yang bisa dicopot-pasang dan ganti HDD, jadi penulisan sda, sdb, dan sejenisnya tidak memadai dan ada kemungkinan tertukar. Lebih baik untuk menggunakan UUID sebagai penanda HDD. Gunakantlp diskiduntuk mengetahui ID masing-masing diska.DISK_APM_LEVEL_ON_AC="254 254" DISK_APM_LEVEL_ON_BAT="254 128"Advanced Power Management Level bagi diska. Jika menggunakan AC, saya tetapkan APM ke 254 atau maximum performance. Jika laptop menggunakan baterai, saya tetapkan diska 1 yang SSD ke max performance dan diska 2 yang HHD ke 128 sebagai kompromi penghematan daya dan kinerja. Diska 2 ini berupa HDD berisi data yang jarang diakses.
DISK_SPINDOWN_TIMEOUT_ON_AC="0 120" DISK_SPINDOWN_TIMEOUT_ON_BAT="0 120"Menurunkan putaran piringan HDD jika sedang tidak digunakan, dalam satuan 5 detik. Karena diska 1 saya berupa SSD yang tidak memiliki komponen bergerak, tidak diperlukan pengaturan spin down. Nilai 120 atau 10 menit ditentukan untuk HDD di ultra bay agar jika dalam 10 menit tidak digunakan ia akan menurunkan putaran kepingannya untuk menghemat daya.
DISK_IOSCHED="noop cfq"I/O scheduler adalah penjadwalan penulisan data dari cache ke diska. Sarana penyimpanan data yang paling umum digunakan adalah hard disk drive yang berupa piringan magnetik penyimpan data dan lengan penyimpan/pembaca data. Untuk menuliskan data, lengan penyimpan harus bergerak menuju sektor dalam piringan yang bisa ditulisi, dan ini membutuhkan waktu (seek time). Untuk meminimalkan akibat dari seek time ini, maka diterapkan sebuah sistem penjadwalan penulisan dan pembacaan data, yakni I/O scheduler. Untuk SSD saya menggunakan
noopkarena ia tidak memiliki komponen begerak dan data bisa langsung dituliskan, sementara untuk HDD saya menggunakancfq.SATA_LINKPWR_ON_AC=max_performance SATA_LINKPWR_ON_BAT=max_performanceIni mengatur SATA Agressive Link Power Management yang memungkinkan jalur SATA untuk berpindah ke moda low-power kitika sedang tidak digunakan. Kerugiannya, ALPM menimbulkan jeda karena diska mesti diaktifkan ulang ketika hendak dipakai. Saya lebih memilih max_performance karena lebih banyak menggunakan SSD yang sudah hemat daya.
AHCI_RUNTIME_PM_TIMEOUT=15AHCI masih berkaitan dengan jalur data ke diska.
AHCI_RUNTIME_PMuntuk mengatur tenggat waktu sebelum diska suspended.PCIE_ASPM_ON_AC=performance PCIE_ASPM_ON_BAT=powersaveIni untuk mengatur Active State Power Management dari perangkat PCIe. Sepertinya tidak ada perangkat PCIe terpasang di T520 ini, tapi tak apa lah…
WIFI_PWR_ON_AC=off WIFI_PWR_ON_BAT=onPengaturan hemat daya bagi perangkat wrieless fidelity. Tidak tahu juga apakah wi-fi T520 mendukung moda ini, tapi berhubung jarang menggunakan wi-fi kecuali jika tethering ke telepon seluler, sepertinya tiada rugi untuk menggunakan pengaturannya ini.
WOL_DISABLE=YWake on LAN adalah fungsi siaga komputer agar bisa dibangunkan ketika menerima perintah untuk bangun dari LAN. Ini cocoknya hanya untuk komputer perkantoran atau rumah yang memiliki jaringan. Jangankan wake on LAN, menggunakan LAN pun saya jarang.
SOUND_POWER_SAVE_ON_AC=0 SOUND_POWER_SAVE_ON_BAT=1Hemat daya untuk sistem audio Intel HDA. Ada kemungkinan menimbulkan gangguan “clicking” pada suara.
SOUND_POWER_SAVE_CONTROLLER=YMatikan daya chip suara ketika tidak aktif. Khusus Intel HDA.
BAY_POWEROFF_ON_BAT=1Putuskan daya ke ultra bay. Pengaturan hanya berpengaruh terhadap kandar optik. Jika ultra bay diganti caddy berisi diska, pengaturan ini tidak berpengaruh terhadap diska tersebut.
BAY_DEVICE=sr0PATH merujuk kandar optik, biasanya di
/dev/sr0.RUNTIME_PM_ON_AC=on RUNTIME_PM_ON_BAT=autoSaya tidak terlalu paham soal runtime power management untuk PCIe ini. Lagi pula sepertinya tidak punya perangkat yang memakai PCIe.
RUNTIME_PM_ALL=1Idem.
USB_AUTOSUSPEND=1Putuskan daya ke perangkat USB jika dalam selang waktu tertentu tidak digunakan.
USB_BLACKLIST="2717:ff60"Kecualikan perangkat tertentu agar dayanya jangan diputus (USB autosuspend) walau lama tidak aktif. Misal saya sering mengisi baterai telepon seluler di TP520 ini.
Cari ID menggunakan perintahlsusb. Jika ada banyak perangkat yang hendak blacklisted, pisahkan ID oleh spasi.USB_BLACKLIST_WWAN=1Ini khusus bagi pengguna modem wireless wide area network, agar modemnya tidak diputus daya walau tidak sedang digunakan. Kalau memang perlu mematikan network, T520 menyediakan sebuah saklar untuk mematikan perangkat radio secara fisik.
RESTORE_DEVICE_STATE_ON_STARTUP=0Kadang saya langsung mematikan laptop begitu saja tanpa mematikan perangkat radionya terlebih dahulu. Dan jika laptop dihidupkan, yang saya inginkan hanyalah agar semua perangkat radio mati, tidak ada yang hidup dan berupaya terhubung ke internet.
DEVICES_TO_DISABLE_ON_STARTUP="wifi wwan"I don’t want a surprise. Sambungan internet terjalin jika saya memang menginginkannya. No automated connection.
START_CHARGE_THRESH_BAT0=75 STOP_CHARGE_THRESH_BAT0=80Ada banyak pro-kontra mengenai perlunya perlakuan start/stop charging pada baterai. Sejujurnya saya juga tidak tahu banyak, kecuali bahwa charge cycle baterai itu terbatas dan panas menurunkan mutu baterai.
Menjaga agar pengisian baterai tidak sampai penuh dan pemakaian tidak sampai tandas akan menjaga charge cycle/cycle count tetap rendah. Demikian juga dengan tidak tetap mengisi baterai padahal telah penuh akan menurunkan suhu di dalam baterai (sepertinya laptop modern memiliki cara pemutus pengisian jika baterai telah penuh).
Mengabaikan silang pendapat, saya atur agar baterai mulai diisi jika kapasitasnya turun hingga 75% dan mulai diisi jika kapasitanya mencapai 80%.START_CHARGE_THRESH_BAT1=75 STOP_CHARGE_THRESH_BAT1=80Idem. Hanya saja ini untuk baterai tambahan (slice battery), yang kadang saya gunakan ketika tidak ada listrik PLN.
Demikian, sementara hanya itu. Mungkin ada pengaturan yang terlewat atau sengaja saya lewat baik karena tidak paham gunanya atau memang dirasa tidak berguna untuk ThinkPad T520 yang saya pakai.
Jika artikel ini terasa membingungkan, jangan menyurutkan niat menggunakan TLP. It’s an amazing tool. Pengaturan default sudah cukup bagi penggunaan laptop secara umum.