Hallo!
Zwei komplette Tage habe ich jetzt versucht, den Rechner (Kubuntu 8.04.1) meiner Freundin nach dem Shutdown zum Ausschalten zu bringen. Er fuhr komplett runter, man hörte auch die Festplatten in Ruhestellung gehen und die Tastatur meldete sich auch ab. Das Netzteil lief aber weiter. Ein Suche hier im Forum und im WWW brachte immer die gleichen Antworten: dem Kernel acpi=force oder acpi=off oder apm=power_off mitgeben http://wiki.ubuntuusers.de/Herunterfahren.
Das half in meinem Fall aber alles nichts.
Eine ausgiebige Netzrecherche und Ausflüge über Kubuntu (fährt nicht runter), Mandriva One (auch nicht), PCLinuxOS (fährt runter, zickt aber bei der Einstellung der Bildschirmauflösung), openSuSE KDE4 (fährt runter, KDE4 macht aber größere Probleme), openSuSE GNOME (fährt runter, Freundin will aber KDE) und Debian 4.0r4 KDE (fährt nicht runter, gibt aber entscheidenden Hinweis: http://bugzilla.kernel.org/show_bug.cgi?id=7195) brachte mich dann zu folgender Lösung:
Das Problem scheint das KDE-Soundsystem in Verbindung mit einem Intel-Chipsatz (ich glaube, ich habe was von 915GL in den vielen Listings gelesen) zu sein. Unter Debian waren es die Module snd_hda_intel und snd_hda_codec. Die bringen das ACPI wohl so durcheinander, dass es den Rechner nicht ausschalten kann. Unter Kubuntu wurde allerdings nur snd_hda_intel geladen. Ich habe dann den Tip unter http://bugzilla.kernel.org/show_bug.cgi?id=7195 angewendet und ein Script geschrieben, welches beim Runterfahren dieses Modul zwangsentfernt. Dann schaltet sich der Rechner tatsächlich aus!
Schritt 1 - Schauen, ob snd_hda_intel geladen ist. In der Konsole eingeben:
lsmod | grep snd_hda_intel
Schritt 2 - Mal probeweise das Modul entfernen. Also wieder Konsole:
sudo rmmod -f snd_hda_intel
Probeweise runterfahren. Wenn das funktioniert, kommt
Schritt 3 - Script erstellen Das Script muss in /etc/init.d/ abgelegt werden. Von dort aus wird es später verlinkt. Also habe ich mit unter KDE mit Alt+F2 die Befehlseingabe gestartet und dann mit
kdesu konqueror /etc/init.d/
das Verzeichnis geöffnet. Hier mit dem Rechtsklick eine neue Datei, z.B. intelaudio anlegen und diese Datei mit einem Editor (kate, kwrite...) bearbeiten. In diese Datei muss folgendes rein:
#!/bin/sh rmmod -f snd_hda_intel exit 0
Speichern und mit einem Rechtklick → "Eigenschaften" das Script noch ausführbar machen. Das Script macht also nichts anderes, als das Modul mit Gewalt zu entladen und sich zu beenden.
Schritt 4 - Dem System klarmachen, dass das Script beim Shutdown laufen soll. Hierfür gibt es das Programm "update-rc.d", das die Scripts aus /etc/init.d/ in die jeweiligen Runlevel-Verzeichnisse (/etc/rc0.d/ bis /etc/rcS.d/) verlinkt und ihnen einen Platz in der Ausführungsreihenfolge zuweist. Mit
sudo update-rc.d intelaudio start 51 0 6 .
wird das Script "intelaudio" auf Platz 51 in den Runlevels 0 und 6 (Shutdown und Reboot) gestartet. Der Punkt am Ende ist wichtig!
Und bevor ich es vergesse: Dem Kernel wird nichts mitgegeben, also kein acpi=off, apm=on oder Ähnliches.
So sollte es klappen! Hat es zumindest bei mir...