Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Alsa: Hotplug USB-Soundkarten
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
DarkSpir
Tux's lil' helper
Tux's lil' helper


Joined: 04 Feb 2005
Posts: 117

PostPosted: Mon Jan 30, 2012 3:57 pm    Post subject: Alsa: Hotplug USB-Soundkarten Reply with quote

Hi alle zusammen,

kennt sich jemand mit den Möglichkeiten von asound.conf von Alsa aus? Ich habe in meinem Laptop mehrere Soundkarten: Onboard-Soundkarte, Webcam (nur Mikro), Logitech USB-Boxen (nur Wiedergabe), Plantronics USB-Headset (Mikro und Wiedergabe, dafür nur 16kHz und 16 Bit). Naja, okay, das Mikro der Webcam benutze ich nicht, insofern können wir das ignorieren.

Was ich gemacht habe: Ich habe drei asound.conf-Dateien erstellt, in einer ist die Intel-Onboard die Default-Karte, in einer ist der Logitech-Kram Default-Karte und in der Dritten das Plantronics-Headset. Mein /etc/asound.conf ist ein Symlink, dass generell erst mal auf die Intel-Datei zeigt.

Ich habe Udev-Regeln gemacht, die beim Einstecken eines der USB-Geräte den Symlink auf die passende asound.conf umbiegt. Beim Abziehen wird der Symlink wieder auf die Intel-Datei gesetzt. Das funktioniert ansich ganz gut (bei Interesse poste ich auch gerne die Konfig dazu), hat aber einen entscheidenden Nachteil: Wann immer ich was hotplugge, muss ich die betroffenen Programme neu starten. Wenn xine einen Film abspielt und ich der Meinung bin, auf den Logitechboxen klingt der besser als auf den Laptoplautsprechern, muss ich die Logitechboxen anstecken und dann xine neu starten, damit dieses mitbekommt, dass in /etc/asound.conf ein anderes default-Device konfiguriert ist.

Und jetzt kommen wir zur eigentlichen Frage: Kann ich in meiner asound.conf Geräte ansprechen, die (noch) nicht existieren? In der Modulkonfiguration von snd_usb_audio habe ich per vid/pid/index-Parameter dafür gesorgt, dass jede Karte immer dasselbe device bekommt. Wenn ich also pcm.logitech { type hw; card 3; } benutze, IST das auch immer das device von den USB-Boxen.

Mein Lösungsansatz war also: Ich mache ein pcm-Alias für alle Soundkarten. Jede Soundkarte bekommt ein softvol "MasterSwitch" mit der resolution 2. Dann mach ich ein pcm.!default, dass auf ein Plugin zeigt (müsst ich jetzt googeln, aber da gibts eins!), dass die Ausgabe auf alle vier "MasterSwitch"-Softvols kopiert, von dort aus geht es dann an die eigentliche Karte weiter. Sprich: Alle Soundkarten spielen gleichzeitig den Sound ab, der von den Programmen generiert wird. Nur: Alle Soundkarten sind mit dem jeweilgen MasterSwitch gemutet, bis auf die Intel. Wenn ich jetzt die Logitech-Boxen einstöpsel, startet Udev ein Script, dass die Intel mutet und die Logitech unmutet. Ohne ein Neustart der Applikation kommt dann also der Ton aus den USB-Boxen. Und so weiter.

Die Frage: Würde das funktionieren? Oder wenn ihr das anders macht: Was ist eure Lösung?

Ich muss nämlich ehrlich sagen, dass ich die Alsa-Doku ziemlich unverständlich finde und vieles nur durch Ausprobieren herausgefunden habe. Und das pure Rumprobieren bin ich grad ziemlich leid...
Back to top
View user's profile Send private message
nightmarez
Tux's lil' helper
Tux's lil' helper


Joined: 17 May 2004
Posts: 111
Location: FSV Mainz 05 ;)

PostPosted: Mon Jan 30, 2012 4:41 pm    Post subject: Reply with quote

Hi,

ich habe am Desktop-PC eine interne Soundkarte und dazu noch ein USB-Headset, welches ja eine eigene Soundkarte darstellt. Bei mir läuft das ganze ohne Probleme mit Pulseaudio. Mit dem Programm pavucontrol kann ich bequem auswählen auf welchem Gerät der Sound ausgegeben werden soll, auch ohne Neustart der Applikation. Die Sache mit dem automatischen Mute ist dadurch allerdings nicht automatisch gelöst, aber da gibt es meines Wissens nach auch eine Alsa-Funktion für. An meinem Netbook musste ich das Model der Soundkarte in die asound.conf eintragen, danach hat er automatisch den internen Sound auf Stumm geschaltet, sobald ich einen Kopfhörer angeschlossen habe. Allgemein würde ich eher versuchen das ganze mit Pulseaudio zum laufen zu bekommen, als über udev-Regeln, aber da lass ich mich gerne belehren.
_________________
Ecce quomodo moritur iustus
Back to top
View user's profile Send private message
DarkSpir
Tux's lil' helper
Tux's lil' helper


Joined: 04 Feb 2005
Posts: 117

PostPosted: Mon Jan 30, 2012 4:51 pm    Post subject: Reply with quote

Dass ein Klinken-Headset die Boxen interne Soundkarte auf stumm stellt, wenn ich das Headset in den Kopfhöreranschluss packe, funktioniert bei mir auch. Allerdings vermute ich, dass das vom Treibermodul selbst gemacht wird und nicht über Alsa, denn das ging bei mir dann erst als ich das Modul mit dem richtigen Chipsatz-Parameter geladen habe (snd_hda_intel).

Pulseaudio... hmm, damit hatte ich die Tage mal ein bisschen rumgefummelt, fand es jetzt aber nicht so berauschend, zumal mein selbst angelesenes Wissen über ALSA bei ich sag mal 0.4 liegt und das über Pulseaudio bei 0.0 :)

Wenn ich das Soundrouting mitten in der Wiedergabe umschalten kann (und Alsa das nicht beherrscht), wird der allerdings schon wieder interessanter. Was ist denn mit Sachen wie Jack? (Also ne Alsa-Only-Lösung ist mir natürlich am Liebsten, wer sich damit auskennt: Immer her mit Wissen! :)).
Back to top
View user's profile Send private message
disi
Veteran
Veteran


Joined: 28 Nov 2003
Posts: 1354
Location: Out There ...

PostPosted: Mon Jan 30, 2012 7:13 pm    Post subject: Reply with quote

nightmarez wrote:
Hi,

ich habe am Desktop-PC eine interne Soundkarte und dazu noch ein USB-Headset, welches ja eine eigene Soundkarte darstellt. Bei mir läuft das ganze ohne Probleme mit Pulseaudio. Mit dem Programm pavucontrol kann ich bequem auswählen auf welchem Gerät der Sound ausgegeben werden soll, auch ohne Neustart der Applikation. Die Sache mit dem automatischen Mute ist dadurch allerdings nicht automatisch gelöst, aber da gibt es meines Wissens nach auch eine Alsa-Funktion für. An meinem Netbook musste ich das Model der Soundkarte in die asound.conf eintragen, danach hat er automatisch den internen Sound auf Stumm geschaltet, sobald ich einen Kopfhörer angeschlossen habe. Allgemein würde ich eher versuchen das ganze mit Pulseaudio zum laufen zu bekommen, als über udev-Regeln, aber da lass ich mich gerne belehren.


Boa danke :)
Ich habe seit ca. einem halben Jahr Logitech USB-Lautsprecher und mit pavucontrol funktionieren die auf Anhieb 8O
_________________
Gentoo on Uptime Project - Larry is a cow
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum