Laptop/Shutdown

Tronar

aus Überzeugung altmodisch
Hei, Leuts!

Und wieder ein neuer FreeBSD-Nutzer!
Aber momentan kämpfe ich noch mit der Einrichtung.
Folgendes Problem:

Wenn ich mit "shutdown -p now" herunterfahre, kommt die Festplatte meines Laptops mit einem häßlichen Pfeifgeräusch zum Stehen. Selbiges kenne ich sonst nur, wenn ich nach einem Systemabsturz manuell den Saft abdrehen muß.
So wie ich das sehe, wird die Platte nach dem letzten sync nicht mehr geparkt, sondern gleich ausgeschaltet. Das dürfte der Lebensdauer eher abträglich sein.
Unter Windows und Linux hat es immer funktioniert. Weiß jemand eine Lösung?
Mein Behelf ist momentan, "shutdown -h now" zu sagen, nach dem Halt einige Sekunden zu warten, bis ich es klicken höre, und dann manuell auszuschalten. Das nervt aber.

Schönen Sonntag
Tronar
 
Hi,

was ich seit ueber einem Jahr bei 2 verschiedenen Festplatten (Hitachi und Seagate) benutze, um das "boese" Geraeusch zu unterbinden, ist folgendes:

In /usr/src/sys/dev/ata/ata-disk.c habe ich ad_shutdown()
Code:
static void
ad_shutdown(device_t dev)
{
    struct ata_device *atadev = device_get_softc(dev);

    if (atadev->param.support.command2 & ATA_SUPPORT_FLUSHCACHE)
        ata_controlcmd(dev, ATA_FLUSHCACHE, 0, 0, 0);
}
um einen Befehl ergaenzet, der die Platte -sofern unterstuetzt- in den Standby-Modus schickt.
Das ganze sieht dann so aus:
Code:
static void
ad_shutdown(device_t dev)
{
    struct ata_device *atadev = device_get_softc(dev);

    if (atadev->param.support.command2 & ATA_SUPPORT_FLUSHCACHE)
        ata_controlcmd(dev, ATA_FLUSHCACHE, 0, 0, 0);

    if (atadev->param.support.command2 & (ATA_SUPPORT_APM | ATA_SUPPORT_STANDBY))
        ata_controlcmd(dev, ATA_STANDBY_IMMEDIATE, 0, 0, 0);
}
Nach einem Neubau und der Installation des Kernels war das Problem bei mir behoben. Ob das bei dir auch problemlos funktioniert kann ich natuerlich genauso wenig garantieren wie keine Schaeden an der Hardware. Da hast du als Administrator des Systems allein das volle Risiko.

teuk
 
Danke, teuk!

Mein Festplatte ist auch von Hitachi (DK23DA-40), das stimmt mich zuversichtlich. ;)

In /usr/src/sys/dev/ata/ata-disk.c habe ich ad_shutdown()
um einen Befehl ergaenzet, der die Platte -sofern unterstuetzt- in den Standby-Modus schickt.

Mit dem Kernel-Neubau warte ich noch ein wenig, bis ich das System gründlich durchkonfiguriert habe. Dann werde ich den Rat beherzigen.
Wenn ich Zeit habe, versuche ich mal, herauszufinden, wie das unter Linux gehandhabt wird (vielleicht ebenso?) und schicke ggf. einen Verbesserungsvorschlag/Bugreport an die Maintainer, falls das nicht schon von jemandem (Dir?) getan worden ist.

Gruß
Tronar
 
In 7.0-STABLE und 6.3-STABLE kann das System von Haus aus Powermanagement für (S)ATA-Platten per atacontrol(1).
 
Aber hilft das bei dem Problem? Ich denke, du spielst auf das "spindown" Feature von atacontrol(8) an.

Ich hatte damals auch erst probiert das Probem per sysutils/ataidle zu loesen, in dem ich mit dem entsprechenden ataidle Aufruf in /etc/rc.shutdown die Platte in den Standby-Mode zwinge. Mit dem Erfolg, dass die Platte kurz vor dem Shutdown auch brav in den Standby-Mode gegangen ist, um dann kurz darauf wieder aufzuwachen. Da ich das als Laie auf das ATA_FLUSHCACHE in ata_shutdown() geschoben hatte, habe ich dann dort nach einer Loesung gesucht.
Davon den Spindown-Timeout statisch so weit herunterzusetzen, dass die Platte praktisch immer im Standby-Mode ist, wenn der Rechner herunterfaehrt, wird ja auch in atacontrol(8) abgeraten. Und selbst wenn man das kurz vor dem Shutdown taete (und beim Booten natuerlich wieder rueckgaengig machte), bleibt immer noch das "ATA_FLUSHCACHE-Problem". Sofern das ueberhaupt das Problem ist. Vielleicht hatte ich es damals mit der /etc/rc.shutdown ja auch bloss in der falschen Datei stehen. Ich will mich da gerne eines Besseren belehren lassen.

teuk
 
Zurück
Oben