Skocz do zawartości

Howto: Laptop-mode-tools W Fedorze10


ippo

Rekomendowane odpowiedzi

1. Aby zainstalować laptop-mode-tools należy zainstalować najpierw acpid:

# yum install acpid

2. Następnie na stronie http://samwel.tk/laptop_mode/ Barta Samwelta - autora laptop-mode-tools -

wyszukujemy i instalujemy jedną z paczek dla fedory:

# rpm -ihv http://samwel.tk/laptop_mode/tools/downloads/rpm/laptop-mode-tools-1.45-1.noarch.rpm

3. Laptop-mode posiada kilka plików konfiguracyjnych. W mojej porzedniej dystrybucji używałem lekkiego fluxboksa oraz totalnie hardkorowego dwm. Menadżery te są bardzo lekkie ale o funkcjonalność trzeba zadbać samemu. Między innymi z pomocą laptop-mode-tools. Programik ten czuwał u mnie nad częstotliwością taktowania procka (tzn. zarządzał cpufrequtils a laptop-mode zmieniał zarządcę w zależności od tego, czy zasilanie było z "kabla" czy z baterii) i wyłączał ekran po zadanym czasie bezczynności (DPMS) ponieważ nie używałem wygaszaczy. Laptop-mode potrafi jeszcze wyłączać zdefiniowane usługi podczas pracy na baterii w celu oszczędzania energii ale tej opcji (oraz kilku innych) nie testowałem. Zresztą nie będą one potrzebne, gdyż wiele spraw załatwia gnome ze swoimi narzędziami. Nie ma więc sensu wywoływać konfliktów między gnome a laptop-mode.

UWAGA

Nie znam efektów pracy laptop-mode-tools w środowisku gnome. Nie wiem, czy wpisywane przeze mnie wartości są prawidłowe. Robię to na swoim sprzęcie i na własne ryzyko

4. Po takiej zachęcie edytujemy główny plik konfiguracji

# nano /etc/laptop-mode/laptop-mode.conf

Teoretycznie wszystko jest tu wyjaśnione w komentarzach :)

Wyszukujemy fragment:

# Enable laptop mode when on battery power.
#
ENABLE_LAPTOP_MODE_ON_BATTERY=1


#
# Enable laptop mode when on AC power.
#
ENABLE_LAPTOP_MODE_ON_AC=0

Domyślnie laptop-mode jest włączony na baterii i wyłączony na zasilaniu sieciowym.

Włączamy laptop-mode na zasilaniu sieciowym poprzez zmianę wartości z 0 na 1. Przyczynę poznamy w dalszej części tej opowieści.

 

Następna sekcja - wskazujemy dysk poprzez wpisanie właściwej wartości. U mnie wygląda to tak:

# The drives that laptop mode controls.
# Separate them by a space, e.g. HD="/dev/hda /dev/hdb". The default is a
# wildcard, which will get you all your IDE and SCSI/SATA drives.
#
HD="/dev/sda"

 

Kolejna sekcja:

# Idle timeout values. (hdparm -S)
# Default is 2 hours on AC (NOLM_HD_IDLE_TIMEOUT_SECONDS=7200) and 20 seconds
# for battery and for AC with laptop mode on.
#
LM_AC_HD_IDLE_TIMEOUT_SECONDS=600
LM_BATT_HD_IDLE_TIMEOUT_SECONDS=20
NOLM_HD_IDLE_TIMEOUT_SECONDS=7200

 

Stan bezczynności dysku. Hdparm -S służy do zatrzymywania dysku (idle_spindown) w celu oszczędzania energii źródło (zwróć uwagę, że laptop-mode posługuje się czasem w sekundach a hdparm -S przypisuje wartości jednostkom czasu). Ja wpisałem 600 sekund (10 min.) dla kabla i zostawiłem "difoltowe" 20 s. dla baterii. Co oznacza, że na baterii wystarczy 20 sekund bezczynności dysku, by go zatrzymać. Możesz zmieniać tę wartość dowolnie, w granicach rozsądku :) Pamiętaj, że bezczynność dysku może przerwać otwarty edytor tekstu, który ma ustawiony autozapis albo jakaś usługa systemowa, czy nawet głupi wygaszacz ekranu :) Na kablu 10 min. bezczynności wydaje się być ok. (bez laptop-mode dysk się nie zatrzymywał, tylko parkował głowicę).

