Я использую Ubuntu 16.04.3 с ядром 4.4.0-113.
У меня есть две разные звуковые карты на базе XMOS на базе USB, один отлично работает и воспроизводит файлы DSD, как ожидалось. Другой работает, но не распознается как устройство XMOS, поэтому для него загружается менее идеальный драйвер.
Как его изменить, чтобы один и тот же драйвер загружался и использовался для обоих устройств? [ ! d2]
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 в соответствующий раздел в источнике ядра
../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 работать - перекомпилировать драйвер.
Нет стандарта, который позволит водителю обнаруживать устройства DSD. Каждое устройство должно быть указано в драйвере, и до сих пор никто не знал о «mDSD».
Единственный способ заставить mDSD работать - перекомпилировать драйвер.
Нет стандарта, который позволит водителю обнаруживать устройства DSD. Каждое устройство должно быть указано в драйвере, и до сих пор никто не знал о «mDSD».
Единственный способ заставить mDSD работать - перекомпилировать драйвер.