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.