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


63

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

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

Wenn ich "alsamixer -c 1" mache, öffnet sich der Lautstärkeregler der USB-Karte, aber das hilft mir wirklich nicht.

Wo finde ich eine Liste der Gerätenamen / -nummern auf meinem System? Sind sie widerstandsfähig gegen Hardwareänderungen? Wenn ich Karte 2 entferne, wird Karte 3 zu Karte 2? Gibt es andere Möglichkeiten, Geräte zu identifizieren? Wo finde ich Dokumentation für irgendetwas davon?


Also, was hat am Ende funktioniert?
Quack Quijote

Der Wechsel zu PulseAudio hat funktioniert. :) Ich musste mich aber lokal einloggen und das Audio-Routing ändern. Dann habe ich entschieden, MPD saugt und aufgegeben.
Endolith

Eigentlich hat "hw: 1,0" wahrscheinlich funktioniert, aber es hieß, das Gerät sei in Gebrauch (von Pulse?). Ich habe die andere Methode nicht ausprobiert, aber hoffentlich wird dies anderen helfen.
Endolith

Antworten:


48

JohnTs Antwort gibt eine gute Grundlage. Im Anschluss werde ich erfahren, wie Sie die Geräte auf Ihrem System finden. Verwenden Sie "aplay -l", um eine Liste der Geräte in Ihrem System abzurufen. Das hw: X, Y ergibt sich aus dieser Zuordnung Ihrer Hardware. In diesem Fall ist X die Kartennummer und Y die Gerätenummer .

$ 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 bei jedem Anschließen die gleichen Gerätenummern erhalten, kann sich das hw: X, Y-Gerät ändern. Die einfachste Antwort ist, dass Sie für ein Desktop-System die GNOME / KDE / Xfce-Konfigurationstools ausprobieren und prüfen, ob sie intelligent genug sind, um die Änderungen zu übernehmen.

Der komplexe Weg, wenn Sie dies nicht mit einem Desktop-System tun, wird ... interessant. Sie könnten in der Lage sein , mit wegzukommen mit Geräte - Aliase , anstatt die „hw: X, Y“ - das ist , was die Ausgabe von „aplay -L“ zeigt. Das Zeug "something: CARD = FOO, DEV = Y" ist der Alias ​​und wird wahrscheinlich nicht zwischen verschiedenen Geräte-Plug-Ins wechseln, wo das X in "hw: X, Y" sein 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-Datei verwenden.


Wenn Sie etwas Stabileres auf einer noch niedrigeren Ebene benötigen, nämlich 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 (und hier die Manpage ) schreiben , die es Geräten ermöglichen, denselben Gerätenamen zu erhalten, wenn sie angeschlossen sind.


3
Aha! Mir wurde gesagt aplay -L, dass das nicht die gleiche Ausgabe liefert wie aplay -l. Seufzer
Endolithe

1
Wie kann man sagen , dass surround40:CARD=CK804,DEV=0ist hw:0,1? Soweit ich das beurteilen kann wird hw:0,0angegeben, dass es sich um DEV=0eine andere Konfiguration handelt (4 Kanäle statt 2 wie in front:CARD=CK804,DEV=0).
zpon

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.