我一遍又一遍地搜索,但找不到对“hw:0,0”含义的任何解释。如何确定我的 USB 声卡的编号? MPD要求我输入如下内容:
audio_output {
type "alsa"
name "Sound Card"
device "hw:0,0" # optional
format "44100:16:2" # optional
}
Run Code Online (Sandbox Code Playgroud)
如果我执行“alsamixer -c 1”,它会打开 USB 卡的音量控制,但这对我没有帮助。
在哪里可以找到系统上的设备名称/编号列表?它们对硬件变化有弹性吗?如果我移除卡 2,卡 3 会变成卡 2 吗?还有其他方法可以识别设备吗?我在哪里可以找到有关这些的文档?
qua*_*ote 64
JohnT 的回答提供了一个很好的基础。我将跟进如何在您的系统上找到设备。使用aplay -l
让您的系统上的设备的清单。在HW:X,Y来自硬件的这种映射-在这种情况下,X是卡号码,而ÿ是设备数量。
$ 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
Run Code Online (Sandbox Code Playgroud)
由于这些 USB 设备在每次插入时可能并不总是获得相同的设备编号,因此hw:X,Y设备可能会发生变化。最简单的答案是,对于桌面系统,尝试使用 GNOME/KDE/Xfce 配置工具,看看它们是否足够聪明来接受更改。
复杂的方式,如果你不是用桌面系统来做这件事,会变得……有趣。您可能可以使用设备别名而不是hw:X,Y - 这就是aplay -L
显示的输出。的东西: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
Run Code Online (Sandbox Code Playgroud)
所以你的 aplay 命令会变成aplay -D front:CARD=CK804,DEV=0 somefile.wav
,你可以在你的 .asoundrc 中使用相同的设备名。
如果您需要在更低级别的更稳定的东西,即实际的内核设备,udev就是您想要的——它是允许将设备热插拔到系统中的系统。您可以为 udev 编写规则(这里是手册页),允许设备在插入时获得相同的设备名称。
归档时间: |
|
查看次数: |
230227 次 |
最近记录: |