Linux’ta TLP ile dizüstü bilgisayarda güç tasarrufu

____________________________________________________________________

Masaüstü bilgisayarlarda güç tasarrufuna çok önem verilmez, bu açıdan Linux’un pek sıkıntısı yoktur. Ancak dizüstü bir bilgisayarda güç kaynağı bağlantısını kesildiğinde iş değişir. Windows’un kendini iyi geliştirdiği bir alandır bu, üreticiler de Windows tarafında olayı sürücüleri ile vs. daha iyi desteklerler. Linux’ta ise güç yönetimi Windows kadar iyi değildir. Windows’un saatlerce şarjsız çalıştırdığı bir dizüstü bilgisayarın sesi soluğu Linux’ta birkaç saat içinde kesilebilir. Linux’ta bu konuda bir şeyler yapmaktadır tabi, son Linux çekirdeklerinde daha da önem kazanıyor gibi bu konu. Tabi biraz daha desteğe ihtiyacı vardır. TLP de ihtiyaç duyulan bu desteği karşılamakta bir miktar.

Ubuntu laptop_mode adında bir güç yönetimi moduna sahip. Diğer dağıtımlarda durum nedir tam bilmiyorum ancak onlarda da etkin olmalı bu. Ya da farklı benzer yapıları vardır. Batarya kullanımına geçildiğinde laptop_mode etkinleşiyor. laptop_mode etkinliği aşağıdaki komutla kontrol edilebiliyor, 0 harici sonuçlar cihazın laptop_mode ile çalıştığının işareti:

cat /proc/sys/vm/laptop_mode

laptop_mode bir miktar güç yönetimi sağlıyor ancak yeterli değil. Bundan dolayı TLP uygulamasını yükleyerek laptop_mode yanında ekstra ayarlar yapma olanağı kazanarak güç tüketimimizi daha da azaltabiliyoruz.

TLP kurmak için öncelikle sırasıyla aşağıdaki komutları çalıştırmamız gerekiyor. İlk komut ile TLP’nin bulunduğu depoyu kaynaklarımıza ekliyor, ikincisi ile yazılım kaynaklarımızı güncelliyor ve sonuncusu ile de programı kuruyoruz. İşlemler için root yetkisi gerekiyor tabii ki.

sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw

Ayrıca aşağıdaki komut ile smartmontools ve ethtool paketlerini de kurmakta fayda var. İlki ile HDD’nin S.M.A.R.T. verilerini okuyabiliyoruz, ikincisi de Ethernet bağlantımızın güç yönetimini ayarlıyor.

sudo apt-get install smartmontools ethtool

Eğer cihazımız IBM / Lenovo ThinkPad modellerinden ise aşağıdaki komut ile de yararlı birkaç uygulama yükleyebiliyoruz. Bunlar ile de ThinkPad serisi dizüstülerde bataryanın şarj seviyesi ve eşiği kontrol edilebiliyor. Uzun süre batarya kullanmayacaklar için bataryanın belli bir şarj seviyesinde kalması ve daha üzerine şarj edilmeyerek ömrünün uzatılması için faydalı bir özellik.

sudo apt-get install tp-smapi-dkms acpi-call-tools

TLP’yi bir kez kurduktan sonra sudo tlp start komutu ile çalıştırabiliyoruz, ya da sistem yeniden başlayınca zaten çalışmaya başlıyor. sudo tlp stat komutu ile de programın şu anki durumu ve ayarlar hakkında bilgi alabiliyoruz. Bu haliyle mutlaka işe yarıyor ancak PCI(e) veriyolları vs. ekstra güç tasarrufu ayarları ile TLP’yi daha etkin hale getirmemiz gerekiyor.

TLP ayarları /etc/default/tlp dosyasında tutuluyor. Ubuntu’da sudo gedit /etc/default/tlp ya da Kubuntu’da sudo kate /etc/default/tlp komutu ile root yetkisi ile bu dosyayı düzenleyebiliyoruz. Bu dosyada güç tasarrufu için yapabileceğimiz pek çok ayar var. Bazı ayarlar alt alta iki satır şeklinde ve sonunda _ON_AC ya da _ON_BAT ifadeleri var. _ON_AC cihaz prize takılı iken, _ON_BAT ise batarya kullanımında etkin olan ayarları ifade ediyor. Buna dayanarak bundan böyle bu son ekleri çıkararak yazacağım ayarları. Yani bazı ayar girdilerinin sonunda yazdığıma ek olarak _ON_AC ya da _ON_BAT ifadeleri de olacaktır.

