LINUX.ORG.RU

Настройка usb звукового устройства, неизвестного ALSA

 ,


0

2

Имеется китайский DAC с usb входом на чипе C-Media CM6631. Сам чип явным образом не поддерживается ALSA, однако в списке имеется DAC Asus Xonar Essence One с тем же чипом, который поддерживается полностью: http://www.alsa-project.org/main/index.php/Matrix:Vendor-Asus

Под Ubuntu 16.04 DAC работает, но только в умолчальном режиме: 16бит/48Кгерц, громкость программная. А хочется всего. Под Windows с драйверами от C-Media DAC работает в полном объёме - можно установить любые частоты дискретизации и разрядность, включить сигнальный процессор. Без драйверов от C-Media DAC работает только в режиме 16/44 с программной громкостью, и Windows не пытается искать для него драйвера - говорит, что всё ништяк, все драйвера имеются.

Вопрос: как сказать ALSA, что мой DAC - это Asus Xonar Essence One?

Напрямую девайс в плеере укажи, у тебя ALSA ресемплит. Все прекрасно работает.

громкость программная. А хочется всего.

Вот с этим, кстати, облом у тебя будет. Нет там громкости. Так что все равно программно рулить будешь.

YAR ★★★★★ ()
Последнее исправление: YAR (всего исправлений: 1)
Ответ на: комментарий от YAR

Напрямую девайс в плеере укажи, у тебя ALSA ресемплит. Все прекрасно работает.

Всё прекрасно работает - это, конечно, обнадёживает. Но. Я понимаю, что у меня «ALSA ресемплит». Вопрос - как ей сказать, чтобы она этого не делала. Разумеется, мимо ALSA никакой звук не идёт, но указать девайс в смысле ALSA - мысль хорошая. Вот например, VLS в модуле вывода alsa показывает все интерфейсы, видимые по aplay -L, и позволяет указать, каким играть. Среди них есть, например,

hw:CARD=Audio,DEV=0
    USB2.0 High-Speed True HD Audio, USB Audio
    Direct hardware device without any conversions

и, что характерно, оно им играет flac как есть, без передискретизации. Лампочки на DAC, по крайней мере, горят как надо, и на слух тоже всё в порядке. Тогда должно быть достаточно указать в /etc/asound.conf

pcm.usb-audio {
	type hw
	card Audio
}
чтобы всё по-умолчанию играло через этот интерфейс - а не тут-то было. Не работает.

GStager ()
Ответ на: комментарий от DATRAT

Можно линк на DAC?

Имеется ввиду где купить

На aliexpress, вестимо. Но я свой лет пять назад покупал, теперь таких нет. Но есть аналогичные по смыслу, только надо тщательно следить, чтобы продали то, что надо. Китайцы и хитрые, и разбираются слабо.

Я свой DAC изначально покупал под SPDIF, а usb интерфейс (это отдельная плата, и надо отдельно указать) взял потому, что в комплекте дешевле. Пока оно играло mp3 - меня режим 16/48 вполне устраивал :-)

GStager ()
Ответ на: комментарий от GStager

В других плеерах ты так же само можешь указывать в качестве устройства вывода не default у ALSA, а hw:0. Но при этом у плеера будет эксклюзивный доступ к карте, другие приложения вывести на ЦАП ничего не смогут, пока плеер запущен.

не тут-то было. Не работает.

на ctl ругается? Создай такую же секцию под него.

всё по-умолчанию играло через этот интерфейс

Если именно «по умолчанию» - тебе default нужен. Но тут уже или программная обработка (как оно у тебя сейчас есть - для работы всяких там микшеров, громкостей и т.п.), или эксклюзивный доступ. Или делать какой-то промежуточный вариант - например, разрешить софтовые примочки, но тут же ресемплить все на какую-то высокую частоту для ЦАПа.

YAR ★★★★★ ()
Последнее исправление: YAR (всего исправлений: 1)
Ответ на: комментарий от GStager

Кстати, что не так с аппаратной громкостью?

Ну, у меня ее, например, просто нет. В микшере можно только заглушить звук.

Меняй софтово, если на ЦАПе ручки нет.

YAR ★★★★★ ()
Ответ на: комментарий от YAR

В других плеерах ты так же само можешь указывать в качестве устройства вывода не default у ALSA, а hw:0. Но при этом у плеера будет эксклюзивный доступ к карте, другие приложения вывести на ЦАП ничего не смогут, пока плеер запущен.

Хех. Опять же - это не совсем так. Эксклюзивный доступ будет к устройству в смысле ALSA. Ежели карта имеет несколько независимых устройств - нивапрос играть каждым. Кроме того, может быть dmix. Софт может уметь им пользоваться. В случае CM6631 - всё это есть. По aplay -L показывается.

А вот с использованием - всё очень непонятно. Конкретно - я хочу заставить KODI играть через hw интерфейс. Конкретно в KODI руками указать это невозможно, хотя какие-то похожие настройки есть. Но - при любых манипуляциях настройками KODI играет через интерфейс sysdefault (ну, насколько я понял), который 16/48

GStager ()
Ответ на: комментарий от GStager

По aplay -L показывается.

У меня нет :(

при любых манипуляциях настройками KODI играет через интерфейс sysdefault (ну, насколько я понял), который 16/48

Попробуй просто не создавать новый девайс, а описать все желаемое в рамках default.

YAR ★★★★★ ()
Ответ на: комментарий от YAR

программная обработка (как оно у тебя сейчас есть - для работы всяких там микшеров, громкостей и т.п.)

В CM6631 есть аппаратные микшеры и громкости. Там много чего есть, только «Supports USB Audio Class 2.0 and high-speed mode with Cmedia vendor drivers» ( https://www.cmedia.com.tw/products/USB20_HIGH_SPEED/CM6631A ) Ну и что из этого китайцы подключили.

GStager ()

Дело, видимо, все же не в китайцах.

На трёх ноутбуках DAC определяется и работает искаропки. ALSA устанавливает умолчальным устройством 16/48, но в проигрывателях, в которых можно выбрать, чем играть (VLC, Deedbeaf) - выбор устройства hw приводит к проигрыванию звука с частотой дискретизации исходного файла.

Но только не на том компьютере, с которого всё началось. Там при любых установках, любых настройках ALSA и в любом проигрывателе играется 16/48 :-( Возможно, на старой плате кривой usb.

GStager ()
Ответ на: комментарий от YAR

С usb всё нормально. Никто не ругается.

dmesg | grep usb
[    0.146277] usbcore: registered new interface driver usbfs
[    0.146313] usbcore: registered new interface driver hub
[    0.146357] usbcore: registered new device driver usb
[    2.809526] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[    2.809533] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.809539] usb usb1: Product: UHCI Host Controller
[    2.809545] usb usb1: Manufacturer: Linux 4.4.0-104-generic uhci_hcd
[    2.809551] usb usb1: SerialNumber: 0000:00:1f.2
[    2.810899] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    2.810907] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.810913] usb usb2: Product: UHCI Host Controller
[    2.810919] usb usb2: Manufacturer: Linux 4.4.0-104-generic uhci_hcd
[    2.810924] usb usb2: SerialNumber: 0000:00:1f.4
[    2.949966] usb usb2-port2: hash matches
[    3.192242] usb 1-2: new full-speed USB device number 2 using uhci_hcd
[    3.354878] usb 1-2: New USB device found, idVendor=0d8c, idProduct=0319
[    3.354895] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.354902] usb 1-2: Product: USB2.0 High-Speed True HD Audio
[    3.354907] usb 1-2: Manufacturer: CMEDIA
[    3.835786] usbcore: registered new interface driver usbhid
[    3.835803] usbhid: USB HID core driver
[    4.424757] input: CMEDIA USB2.0 High-Speed True HD Audio as /devices/pci0000:00/0000:00:1f.2/usb1/1-2/1-2:1.2/0003:0D8C:0319.0001/input/input5
[    4.425861] hid-generic 0003:0D8C:0319.0001: input,hidraw0: USB HID v1.00 Device [CMEDIA USB2.0 High-Speed True HD Audio] on usb-0000:00:1f.2-2/input2
[   24.191298] usbcore: registered new interface driver snd-usb-audio
xbmc@PVR:~$ dmesg | grep usb
[    0.146277] usbcore: registered new interface driver usbfs
[    0.146313] usbcore: registered new interface driver hub
[    0.146357] usbcore: registered new device driver usb
[    2.809526] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[    2.809533] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.809539] usb usb1: Product: UHCI Host Controller
[    2.809545] usb usb1: Manufacturer: Linux 4.4.0-104-generic uhci_hcd
[    2.809551] usb usb1: SerialNumber: 0000:00:1f.2
[    2.810899] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    2.810907] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.810913] usb usb2: Product: UHCI Host Controller
[    2.810919] usb usb2: Manufacturer: Linux 4.4.0-104-generic uhci_hcd
[    2.810924] usb usb2: SerialNumber: 0000:00:1f.4
[    2.949966] usb usb2-port2: hash matches
[    3.192242] usb 1-2: new full-speed USB device number 2 using uhci_hcd
[    3.354878] usb 1-2: New USB device found, idVendor=0d8c, idProduct=0319
[    3.354895] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.354902] usb 1-2: Product: USB2.0 High-Speed True HD Audio
[    3.354907] usb 1-2: Manufacturer: CMEDIA
[    3.835786] usbcore: registered new interface driver usbhid
[    3.835803] usbhid: USB HID core driver
[    4.424757] input: CMEDIA USB2.0 High-Speed True HD Audio as /devices/pci0000:00/0000:00:1f.2/usb1/1-2/1-2:1.2/0003:0D8C:0319.0001/input/input5
[    4.425861] hid-generic 0003:0D8C:0319.0001: input,hidraw0: USB HID v1.00 Device [CMEDIA USB2.0 High-Speed True HD Audio] on usb-0000:00:1f.2-2/input2
[   24.191298] usbcore: registered new interface driver snd-usb-audio
xbmc@PVR:~$ lsusb
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0d8c:0319 C-Media Electronics, Inc. 
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Было бы странно, если бы совсем не.

