Was bedeuten ALSA-Geräte wie "hw: 0,0"? Wie finde ich heraus, was ich verwenden soll?

164449
endolith

Ich habe immer wieder gesucht und kann keine Erklärung finden, was "hw: 0,0" bedeutet. Wie bestimme ich die Nummer meiner USB-Audiokarte? MPD erfordert, dass ich Folgendes eingeben muss:

audio_output { type "alsa" name "Sound Card" device "hw:0,0" # optional format "44100:16:2" # optional } 

Wenn ich "alsamixer -c 1" mache, wird der Lautstärkeregler der USB-Karte geöffnet, was mir aber nicht weiterhilft.

Wo finde ich eine Liste von Gerätenamen / -nummern in meinem System? Sind sie unempfindlich gegen Hardwareänderungen? Wenn ich Karte 2 entferne, wird Karte 3 Karte 2? Gibt es andere Möglichkeiten, Geräte zu identifizieren? Wo finde ich eine Dokumentation dazu?

58
Also, was hat funktioniert? quack quixote vor 15 Jahren 0
Der Wechsel zu PulseAudio hat funktioniert, irgendwie. :) Ich musste aber lokal angemeldet sein und das Audio-Routing ändern. Dann entschied ich mich, MPD saugt und gab auf. endolith vor 15 Jahren 0
Eigentlich funktionierte "hw: 1,0" wahrscheinlich, aber es sagte, das Gerät sei in Gebrauch (von Pulse?). Ich habe die andere Methode nicht ausprobiert, aber hoffentlich wird dies anderen helfen. endolith vor 15 Jahren 0

2 Antworten auf die Frage

45
quack quixote

Die Antwort von JohnT gibt eine gute Grundlage. Ich werde dem nachgehen, wie Sie die Geräte in Ihrem System finden. Verwenden Sie "aplay -l", um eine Liste der Geräte in Ihrem System abzurufen. Das hw: X, Y stammt von dieser Zuordnung Ihrer Hardware - in diesem Fall ist X die Kartennummer, während Y die Gerätenummer ist.

$ aplay -l # note lower-case "L" option **** List of PLAYBACK Hardware Devices **** card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724 IEC958] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM] Subdevices: 3/3 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 

Da es sich hierbei um USB-Geräte handelt, die bei jedem Anschließen möglicherweise nicht immer die gleiche Gerätenummer erhalten, kann sich das hw: X, Y-Gerät ändern. Die einfachste Antwort ist, dass Sie für ein Desktopsystem die Konfigurationswerkzeuge von GNOME / KDE / Xfce ausprobieren und prüfen, ob sie intelligent genug sind, um die Änderungen zu übernehmen.

Die komplexe Art und Weise, wenn Sie dies nicht mit einem Desktop-System tun, wird ... interessant. Möglicherweise kommen Sie mit der Verwendung von Gerätealiasnamen anstelle von "hw: X, Y" in Berührung - dies zeigt die Ausgabe von "aplay -L". Das Zeug "etwas: KARTE = FOO, DEV = Y" ist der Alias ​​und wird wahrscheinlich nicht zwischen verschiedenen Geräte-Plug-Ins wechseln, wobei das X in "hw: X, Y" möglicherweise angezeigt wird. (Angenommen, Sie verwenden jedes Mal denselben USB-Dongle.)

$ aplay -L default:CARD=CK804 NVidia CK804, NVidia CK804 Default Audio Device front:CARD=CK804,DEV=0 # hw:0,0 NVidia CK804, NVidia CK804 Front speakers surround40:CARD=CK804,DEV=0 # hw:0,1 NVidia CK804, NVidia CK804 4.0 Surround output to Front and Rear speakers 

Ihr aplay-Befehl würde also "aplay -D front: CARD = CK804, DEV = 0 somefile.wav" sein, und Sie können denselben Gerätenamen in .asoundrc verwenden.


Wenn Sie etwas stabileres auf einer noch niedrigeren Ebene benötigen, echte Kernel-Geräte, ist udev genau das, was Sie wollen - es ist das System, das das Hotplugging von Geräten in das System ermöglicht. Sie können Regeln für udev schreiben (und hier ist die Manpage ), die es Geräten ermöglichen, beim Anschließen den gleichen Gerätenamen zu erhalten.

Aha! Mir wurde gesagt "aplay -L", was nicht die gleiche Ausgabe wie "aplay -l" liefert. *Seufzer* endolith vor 15 Jahren 3
Wie können Sie feststellen, dass "surround40: CARD = CK804, DEV = 0" "hw: 0,1" ist? Soweit ich das beurteilen kann, ist es "hw: 0,0", da es sich auf "DEV = 0" bezieht, jedoch in einer anderen Konfiguration (4 Kanäle anstelle von 2 wie bei "Front": CARD = CK804, DEV = 0 ") ). zpon vor 7 Jahren 1
17
John T

hw:0,0Gibt das Standardgerät auf der Standard-Soundkarte an. Um auf das erste Gerät Ihrer zweiten Soundkarte zuzugreifen, geben Sie dies an hw:1,0. Diese sind in Ihrem angegeben .asoundrc. Mehr dazu hier .

Speziell hier: http://www.alsa-project.org/main/index.php/Asoundrc#The_naming_of_PCM_devices endolith vor 15 Jahren 4