Gelelim ayarlara. İlk olarak TLP_ENABLE değerinin 1 olduğundan emin olalım ki program çalışsın ve ayarlarımız bir işe yarasın.

TLP_ENABLE=1

Aşağıdaki seçenekler sabit diske veri kaydetmeden önce bekleme modundan çıkarmak için bekleyeceği süreyi ayarlama amaçlı. Eğer değer 0 ise laptop_mode çalışmıyor, 0 harici değerlerde etkin.

DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2

CPU_SCALING_GOVERNOR işlemci frekansının yönetimini yapacak ayarı seçiyor. Genel olarak ondemand olmasında fayda var. Seçeneklerimiz ondemand/powersave/performance/conservative Ancak performans kaybı göze alınıyorsa powersave de kullanılabilir ki frekansı en düşük seviyeye sabitlediğinden yoğun olmayan kullanımlarda işe yarayabiliyor. ondemand seçeneği ise işlemci frekansını yüke göre ayarladığından hem güç tasarrufu hem de kullanılabilirlik açısından daha iyi bir ayar.

CPU_SCALING_MIN_FREQ ve CPU_SCALING_MAX_FREQ ayarları ile de yöneticinin kullanabileceği en alt ve en üst frekanslar ayarlanabiliyor. Kullanılabilecek seçenekler için sudo tlp stat komutundaki işlemci frekans seçenekleri referans alınabilir.

CPU_BOOST seçeneği ise Intel Core i5 ve i7 işlemcilerde turbo modunu ayarlıyor. 0 değerinde turbo modu kapalı, 1 değerinde ise açık. Aşırı performans gerektiren işler yapılmayacaksa bir miktar frekansa sınırlama getirmesi açısından batarya modunda 0 değeri kullanarak turbo modu kapatılabilir. Turbo modu işlemcinin ısısı ve beslendiği voltaj izin veriyorsa standart hızının üzerinde bir miktar hız aşırtma yaparak çalışmasına izin veriyor.

NMI_WATCHDOG=0 olmalı gibi görünüyor. Hata ayıklama yapmak isteyenler 1 değeri ile etkinleştirebilir.

PHC_CONTROLS kısmında işlemcinin voltaj değerleri ayarlanabiliyor ancak voltaj kontrolü destekleyen bir çekirdeğe ihtiyacınız var. Ayrıca kullanacağınız voltaj değerlerini de bilmeniz gerekiyor ki düşük ya da yüksek voltaj ile işlemci verimli bir şekilde çalışabilsin. Kısaca ne yaptığınızı çok iyi bilmiyorsanız bu kısma dokunmayın.

DISK_APM_LEVEL değeri sabit disk güç yönetimini sağlama amaçlı bir ayar. 1 en fazla tasarrufu sağlıyor, 254 ise sabit disk güç yönetimini kapatıyor.

DISK_SPINDOWN_TIMEOUT değeri ise 0 ile 251 arası değerler alarak sabit diskin plakalarının bu süre sonra dönmesini durduruyor. 0 değeri bu ayarı kapıyor. 1 ile 240 arası değerler 5 saniyelik üniteler halinde, 241 ve 251 arası ise 30 dakikalık üniteler halinde hesaplanıp ayarlanabiliyor. Mesela 5 dakika için 5 x 60sn / 6 = 60 değeri ile diskin 5 dakika sonra durması sağlanabiliyor.

SATA_LINKPWR değeri ise SATA güç yönetimini sağlıyor. Seçenekler min_power/medium_power/max_performance. Şarj cihazı bağlı iken max_performance, bataryada iken min_power kullanılması mantıklı.

SATA_LINKPWR_ON_AC=max_performance
SATA_LINKPWR_ON_BAT=min_power

PCIE_ASPM ayarı ise PCI Express güç yönetimini ayarlıyor. Seçenekler default/performance/powersave. Aşağıdaki gibi kullanılabilir:

PCIE_ASPM_ON_AC=performance
PCIE_ASPM_ON_BAT=powersave

RADEON ayarları AMD / ATI ekran kartlarının güç yönetimi ile ilgili ayarlar. Böyle bir karta sahip olmadığım için bir şey diyemeyeceğim. Standart haldeki ayarlar işe yarar görünüyor tabi.

