Das stille Erwachen — Nach dem Ruhezustand ist bei Hardy plötzlich der Ton weg.
Dieser Artikel ist erstmals erschienen im freiesMagazin 06/2008 Juni. Ausgabe 06/2008 als PDF herunterladen.
„High Definition Audio“ (HDA) ist eine Spezifikation für Audio-Chips, die 2004 von Intel eingeführt wurde. Sie sagt noch nichts weiter über den Chip selbst aus, außer, dass er gewisse Mindestanforderungen erfüllen muss. [1] Bei Gnu/Linux wird der Chip vom ALSA-Kernel-Modul „snd-hda-intel“ angesteuert. Da es sich aber bei HDA-Intel um eine ganze Reihe von Soundchips handelt, die alle nur einen gewissen Standard erfüllen müssen, und die teilweise gar nicht oder nur lückenhaft dokumentiert sind, kann es zu Problemen mit den freien Treibern kommen. Aktuell stellen viele Notebookbesitzer fest, dass sie nach dem Upgrade auf Ubuntu Hardy Heron keinen Sound mehr haben, wenn der Rechner aus dem Ruhezustand erwacht. Der Chip selbst funktioniert eigentlich problemlos, aber nur bis zu einem Power-on-Standby, Suspend-to-Ram oder Suspend-to-Disk. Danach bleibt er stumm, wird aber vom System als aktiv erkannt.
Normalerweise hört man beim Aufwachen ein leises kurzes Knacken, so wie man das auch beim Hochfahren des Rechners hören kann, was zeigt, dass der Chip am Start ist. Das fällt beim Kernel 2.6.24-16 leider weg. Mit Gutsy Gibbon lief der Sound daher noch wunderbar, seit Hardy werden die Module zwar alle geladen und „lspci“ zeigt den Soundchip auch als aktiv an, doch die Boxen bleiben stumm. Ein kleines Workaround schafft hier Abhilfe. [2]
Wenn man wissen möchte, ob im eigenen Notebook überhaupt ein HDA-Chip verbaut worden ist, dann kann man sich das mit „cat /proc/asound/cards“ anschauen:
$ cat /proc/asound/cards 0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xfc200000 irq 23
Um genau zu erfahren, um welchen Chip es sich handelt, braucht man jedoch den Befehl „aplay -l“:
$ aplay -l **** Liste von PLAYBACK Geräten **** Karte 0: Intel [HDA Intel], Gerät 0: ALC268 Analog [ALC268 Analog] Untergeordnete Geräte: 1/1 Untergeordnetes Gerät '0: subdevice #0
In meinem Acer Aspire 2920 befindet sich also der ALC268-Chip. Jetzt braucht man den Modelltyp für den „sound-hda-intel“-Treiber, den man mit
$ zless /usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz
herausfinden kann. In der Datei scrollt man solange herunter, bis man auf den Namen des Chips stößt. In meinem Fall ist das hier der relevante Eintrag:
ALC268 3stack 3-stack model toshiba Toshiba A205 acer Acer laptops dell Dell OEM laptops (Vostro 1200) zepto Zepto laptops test for testing/debugging purpose, almost all controls can adjusted. Appearing only when compiled with $CONFIG_SND_DEBUG=y auto auto-config reading BIOS (default)
Der Chip wurde demnach unter anderem in Laptops von Toshiba, Dell und Acer verbaut. Für mich ist „acer“ die wichtige Information. Der Modelltyp soll helfen, dass das Modul in Zukunft korrekt geladen wird. Folgende Zeile muss dazu in die Datei „/etc/modprobe.d/snd-hda-intel.modprobe“, die man extra zu diesem Zweck neu erstellt, und am Ende der Datei „/etc/modprobe.d/alsa-base“ eingetragen werden:
options snd-hda-intel model=acer
Wenn man die Dateien ändert, braucht man Root-Rechte. In Hardy Heron muss man seinen Lieblingseditor als Superuser mit „sudo“ starten, damit man die entsprechenden Rechte hat. Als Superuser muss man auch noch die Datei „/etc/default/acpi-support“ bearbeiten und „alsa“ an der richtigen Stelle eintragen:
# Add services to this list to stop them before suspend and restart them in # the resume process. STOP_SERVICES="alsa"
Dann den Computer neu starten und schon sollte der Sound auch nach dem Standby oder dem Ruhezustand normal funktionieren.
Links:
[1] http://de.wikipedia.org/wiki/High_Definition_Audio_Interface
[2] http://forum.ubuntuusers.de/topic/168596/?p=1413426
Geschrieben in freiesMagazin