Da sich nun unsere Media-PCs mit der Fernbedienung (Remote Control) aus dem STR aufwecken lassen, lösen wir nun die Probleme, die mit dem Bereitschaftsmodus zu tun haben. Nach dem Suspend (Bereitschaft, S3, Suspend-to-RAM, STR) kommt es bei fast jeder Linux-Distribution, je nach Hardware, zu Problemen. Die häufigsten Probleme machen Netzwerkkarten und Soundkarten, in diesem speziellen Fall (Media-PC) auch die Fernbedienung bzw. der IR-Empfänger.
Wählt man im XBMC den Bereitschaftsmodus, so wird im Hintergrund pm-suspend (Inhalt von pm-utils) ausgeführt.
pm-utils steht für PowerManagement-Utils. Dieses Paket ist Bestandteil aller Ubuntu-Distributionen und wurde inzwischen zum Standard für den Wechsel in unterschiedliche Energiesparmodi. Aufgrund mehrerer Änderungen in den letzten Versionen des Pakets pm-utils ist nicht gewährleistet, dass alle hier genannten Pfade und Inhalte zu 100% auf jede der o.g. Ubuntu-Versionen passen. Die allermeisten Inhalte sind dennoch korrekt, allgemeingültig und in der aktuellen Ubuntu-Version zu finden.
Quelle: wiki.ubuntuusers.de – pm-utils
Netzwerk
Die meisten Probleme mit den Netzwerkkarten kann man lösen, wenn das Treiber-Modul vor dem Suspend entladen wird – beim Resume wird das Modul natürlich wieder geladen. Dieses Modul (in meinem Fall forcedeth) sollte in der /etc/pm/config.d/00sleep_module eingetragen werden.
vi /etc/pm/config.d/00sleep_module
SUSPEND_MODULES="$SUSPEND_MODULES forcedeth"
Welches Modul ihr verwendet, findet ihr mit diesem Befehl heraus.
dmesg | grep -i ethernet
[ 21.779820] forcedeth: Reverse Engineered nForce ethernet driver. Version 0.64.
Sound
Unter Arch Linux kommt diese Hook automatisch beim Installieren von pm-utils bzw. ALSA mit.
Hooks sind pm-utils-Skripte, die bei SUSPEND- und RESUME-Vorgängen abgearbeitet werden.
Quelle: wiki.ubuntuusers.de – pm-utils
vi /etc/pm/sleep.d/90alsa
#!/bin/sh # # 90alsa: suspend/wakeup ALSA devices case "$1" in hibernate|suspend) ;; thaw|resume) aplay -d 1 /dev/zero ;; *) exit $NA ;; esac
Fernbedienung / IR-Empfänger / LIRC
Für diesen Fall habe ich mir eine eigene Hook erstellt. Wie man das tut, ist im UbuntuUsers-Wiki sehr gut beschrieben.
Manchmal, nach dem Bereitschaftsmodus funktionieren einige Tasten der Harmony nicht wie gewünscht (Kernel, nicht LIRC, verarbeitet die Befehle) oder sie funktioniert garnicht mehr (IR-Empfänger empfängt keine IR-Befehle).
vi /etc/pm/sleep.d/01lirc
#!/bin/bash # # 01lirc: suspend/wakeup LIRC # by _nico - loggn.de # ############################# case "${1}" in suspend|hibernate) /etc/rc.d/lircd stop ;; resume|thaw) rmmod mceusb modprobe mceusb /etc/rc.d/lircd start echo lirc > /sys/class/rc/rc*/protocols ;; esac
Kurze Erklärung: Vor dem Suspend wird der LIRC-Dienst beendet. Beim Aufwachen (Resume) wird mein IR-Treiber (mceusb) entladen und gleich wieder geladen. Danach wird der LIRC-Dienst gestartet und nicht der Kernel – sondern LIRC – soll die IR-Befehle der MCE-Fernbedienung verarbeiten.
Fazit
Seit über einer Woche habe ich keine Probleme mehr nach dem Bereitschaftsmodus, alles funktioniert einwandfrei und ich bin glücklich. 😉
Weiterführende Links
Linux – XBMC aus Bereitschaftsmodus per MCE-Fernbedienung aufwecken
HTPC – Media Center – Logitech Harmony reagiert träge unter Windows und Linux
Linux – LIRC – XBMC mit Logitech Harmony steuern – Lircmap.xml und Keyboard.xml
Arch Linux – LIRC Konfiguration mit MCE RC6 IR und Lircmap.xml für XBMC (Logitech Harmony)
Ubuntu (alle Versionen) – LIRC Konfiguration mit MCE RC6 IR605Q (147a:e03e) und Logitech Harmony
Schreibe einen Kommentar zu Captain-DJ Antworten abbrechen