GStager ()
Ответ на: комментарий от GStager
[    3.192242] usb 1-2: new full-speed USB device number 2 using uhci_hcd
[    3.354878] usb 1-2: New USB device found, idVendor=0d8c, idProduct=0319
[    3.354895] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.354902] usb 1-2: Product: USB2.0 High-Speed True HD Audio
[    3.354907] usb 1-2: Manufacturer: CMEDIA


full-speed

Это USB 1.1. При этом само по себе оно High Speed, как следует из названия.

А у меня так:


[ 7932.088072] usb 10-1: new high-speed USB device number 5 using ehci-pci
[ 7932.231230] usb 10-1: New USB device found, idVendor=0d8c, idProduct=0004
[ 7932.231242] usb 10-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7932.231250] usb 10-1: Product: USB2.0 High-Speed True HD Audio
[ 7932.231257] usb 10-1: Manufacturer: C-Media Electronics Inc.
[ 7932.260134] input: C-Media Electronics Inc. USB2.0 High-Speed True HD Audio as /devices/pci0000:00/0000:00:1d.7/usb10/10-1/10-1:1.2/input/input16
[ 7932.260668] hid-generic 0003:0D8C:0004.0006: input,hidraw0: USB HID v1.00 Device [C-Media Electronics Inc. USB2.0 High-Speed True HD Audio] on usb-0000:00:1d.7-1/input2

YAR ★★★★★ ()
Последнее исправление: YAR (всего исправлений: 1)