我正在将Ubuntu 16.04.3与4.4.0-113内核一起使用。
我有两种不同的基于XMOS的USB声卡,一种可以完美工作并按预期播放DSD文件。另一个可以工作,但不能被识别为XMOS设备,因此为其加载了一个不太理想的驱动程序。
如何更改它,以便为两个设备加载和使用相同的驱动程序?
两种设备的lsusb:
具有所需驱动程序的卡:
Bus 003 Device 007: ID 20b1:000a XMOS Ltd
不太理想的驱动程序卡:
Bus 001 Device 003: ID 16d0:09dd MCS
声音的输出:
带有适当驱动程序的卡:
card 4: x20 [xCORE USB Audio 2.0], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
驱动程序不正确的卡:
card 3: mDSD [Encore mDSD], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
编辑以记录解决方案:
按照本指南,我下载了内核源代码,进行了修改和编译。
我将lsusb输出中的供应商和设备ID添加到了内核源代码中的相关部分
../sound/usb/quirks.c
具体来说,Encore mDSD的一行:
case USB_ID(0x16d0, 0x09dd): /* Encore mDSD */
case USB_ID(0x20b1, 0x000a): /* Gustard DAC-X20U */
case USB_ID(0x20b1, 0x2009): /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
case USB_ID(0x20b1, 0x2023): /* JLsounds I2SoverUSB */
case USB_ID(0x20b1, 0x3023): /* Aune X1S 32BIT/384 DSD DAC */
case USB_ID(0x2616, 0x0106): /* PS Audio NuWave DAC */
if (fp->altsetting == 3)
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
break;
然后,我编译了驱动程序,进行了安装,重新启动,并且该卡可以与本机DSD(最高DSD256)完美配合。
没有允许驱动程序检测DSD设备的标准。必须在驱动程序中列出每个设备,到目前为止,还没有人知道“ mDSD”。
使mDSD起作用的唯一方法是重新编译驱动程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句