Wartość NOLM jest bez znaczenia, gdyż włączyłem

ENABLE_LAPTOP_MODE_ON_AC=1

laptop-mode będzie działać zawsze, gdy włączę komputer. Nie zapomnij włączyć go w usługach (nie wiem do końca, jak działa laptop-mode z gnome. W mojej poprzedniej dystrybucji wystarczyło wystartowanie daemona w konsoli lub dopisanie do skryptu startowego).

 

Najważniejsza sekcja: hdparm -B

Moim zdaniem ta sekcja odpowiada za parkowanie głowicy, czyli ten problem, którym żyły fora kilku dystrybucji (chociażby "Czy ubuntu niszczy dyski w notebookach?"). Dysk laptopowy co jakiś czas parkuje głowicę, czyli przesuwa ją znad talerza w miejsce spoczynku (ja to widzę, jak przeniesienia ramienia gramofonu znad płyty winylowej na widełki...). Ma to ponoć na celu zabezpeczenie danych/dysku przed uszkodzeniami. Wszak w naturze laptopa jest praca w ruchu - na kolanach w aucie, pociągu, ławce w parku. Nie trudno wtedy o uderzenia, które mogą coś tam uszkodzić...

 

Problemem jest fakt, że dysk ma jakiś określony limit parkowań (w zależności od producenta). Może to być 300 000 może 600 000. Co będzie potem? Hm... moje auto ma gwarancję dwuletnią... a jednak planuję jeździć nim 5 lat. Dam radę??

Ilość wykonanych parkowań sprawdzamy poprzez

# smartctl -a /dev/sda | grep Load_Cycle_Count

Zapisz wynik. U mnie wynosi

193 Load_Cycle_Count        0x0032   091   091   000    Old_age   Always       -       96395

Większość parkowań nabiłem pod jedynie słusznym systemem, pod linuksem staram się nad tym panować. Zanim zainstalowałem laptop-mode mój dysk pod fedorą 10 parkował głowicę średnio co kilka minut (charakterystyczne cyknięcie).

 

Wprawdzie porównanie dysku do auta było dość naciągane ale mimo to ja uważam, że problem jest.

A nawet dwa. Jeśli wstrzymamy parkowanie, może wzrosnąć temperatura dysku. Poza tym, możemy łatwiej uszkodzić dysk mechanicznie. W końcu ktoś wymyślił to parkowanie nie bez powodu... O tym też piszą na forum ubuntu.

Można więc spowolnić parkowanie. Do tego służy hdparm -B. Z opisów, jakie znalazłem w sieci, wynika że wartość 1 oznacza agresywne parkowanie a 255 wyłącza je całkowicie (dla niektórych dysków 254)

A low value means aggressive power management and a high value means better performance. A value of 255 will disable apm on the drive
Czyli generalnie bla, bla, bla.. Każdy ustawia to wg uznania (i na własną odpowiedzialność). Moja propozycja:

# Power management for HD (hdparm -B values)
#
BATT_HD_POWERMGMT=1
LM_AC_HD_POWERMGMT=254
NOLM_AC_HD_POWERMGMT=254

Co oznacza, że na baterii parkowanie będzie agresywne (częste), czyli bezpieczne dla dysku, jeśli chodzi o uderzenia ale skróci mu życie nabijając licznik parkowań. Będzie to jednak generalnie zgodne z tym, co się działo z moim dyskiem, zanim zainstalowałem laptop-mode. Czyli jakiś wewnętrzny sterownik dysku parkował głowicę zgodnie z wolą producenta sprzętu. Natomiast w trybie kabel mój lapciak spoczywa bezpiecznie na biurku, czyli parkowanie można ograniczyć (wbrew woli producenta sprzętu ale zgodnie z wolą moją i na moją odpowiedzialność).

5. Zapisz ustawienia i opuść plik konfiguracyjny

6. Wklep

 /etc/init.d/laptop-mode start

(SELinux się zbulwersuje ale powinno zadziałać), ewentualnie sprawdź i wystartuj laptop-mode przez Sytem > Administracja > Usługi. Po każdym grzebaniu w laptop-mode.conf zrestartuj daemona (usługę).

