2009-10-11 17:32:47 +0000 2009-10-11 17:32:47 +0000
67
67

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

Ich habe immer wieder gesucht und kann keine Erklärung finden, was “hw:0,0” bedeutet. Wie kann ich die Nummer meiner USB-Audiokarte ermitteln? Bei MPD muss ich etwas wie folgt eingeben:

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

Wenn ich “alsamixer -c 1” ausführe, öffnet sich der Lautstärkeregler der USB-Karte, aber das hilft mir nicht wirklich weiter.

Wo kann ich eine Liste der Gerätenamen/-nummern auf meinem System finden? Sind sie resistent gegen Hardware-Änderungen? Wenn ich Karte 2 entferne, wird dann Karte 3 zu Karte 2? Gibt es andere Möglichkeiten, Geräte zu identifizieren? Wo kann ich Dokumentation zu all diesen Dingen finden?

Antworten (2)

53
53
53
2009-10-11 18:12:29 +0000

Die Antwort von JohnT bietet eine gute Grundlage. Ich schließe daran an, wie Sie die Geräte auf Ihrem System finden. Verwenden Sie “aplay -l”, um eine Liste der Geräte auf Ihrem System zu erhalten. Das hw:X,Y kommt 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 um USB-Geräte handelt, die möglicherweise nicht jedes Mal die gleiche Gerätenummer erhalten, wenn sie eingesteckt werden, kann sich das hw:X,Y-Gerät ändern. Die einfachste Antwort ist, für ein Desktop-System, die GNOME/KDE/Xfce-Konfigurationswerkzeuge auszuprobieren und zu sehen, ob sie intelligent genug sind, die Änderungen zu erkennen.

Der komplexe Weg, wenn Sie das nicht mit einem Desktop-System machen, wird … interessant. Sie können vielleicht mit der Verwendung von Geräte-Alias anstelle von “hw:X,Y” auskommen – das ist es, was die Ausgabe von “aplay -L” zeigt. Das “something:CARD=FOO,DEV=Y”-Zeug ist der Alias und wird sich wahrscheinlich nicht zwischen verschiedenen Geräte-Plug-ins ändern, während das X in “hw:X,Y” es könnte. (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 zu “aplay -D front:CARD=CK804,DEV=0 somefile.wav”, und Sie können denselben Gerätenamen in Ihrer .asoundrc verwenden.


Wenn Sie etwas Stabileres auf einer noch niedrigeren Ebene benötigen, nämlich tatsächliche Kernel-Geräte, ist udev das, was Sie wollen – es ist das System, das das Hotplugging von Geräten in das System erlaubt. Sie können Regeln für udev schreiben (und hier ist die Manpage ), die es erlauben, dass Geräte den gleichen Gerätenamen erhalten, wenn sie eingesteckt werden.

19
19
19
2009-10-11 17:40:05 +0000

hw:0,0 gibt das Standardgerät auf der Standard-Soundkarte an. Um auf das erste Gerät Ihrer zweiten Soundkarte zuzugreifen, würden Sie hw:1,0 angeben. Diese werden in Ihrem .asoundrc angegeben. Mehr zu all dem hier .

Verwandte Fragen

6
10
10
5
8