WIFI_PWR, WiFi güç yönetimini açıp kapıyor; 1 değeri kapalı, 5 değeri ise açık demek.

WOL_DISABLE=Y değeri LAN bağlantısında cihazın açılmasını önlüyor olmalı.

SOUND_POWER_SAVE, Intel HDA ve AC97 standartlarındaki ses cihazlarının güç tasarrufunu açıp kapatıyor. 0 değeri kapalı, 1 değeri ise açık. Aşağıdaki seçeneği de unutmayalım:
SOUND_POWER_SAVE_CONTROLLER=Y

Aşağıdaki ilk değer ThinkPad cihazlarda optik sürücünün gücünü kesiyor olmalı, 1 değeri gücü kesiyor. Gücü tekrar vermek için sürücüyü açıp kapatmak yetiyor. İkinci seçenek de bu sürücünün yolunu istiyor.

BAY_POWEROFF_ON_BAT=1
BAY_DEVICE=”sr0″

RUNTIME_PM değerleri PCI (E) veriyolundaki cihazların güç yönetimini açıp kapatıyor. Seçenekler on(güç yönetimi kapalı)/auto (güç yönetimi açık)

RUNTIME_PM_ALL seçeneğini 1 yapmak, tüm PCI(E) cihazlarında güç yönetimini etkinleştirerek 5 watt kadar düşürebiliyor tüketimi. Tabi bende sorun çıkmadı ama sorun çıkaran bazı cihazlar olabilir. Bunları karalisteye almakta fayda var.

USB_AUTOSUSPEND seçeneğini 1 yaparak ihtiyaç duyulmayan USB cihazlarının otomatik kapatılması sağlanabilir. USB bağlantısından çalışan fareler (mouse) bu durumlarda biraz sorun çıkarabilir. lsusb komutu ile faremizin USB nosunu alıp USB_BLACKLIST seçeneğine ekleyerek bu ayarın dışında tutabiliriz. Mesela benim faremin lsusb sonucundaki verisi şöyle:

Bus 003 Device 005: ID 04f3:02f4 Elan Microelectronics Corp. 2.4G Cordless Mouse

Bunu karalisteye almak için ID değerini karaliste satırına ekliyoruz, sonuç şöyle:

USB_BLACKLIST=”04f3:02f4″

Devamında açılış ve kapanışta etkinleştirilip kapatılacak aygıt ayarları var. Bunlar örneğin Linux’u kapatıp Windows’a geçtiğimizde kablosuz ağ, bluetooth gibi bir cihazımız çalışmıyorsa işe yarayabiliyor.

Ayrıca normalde cihazımın bluetooth aygıtı çalışmıyor. Ancak aşağıdaki ayar ile açılışta WiFi ve Bluetooth aygıtlarının açılışta çalıştırılmasını sağlayarak kullanabilir oldum:

DEVICES_TO_ENABLE_ON_STARTUP=”wifi bluetooth”

START_CHARGE_TRESH, STOP_CHARGE_TRESH ayarları ThinkPad cihazlarının batarya şarj seviyelerini ayarlayabilmeyi mümkün kılıyor.

Bunlardan başka da yazmadığım ayarlar var, ancak bu ayar dosyasında İngilizce olarak açıklamaları var. Bu açıklamalardan yola çıkılarak sisteminize uygun ayarları deneyebilirsiniz.

TLP kullanımı ile çok rahat birkaç watt güç tasarrufu elde edilebiliyor ki HDD vs. de kapatılınca daha da artıyor bu tabii ki. Benim cihazım mesela 9.5watt civarı tüketim ile müzik oynatabiliyor. TLP olmadan ise 13 – 14 watt civarına kadar çıkabiliyor bu. Windows altında 5 – 6 saat kadar çalışabilen cihazım bu şekilde 4,5 saat civarına kadar dayanabiliyor mesela.

Ayrıca Nvidia Optimus destekli sistemlerde Bumblebee kurarak harici GPU’nuzu devre dışı bırakmak da 4 – 5 watt kadar güç tüketimini azaltabiliyor ki ciddi bir değer.

Ayrıca sisteminizin bataryada güç tüketimini ve çalışan işlemlerin tahmini güç tüketim değerlerini Powertop uygulaması ile görebilirsiniz. sudo apt-get install powertop 😉