7. Sprawdzaj jak zachowuje się dysk (czy głowica parkuje, czy dysk się zatrzymuje) w obu wariantach zasilania i zapisuj wyniki.

 

Nie testowałem jeszcze laptop-mode pod fedorą, nie wiem więc, jak będzie się sprawdzał w integracji z narzędziami gnome. Przy próbach (re)startowania/zatrzymywania laptop-mode w konsoli

# /etc/init.d/laptop-mode start|stop|restart

swoje objekcje zgłaszał SELinux ale laptop-mode reagował.

# /etc/init.d/laptop-mode restart
can't rename /etc/mtab.tmp to /etc/mtab: Brak dostępu
can't rename /etc/mtab.tmp to /etc/mtab: Brak dostępu

Jeszcze raz przypominam, że robisz wszystko na własną odpowiedzialność!!

 

PS

Zastanawiam się nad przetestowaniem takich wartości:

# Power management for HD (hdparm -B values)
#
BATT_HD_POWERMGMT=1
LM_AC_HD_POWERMGMT=128
NOLM_AC_HD_POWERMGMT=254

albo

# Power management for HD (hdparm -B values)
#
BATT_HD_POWERMGMT=128
LM_AC_HD_POWERMGMT=250
NOLM_AC_HD_POWERMGMT=254

ewentualnie do zmian w takim zakresie:

LM_AC_HD_POWERMGMT= od 1 do 128
NOLM_AC_HD_POWERMGMT= od 128 do 254

 

Do admina

Postanowiem dać w nowym wątku bo w tym o narzędziach laptopowych mogło się rozmyć.

 

Edyta:

Pierwszy raporcik

hdparm -S

LM_AC_HD_IDLE_TIMEOUT_SECONDS=600

hdparm -B

LM_AC_HD_POWERMGMT=200

13:17

193 Load_Cycle_Count        0x0032   091   091   000    Old_age   Always       -       96400

14:05

193 Load_Cycle_Count        0x0032   091   091   000    Old_age   Always       -       96402

Laptop pozostawiłem włączony, nic nie było na pulpicie. Gnome wygasił ekran.

Dysk też się zatrzymuje.

 

Jeszcze do poczytania

Odnośnik do komentarza
Udostępnij na innych stronach

Ewentualnie dopisz jeszcze jak sprawdzić czy laptop_mode poprawnie włączył się, czyli cat /proc/sys/vm/laptop_mode. Co do wartości 255 to nie na każdym dysku łapie (zwłaszcza tym zbugowanym jak u mnie) i warto o tym wspomnieć. Możesz jeszcze dopisać, żeby zainteresowani zajrzeli do folderu /etc/laptop-mode/conf.d/, bo można tam znaleźć np. oszczędzanie energii w kartach bezprzewodowych intela itp. Ogólnie ok, tylko dziwnie wygląda podwójny znak zapytania :)

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, dopracuję i wrzucę. Dzięki za uwagi.

 

Skupię się jednak tylko na hdparm -S -B. Obsługi zarządzania energią w kartach intela nie przerabiałem, sporo innych funkcji nie odkryłem. Moja propozycja: ja napiszę zręb artykułu do Wiki, a w miarę potrzeb i chęci każdy będzie mógł go uzupełniać.

 

Jest już na wiki: http://wiki.fedora.pl/wiki/Specjalna:Wszystkie_strony

Pozwólcie że pocieszę się przez chwilę autorstwem :)

 

 

Tuż po instalacji miałem problemy z wstrzymaniem i hibernacją - zwis po wyjściu z X-ów w trakcie listingu albo czarny ekran, na co pomagał tylko twardy reset. Nie wiem czy pomogła komenda swapon czy update systemu, bo gdy wykonałem i jedno i drugie system ładnie się hibernował. Ostatnio znów mam zwisy po wyjściu z X-ów. Podejrzewam, że miesza tu acpid, bez którego nie da się zainstalować laptop-mode-tools. Czyli mam to, czego się obawiałem: konflikt między acpid i Gnome Power Managerem :(

 

Potrzebny ktoś anglojęzyczny https://wiki.ubuntu.com/PowerManagement Tu piszą, jak ugryźć ten problem w ubuntu 7.10-8.10 czyli jak zintegrować laptop-mode z gnome. Potrzebna odpowiedź na pytanie, któremu wydaniu ubu "odpowiada" fedora 10 (wicie, rozumicie, w sensie plików acpi) - może ktoś się orientuje? W zasadzie chodzi o numer jajka i gnome (gnome power-manager). Z tego co wygrzebałem na szybko, to ubu 8.10 zaczyna od jądra 2.6.27 czyli jak f10.

TU natomiast piszą, że ubuntu/cannonical nie miesza się do zarządzania dyskiem i pozostawia to biosowi/firmware dysku. Czyżby to samo dotyczyło fedory?

 

Edytka:

wstrzymanie i hibernacja działa z konsoli (spod roota)... niesłychane historia :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 weeks later...

co do hdparm -S to chyba trzeba to nieco sprostować, przy wartości hdparm -S 1 timeout wynosi 5 sekund a nie jedną:

info hdparm:

-S     Set the standby (spindown) timeout for the drive.  This value is
             used  by  the  drive to determine how long to wait (with no disk
             activity) before turning off the spindle motor  to  save  power.
             Under  such circumstances, the drive may take as long as 30 sec-
             onds to respond to a subsequent disk access, though most  drives
             are much quicker.  The encoding of the timeout value is somewhat
             peculiar.  A value of zero means "timeouts  are  disabled":  the
             device will not automatically enter standby mode.  Values from 1
             to 240 specify multiples of 5 seconds, yielding timeouts from  5
             seconds to 20 minutes.  Values from 241 to 251 specify from 1 to
             11 units of 30 minutes, yielding timeouts from 30 minutes to 5.5
             hours.   A  value  of  252  signifies a timeout of 21 minutes. A
             value of 253 sets a vendor-defined timeout period between 8  and
             12  hours, and the value 254 is reserved.  255 is interpreted as
             21 minutes plus 15 seconds.  Note that  some  older  drives  may
             have very different interpretations of these values.

teraz jest pytanie czy laptop-mode-tools zmienia te wartości czy nie?

Odnośnik do komentarza
Udostępnij na innych stronach

co do hdparm -S to chyba trzeba to nieco sprostować, przy wartości hdparm -S 1 timeout wynosi 5 sekund a nie jedną...
Laptop-mode-tools ma właśny przelicznik 1:1 (/etc/laptop-mode/laptop-mode.conf). Opis jest w porządku. Jeśli ustawiasz manualnie przez hdparm to rzeczywiście masz rację ale tylko od 1 do 240.

 

Odnośnik do komentarza
Udostępnij na innych stronach

hmmm, a mój dysk się dziwnie zachowuje, gdy mam wyłączone iksy to parkuje mi głowicę co jakieś 20 sekund może (usługa laptop mode włączona, init5)!! iksy przecież nie powinny mieć z tym żadnego związku. żeby nie było że mi się zdaje, to słyszałem częste pojedyncze klikanie z dysku i przy każdym z nich rósł licznik Load_Cycle_Count w smartctl ...

no oczywiście chodzi o laptopa ;]

Odnośnik do komentarza
Udostępnij na innych stronach

1) powłączałeś LMT?

2) wskaż prawidłowo dysk czyli /dev/sda albo /dev/hda (sprawdź jak jest w fedorze np. wpisując df -H)

3) jaką masz wpisaną wartość?

ja mam tak:

#
CONTROL_HD_POWERMGMT=1


#
# Power management for HD (hdparm -B values)
#
BATT_HD_POWERMGMT=128
LM_AC_HD_POWERMGMT=254
NOLM_AC_HD_POWERMGMT=254

Odnośnik do komentarza
Udostępnij na innych stronach

CONTROL_HD_POWERMGMT=1

BATT_HD_POWERMGMT=1
LM_AC_HD_POWERMGMT=255
NOLM_AC_HD_POWERMGMT=255

lm powłączane kiedy się da, jedynie

MINIMUM_BATTERY_CHARGE_PERCENT=3

DISABLE_LAPTOP_MODE_ON_CRITICAL_BATTERY_LEVEL=1

HD="/dev/sda"

więc powinno być, pracuję na kablu, z wyciągniętą baterią

 

 

a zobaczcie ktoś czy przy wyłączonych X też wam się tak dzieje

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...