• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]Load_cycle_count nach Ruhezustand bändigen ?

halo44

Hacker
Inzwischen habe ich auch meinem Notebook, der im Grunde mein weniger genutzter Zweitrechner ist, eine SSD gegönnt.

Die eigentlich im Notebook verbaute Festplatte von immerhin 500 GB wollte ich nicht einfach irgendwo verstauben lassen und habe sie daher als weitere Festplatte in meinen Desktoprechner eingebaut. Die Platte läuft auch fast so, wie sie soll.

Allerdings hat sie als ehemalige Notebookplatte die lästige Angewohnheit zu Energiesparzwecken ihre Schreib-/Leseköpfe bei Inaktivität in die Parkposition zu bringen. Dies erhöht laufend den Load_Cycle_Count.

Beim Systemstart kann ich der Platte diese Manieren abgewöhnen, indem ich in die /etc/init.d/boot.local eintrage
Code:
hdparm -B 254 /dev/sdx
Leider hat mein Rechner diese Anweisung "vergessen", wenn ich ihn aus dem Ruhezustand (suspend to RAM) wieder aufwecke.

Dieses Aufwecken bewerkstellige ich bevorzugt über einen Klick mit der linken Maustaste, wozu ich eine udev-Regel erstellt habe, wie sie josef-wien hier einmal angeregt hat :

http://forum.linux-club.de/viewtopic.php?f=92&t=118271&p=748919&hilit=Ruhezustand+USB+wakeup#p748919

Jetzt meine Frage: kann ich die o.a. hdparm-Anweisung "irgendwie" mit in die erwähnte Regel einbauen oder muß ich hierfür eine weitere Regel definieren?

Für jede Nachhilfe bin ich dankbar.

Gruss H.
 

josef-wien

Ultimate Guru
halo44 schrieb:
über einen Klick mit der linken Maustaste, wozu ich eine udev-Regel erstellt habe
Wie sieht die Regel aus? Was steckt hinter dem Klick?

Wieso muß die Platte nach dem Ruhezustand manuell aktiviert werden? Um welche Platte (Hersteller, Typ) handelt es sich?
 
OP
H

halo44

Hacker
josef-wien schrieb:
... Wie sieht die Regel aus? Was steckt hinter dem Klick? ...
Code:
SUBSYSTEM=="input", ACTION=="add", ENV{ID_INPUT_MOUSE}=="?*", TEST=="../../../power/wakeup", ATTR{../../../power/wakeup}="enabled"
josef-wien schrieb:
... Wieso muß die Platte nach dem Ruhezustand manuell aktiviert werden? ...
Bewußt aktiviere ich sie nicht. Ich stelle nur fest, daß der Zähler für den Load_Cycle_Count nach dem Aufwecken heftig zu laufen beginnt, während sie nach dem Systemstart solange keine Parkvorgänge durchführt, wie kein Ruhezustand mit anschließendem Wecken stattgefunden hat.

josef-wien schrieb:
... Um welche Platte (Hersteller, Typ) handelt es sich?
Es handelt sich um eine 500 GB-Platte von WesternDigital WD5000BPVT Scorpio Blue.

Gruss H.
 

josef-wien

Ultimate Guru
Den hdparm-Befehl würde ich bei thaw und resume in eine Datei /etc/pm/sleep.d/01local stecken, als Muster kannst Du Dir z. B. 06autofs aus /usr/lib/pm-utils/sleep.d nehmen. Bei hibernate und suspend ist in dem Fall nichts zu tun.

Alternativ kannst Du Dich nach einer für Deine Platte passende Version des (einmal auszuführenden) DOS-Programms WDIDLE3.EXE umsehen bzw. dieses bei WD anfordern oder http://software.opensuse.org/package/idle3-tools verwenden. Ein Linux-Programm bietet WD meines Wissens nur für die "Roten" an.
 

panamajo

Guru
halo44 schrieb:
Es handelt sich um eine 500 GB-Platte von WesternDigital WD5000BPVT Scorpio Blue.
Mach dich mal auf der Website des Herstellers schlau ob die Platte diesen idle3 Timer hat (der ist bei Desktop Platten IIRC nur bei EcoGreen Platten drin, aber bei Notebook Platten ergibt Energiesparen ja immer Sinn). Wenn ja:

Die schlechte Nachricht: mit hdparm ist da nichts zu machen. Der idle3 Timer ist mal wieder ein proprietärer Quatsch, dem ist mit Standardmitteln nicht beizukommen.

Die schlechtere Nachricht: WD hat inzwischen eingesehen dass das Parken der HDD Köpfe nach 8s idle nicht immer eine gute Idee ist (vor allem nicht wenn - wie bei Linux - das Systemlog einen 15s Cache hat). Sie haben dann ein Util bereitgestellt mit dem man den Timer konfigurieren kann. Für DOS :mrgreen:

Die gute Nachricht: es gibt eine Portierung für Linux. Ein openSUSE Binary solltest du hier finden:
http://software.opensuse.org/package/idle3-tools?search_term=idle3

Wichtig: nach der Installation und dem Ändern des idle3 Timers auf einen sinnvollen Wert (z.B. 30s) musst du den Rechner _runterfahren_
Ein Reboot hilft nicht, die Änderung geht dann verloren.
 

josef-wien

Ultimate Guru
panamajo schrieb:
mit hdparm ist da nichts zu machen
Bei manchen Platten funktioniert der Parameter -J, bei der von halo44 aber offenbar nur temporär.

Ich habe bei meiner "Grünen" 2008 das Parken (entgegen der damaligen Empfehlung von WD) vollständig deaktiviert, und sie läuft nach 6 Jahren immer noch.
 

panamajo

Guru
josef-wien schrieb:
panamajo schrieb:
mit hdparm ist da nichts zu machen
Bei manchen Platten funktioniert der Parameter -J, bei der von halo44 aber offenbar nur temporär.
Naja, was hdparm liefert und was wirklich eingestellt ist können verschiedene Dinge sein.
josef-wien schrieb:
Ich habe bei meiner "Grünen" 2008 das Parken (entgegen der damaligen Empfehlung von WD) vollständig deaktiviert, und sie läuft nach 6 Jahren immer noch.
Kann aber auch gut sein dass die Platte die 6 Jahre mit dem Default Idle Wert überlebt hätte.
 
OP
H

halo44

Hacker
Ich danke Euch für die Anregungen.

Nach einigen Recherchen im Netz habe ich den Tip von josef-wien umgesetzt :
Code:
#!/bin/bash

. "${PM_FUNCTIONS}"

case "$1" in
	thaw|resume)
                hdparm -B 254 /dev/sdb
		;;
	*) exit $NA
		;;
esac

exit $?
Diese Maßnahme, eingestellt als 01local in /etc/pm/sleep.d funktioniert. Ob ich da noch unnötige, aber anscheinend nicht schädliche Zeilen aufgenommen habe, vermag ich nicht zu beurteilen.

Ich markiere das Thema mal als gelöst.

Gruss H.
 

josef-wien

Ultimate Guru
halo44 schrieb:
. "${PM_FUNCTIONS}"
Damit wird die Datei /usr/lib/pm-utils/functions eingebunden, in der verschiedene Funktionen definiert sind, die Du jetzt zwar nicht verwendest, aber wer weiß, was Dir in Zukunft noch einfällt.

halo44 schrieb:
Damit wird der Rückgabewert auf "254" gesetzt, eventuell ergibt das eine Meldung in /var/log/pm-suspend.log, da mangels Abfrage auf hibernate und suspend dieser "alles andere"-Zweig durchlaufen wird.

Die genannten Variablen sind übrigens in /usr/lib/pm-utils/pm-functions definiert.
 
OP
H

halo44

Hacker
josef-wien schrieb:
...
halo44 schrieb:
Damit wird der Rückgabewert auf "254" gesetzt, eventuell ergibt das eine Meldung in /var/log/pm-suspend.log, da mangels Abfrage auf hibernate und suspend dieser "alles andere"-Zweig durchlaufen wird ...

In /var/log/pm-suspend.log finde ich nur diese Meldung
Code:
Running hook /etc/pm/sleep.d/01local resume suspend:

/dev/sdb:
 setting Advanced Power Management level to 0xfe (254)
 APM_level	= 254

/etc/pm/sleep.d/01local resume suspend: success.
Trotzdem habe ich jetzt
Code:
*) exit 0
eingesetzt, was vermutlich nicht verkehrt ist, weil sich auch danach die Meldung in /var/log/pm-suspend.log nicht verändert hat.

Gruss H.
 
Oben