High Definition Audio und das „Anschluss-Sharing“

Wer ein halbwegs modernes Board sein eigenen nennt (ich zb ein AT3IONT, wie der name schon sagt, mit ION-Chipsatz) wird zwangsweise mit einer HDA – Karte (bei mir Realtek ALC 887) konfrontiert, die mehr Kanäle zur verfügung stellt, als sie Anschlüsse hat. In meinem fall 8 Kanäle (7.1) bei nur 5 Anschlüssen wovon 2 "eigendlich" nur Duplikate der Anschlüsse auf dem Board sind, die über eine Audio-Panel rausgeführt werden. Ergo hat man 3 Anschlüsse, davon einer als standart Stereo Output. Der Trick der Herrsteller ist, dass alle Anschlüsse je nach Kanal-Config anders belegt werden. Geht man auf 8 Kanal-Sound hoch, kann man kein Micro mehr anschließen und die Front-Buchse für den dezenten Kopfhörereinsatzt ist auch dahin. Das alles wird dann auf die 8 Kanale gemappt.

Startet man ins Linux werden einem auch nur diese drei Anschlüsse zur Verfügung gestellt, ergo Stereo-Sound. Man muss dem "hda_intel"-Treiber (darunter werden wohl alle Karten die sich HDA schimpfen) ein bisschen unter die Arme greifen. Den grund findet man hier. Was in der Beschreibung ein wenig unter geht, ist der umstand, dass man nicht unbedingt den "richtigen" Modulname erwischen muss. Zumindestens bei meinem ION-Board kann ich die soundkarte mit 6 verschieden Configs ansprechen:

  1. 3stack – normaler stereo sound
  2. 3stack-digout – normaler stereo Sound, SPDIF verfügbar (hab ich aber nicht testen können, da ich noch kein SPDIF Receiver hab)
  3. 3stack-2ch – normaler stereo sound
  4. 3stack-2ch-digout – das selbe wie oben
  5. 3stack-6ch – 5.1 sound über alle 3 hinteren Klinke-Anschlüsse
  6. 3stack-6ch-digout -5.1 und SPIDF verfügbar

Was nun fehlt sind eigendlich 4stack-8ch und 3stack-4ch. Auch wenn es nicht ganz korrekt ist, kann man so die Konfig bestimmen, mit der man seine Soundkrarte ansteuert.

Die Konfig muss in eine config-Datei unter /etc/modprobe.d geschrieben werden. Entweder nimmt man dazu eine bestehende oder legt eine neue an. Ich hab letzteres gemacht. Die Datei /etc/modprobe.d/alsa-hda-intel.config sieht wie folgt aus:

options snd-hda-intel model=3stack-6ch enable=1 index=0
alias snd-card-0 snd-hda-intel

Damit wird mein Soundsystem über die analogen Anschlüsse mit einem 5.1 Signal versorgt. Die Feinabmischung kann man über den alsamixer vornehmen.

Flash und „mehrere“ Soundkarten

„So bist du nicht willig….“ das waren die ersten gedanken, die ich hatte als Flash (mal wieder) unter Linux rumgezickt hat. Ich hab zwei Soundkarten im system, ist ganz praktisch eine für die Musik/Sound (5.1) und eine fürs VoiceChatten.

Letztes betreibe ich noch nicht unter linux, da es ventrilo noch nicht unter linux gibt (wird sich aber bald ändern…)

Nunja Flash bereitete mir mal wieder Probleme, so richtig und diesmal half auch kein

asoundconf list
asoundconf set-default-card 

da ich die Soundkarte im bios nicht abschalten will/kann brauchte ich einen ähnlich brutalen weg… nunja man kann durchaus auch das laden eines treibers unterdrücken (oder gleich den kernel ohne treibersupport neu bauen…)

#die geladen soundmodule auslesen
less /proc/asound/modules 
#mit dem editor der wahl das laden des treibers unterdrücken...
sudo nano /etc/modprobe.d/blacklist-oss.conf
sudo nano /etc/modprobe.d/blacklist.conf

das ist natürlich eine krücke, für das Soundsubsystem ist es nun so als ob die karte nicht existieren würde. Sobald ich unter linux die zweite karte nutzen will, mach ich dicke backen oder schmeiße Flash entgültig von der platte… nicht die schlechteste alternative