Ich habe eine USB-Soundkarte gekauft. Ich möchte meinen Linux-Desktop so einrichten, dass er das USB-Gerät bevorzugt, wenn es angeschlossen ist, und automatisch wechselt, wenn das Gerät (un) angeschlossen ist. Ist es möglich und wie?
Ich habe eine USB-Soundkarte gekauft. Ich möchte meinen Linux-Desktop so einrichten, dass er das USB-Gerät bevorzugt, wenn es angeschlossen ist, und automatisch wechselt, wenn das Gerät (un) angeschlossen ist. Ist es möglich und wie?
Antworten:
Finden Sie Ihre Karte mit
$ cat /proc/asound/cards
Um gültige ALSA-Kartennamen zu erhalten, verwenden Sie aplay
:
$ aplay -l
und dann erstelle /etc/asound.conf
mit folgendem:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
Ersetzen Sie "Karte 1" durch die oben angegebene Nummer oder den Namen Ihrer Karte.
Alternativ können Sie die Reihenfolge Ihrer Karten ändern, sodass Ihre USB-Karte die Karte 0 ist und ohne Bearbeitung funktioniert asound.conf
.
defaults.pcm.card 1 defaults.ctl.card 1
forum.palemoon.org/viewtopic.php?t=9661#p66016
Dies ist die Methode zur Auswahl der Standard-Soundkarte in Alsa. Sie können Alsa installieren, damit diese Methode funktioniert, wenn Sie Pulse Audio verwenden.
cat / proc / asound / modules
listet Ihre Soundmodule auf. Die Ausgabe des Befehls sieht wie folgt aus (zB):
0 snd_hda_intel
1 snd_usb_intel
Sie können ziemlich leicht verstehen, welches Ihre USB-Soundkarte von oben ist.
nano /etc/modprobe.d/alsa-base.conf
Bearbeiten Sie diese alsa-base.conf so, dass Ihre bevorzugte Karte einen Index von -2 / 0 und die andere Karte einen Index von -1 / 1 hat (bleiben Sie bei -2 und -1).
options snd_hda_intel index = -1
options snd_usb_intel index = -2
In diesem Fall ist das USB-Gerät das bevorzugte Gerät.
Wenn Sie zwei verschiedene Karten mit dem gleichen Namen aus der Ausgabe haben, wie folgt:
options snd_hda_intel
options snd_hda_intel
Setzen Sie diesen Befehl ab, um herauszufinden, welches welches ist:
Katze / proc / asound / Karten
Dann bearbeiten Sie die Module wie folgt:
options snd_hda_intel enable = 1 index = 0
options snd_hda_intel enable = 0 index = 1
Möglicherweise ist ein Neustart erforderlich. Möglicherweise müssen Sie Ihre Soundkarten manuell umschalten.
Ich konnte auch keine Ausgabe von meinem USB-Gerät erhalten. Meine cat /proc/asound/modules
Ausgabe war:
0 snd_hda_intel
1 snd_hda_intel
2 snd_usb_audio
Ich habe beide hier beschriebenen Antworten ausprobiert, was nicht geholfen hat (mit vielen Indexkombinationen und viel Neustart). Ich denke, das Problem war, dass mein USB-Gerät nach dem Booten initialisiert wurde. Wie auch immer, meine funktionierende Lösung ist es, andere 2 Audiogeräte auf die schwarze Liste zu setzen, indem sie aktualisiert wird /etc/modprobe.d/blacklist.conf
als:
blacklist snd_hda_intel
Die Antwort von Matija Nalis hat bei mir nur zur Hälfte geklappt (alsamixer hat die Voreinstellung geändert, aber andere Dinge wie aplay und firefox haben sich hartnäckig an die falsche Voreinstellung gehalten). Dieses Beispiel aus dem Debian-Wiki funktionierte für mich (auf CentOS-6-Laptops):
defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0
Um es festzuhalten: ALSA ist schlecht dokumentiert, und besonders diese sehr einfachen Dinge wie die Auswahl der zu verwendenden Karte sind viel zu schwierig. Schlimmer noch, es scheint sich zwischen den Systemen zu ändern. Außerdem habe ich das Tag "Generic_1" von aplay -l erhalten, wo es als "Karte 1" in der Liste erscheint. Andere Leute schienen es zu benutzen, also habe ich dasselbe getan ... was es bedeutet, kann ich nicht sagen.
Während Sie die Standard-Alsa-Karte ändern können, indem Sie .asoundrc oder die asound.conf des Systems bearbeiten, gibt es bei diesem Ansatz einige schwerwiegende Probleme.
Es ist zerbrechlich und erfordert einen Neustart der Anwendung.
Wenn Sie Karten im laufenden Betrieb wechseln möchten, müssen Sie einen Soundserver verwenden, der die Anwendungen von der Soundkarte korrekt abstrahiert, z. B. pulseaudio.
Hier ist eine Variante der Antworten von Matija Nalis und Tel. Das hat bei mir funktioniert:
~ / .asoundrc
defaults.pcm.!card 1
defaults.ctl.!card 1
(Odroid C0, Debian Jessie, HDMI-Audio als Karte 0 und USB-Soundkarte als Karte 1 nach aplay -l)
Hinweis: Andere Methoden haben bei mir nicht funktioniert, da / proc / asound / modules nicht existiert und es kein HDMI-Audiomodul gibt, das auf die schwarze Liste gesetzt oder auf niedrige Priorität gesetzt werden kann. Es ist in den Kernel eingebettet. Es scheint, als hätte ich den Kernel ohne HDMI-Audio-Unterstützung neu kompilieren müssen, um ihn vollständig zu deaktivieren.