Roland Tri-Capture в Debian. Решено

Roland Tri Capture

Подключить внешнюю звуковую карту Roland Tri-Capture в Linux сложно по одной единственной причине: в интернете нет никакой информации, как это делать. Нет информации и об архитектуре, и о топологии этой карты — только хвалебные отзывы. На самом же деле проделать это «проще пареной репы» (когда знаешь grin).

Итак! Debian squeeze и ALSA

Debian — очень неблагоприятная среда для любых сторонних нововведений. А вот ALSA — наоборот. Есть в нём замечательная функция — quirks, в переводе - «уловка». С помощью этой «уловки» подключается длинный список внешних карт, в том числе множество Roland'овских и Edirol'овских, что, в принципе, одно и то же. Но Roland Tri-Capture (Roland UA-33) в этом списке нет. Вывод: надо её в список внести. Делается это путём небольших дополнений в 4 файла. Дебиановский пропатченный alsa-source для этой цели не подходит, забудьте и про module-assistant — он установит Вам только то, что прописано в alsa-base. Нужен исходник , лучше самый свежий (на сегодня — alsa-driver-1.0.25.tar.bz2).

Но прежде неплохо будет создать удобную среду управления для будущего устройства. Вот оно:

lefroff@mysqueeze:~$ dmesg

[    2.840014] usb 4-1: new full speed USB device using uhci_hcd and address 2
[ 3.025847] usb 4-1: New USB device found, idVendor=0582, idProduct=0132
[ 3.025850] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.025853] usb 4-1: Product: TRI-CAPTURE
[ 3.025855] usb 4-1: Manufacturer: Roland
[ 3.025929] usb 4-1: configuration #1 chosen from 1 choice

lefroff@mysqueeze:~$ lsusb -t
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=vend., Driver=snd-usb-audio, 12M
|__ Port 1: Dev 2, If 1, Class=vend., Driver=snd-usb-audio, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=HID, Driver=usbhid, 1.5M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
|__ Port 4: Dev 3, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 4: Dev 3, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
 

Здесь драйверы уже установлены (snd-usb-audio). До полной установки модифицированного драйвера ALSA их не будет.

Установите Пригодится.

Установите pulseaudio — это позволит Вам легко и просто манипулировать входами-выходами карт. У меня установлены:

Может быть, что-то и лишнее, но в процессе своего «исследования», я «грёб всё до кучи». Хотя, если заниматься звукозаписью, многое может пригодиться.

Теперь об установке отредактированного исходника ALSA. Как редактировать — об этом позже, поскольку вопрос несложный.

Поместите распакованный и отредактированный исходник в укромное место. Не знаю, насколько правильно, но я поместил его в /usr/src (пусть гуру не смеются, я - «чайник»). Удалите — временно — дебиановский пакет alsa-base, иначе все труды пойдут насмарку — будет установлена стандартная дебиановская конфигурация, все нужные Вам изменения в файлах будут удалены. После установки alsa-драйвера его нужно вернуть на место, потому что без него миксеры работать не будут. Ну, а теперь:

#  cd /path-to/alsa-driver-1.0.25
#  ./configure
#  make
#  make install

После этого перезагружаете компьютер, устанавливаете удалённый временно пакет alsa-base (важно!) открываете миксер — там должно быть 2 карты, встроенная и внешняя, т. е., Roland Tri-Capture, и куча возможностей их конфигурации. Никаких изменений в конфигурационные файлы в /etc/modprobe.d вносить не нужно. Созданный при установке исходника ALSA пустой файл /etc/modules.conf можно тоже оставить пустым.

Кроме самого драйвера v.1.0.25, я установил alsa-plugins-1.0.25 и alsa-oss-1.0.25. Остальное — дебиановское.

Теперь о файлах, подвергнутых изменениям:

quirks-table.h:
./alsa-driver-1.0.25/alsa-kernel/usb/quirks-table.h :
вставить в блок Roland/RolandED/Edirol/BOSS
1047 {
1048	/*
1049	 * This quirk is for Roland Tri-Capture (edited by A.Z.)
1050	 */
1051	USB_DEVICE_VENDOR_SPEC(0x0582, 0x0132),
1052	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {    
1053		.vendor_name = "Roland",
1054		.product_name = "UA-33",
1055		.ifnum = QUIRK_ANY_INTERFACE,
1056		.type = QUIRK_COMPOSITE,
1057		.data = & (const struct snd_usb_audio_quirk[]) {
1058			{
1059				.ifnum = 0,
1060				.type = QUIRK_AUDIO_ROLAND_UAXX
1061			},
1062			{
1063				.ifnum = 1,
1064				.type = QUIRK_AUDIO_ROLAND_UAXX
1065			},
1066			{
1067				.ifnum = -1
1068			}
1069		}
1070	}
1071 },

midi.c:
./alsa-driver-1.0.25/alsa-kernel/usb/midi.c 
вставить:
1553	/* Roland UA-33 */
	CONTROL_PORT(0x0582, 0x0132, 1, "%s Control"),

quirks.c:
/alsa-driver-1.0.25/alsa-kernel/usb/quirks.c
 вставить:
313		[QUIRK_AUDIO_ROLAND_UAXX] = create_uaxx_quirk,

midi.h:
./alsa-driver-1.0.25/alsa-kernel/usb/midi.h
вставить:
31  /* for QUIRK_AUDIO_ROLAND_UA33, data is NULL */

Кому лень писать, можете скачать готовый пакет.

P.S. Статья эта — результат применения метода «тыка» (метод проб и ошибок). Метод медленный, но эффективный, особенно, когда ты не программист и ничегошеньки не знаешь об устройстве, то другого ничего не остаётся.

P.P.S. Насчёт поддержки MIDI не могу ничего сказать. Информации нет а сам проверить не могу. По информации lsmod драйвер snd_usbmidi_lib при включённой Roland Tri-Capture установлен.

P.P.P.S. Обнаружил, что не описал редактирование ещё одного файла - usbaudio.h. В него надо вписать следующую строку:

87        QUIRK_AUDIO_ROLAND_UAXX,

Хорошо ещё, что в пакете, который я предлагаю для скачивания, этот файл отредактирован, а не то был бы совсем конфуз.

27 декабря 2012 г. Автор: lefro


0 0 голосование
закрыто
спасибо
за ваш голос
Если есть желание что-нибудь написать, ЖМИ: Отзывы