Ответ ДжонТа дает хорошие основы. Я прослежу, как найти устройства в вашей системе. Используйте “aplay -l”, чтобы получить список устройств в вашей системе. hw:X,Y происходит от этого отображения вашего оборудования - в данном случае, X - это номер карты, в то время как Y - это номер устройства.
$ 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
Поскольку это USB-устройства, которые не всегда получают одинаковые номера устройств при каждом подключении, устройство hw:X,Y может измениться. Самый простой ответ, для настольной системы, попробуйте инструменты настройки GNOME/KDE/Xfce, и посмотрите, достаточно ли они умны, чтобы уловить изменения.
Сложный способ, если вы не делаете этого с настольной системой, становится … интересным. Возможно, вам сойдет с рук использование псевдонимов device вместо “hw:X,Y” – это то, что показывает вывод “aplay -L”. Вещи “something:CARD=FOO,DEV=Y” - это псевдоним, и, вероятно, не будет меняться между различными плагинами устройств, где X в “hw:X,Y” может быть. (Предполагая, что вы используете один и тот же USB ключ каждый раз.)
$ 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
Так что ваша команда aplay станет “aplay -D front:CARD=CK804,DEV=0 somefile.wav”, и вы можете использовать одно и то же имя устройства в вашем .asoundrc.
Если вам нужно что-то более стабильное на еще более низком уровне, реальные устройства ядра, udev это то, что вы хотите - это система, которая позволяет горячее подключение устройств в систему. Вы можете написать правила для udev (и вот страница man ), которые позволят устройствам получать одно и то же имя устройства при подключении.