Как найти vid и pid звуковой карты

Обновлено: 06.07.2024

До недавнего времени присваивание имени нескольким аудиоустройствам всегда было актуальной проблемой. В этой статье мы попытаемся разъяснить рекомендуемые способы использования и присвоения имен нескольким устройствам.

Если у вас есть несколько звуковых карт или звук на материнской плате и внешняя звуковая карта, ALSA может не использовать предпочитаемые вами устройства.

Содержание

Посмотрите, что происходит

См. раздел Устранение неполадок, чтобы воспроизвести файл и узнать, какую карту использует ALSA.

На низком уровне файлы card , modules и devices в каталоге /proc/asound показывают, как ALSA настроила себя.

Стратегия

Вы можете либо изменить пользовательский файл .asoundrc, чтобы сообщить ALSA о предпочтениях пользователя в отношении карт, либо изменить способ загрузки модулей и драйверов ALSA.

Понимание /etc/modprobe.d/alsa.conf

/etc/modprobe.d/alsa.conf (или /etc/modprobe.d/alsa-base.conf или аналогичный) — это основной файл конфигурации ALSA в большинстве систем Linux. Его синтаксис, а также все опции и параметры описаны в /usr/src/linux/Documentation/sound/alsa/ALSA-Configuration.txt. Если у вас нет исходных кодов ядра, вы найдете этот файл с документацией пакета alsa-driver.

Для изменения этого файла вам потребуются права root; один из способов — ставить перед каждой командой префикс sudo . После изменения файла конфигурации вам необходимо перезагрузить компьютер, чтобы увидеть эффект; вы можете просмотреть эффект, перезапустив ALSA с помощью такой команды, как (как root)

структура alsa.conf

Содержимое alsa.conf можно разделить на несколько разделов.

Это загрузит основной модуль ALSA, а также модуль для Audiophile 192. При наличии более одной карты добавьте строку для каждой карты. (Даже веб-камера с микрофоном является звуковой картой для ALSA.)

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

Это определит 2 звуковые карты USB, первая с index=1, vid=0x0ccd и pid=0x0028; второй с index=2, vid=0x0d8c и pid=0x000c.

Это загрузит основные псевдонимы и модули для эмуляции OSS. Добавьте по одной строке sound-slot-n для каждой последующей карты.

Это загрузит псевдонимы для первой звуковой карты.

Каждая последующая карточка должна иметь что-то вроде следующего:

Проблемы с alsa.conf и udev

В современных системах GNU/Linux udev занимается обнаружением оборудования и загрузкой/выгрузкой Alsa. У udev есть один недостаток. Udev будет загружать модули Alsa в неопределенном порядке. После каждой перезагрузки или подключения/отключения устройства нет гарантии, что устройство будет переименовано с использованием тех же номеров hw:x,y. Например, если в вашей системе есть два USB-устройства, например, Audeon USB и Edirol UA-25, после каждой перезагрузки одна карта может быть «hw:0,0», а другая — «hw:1,0». , каждый раз случайным образом.

/etc/init.d/alsasound — это оболочка udev, которая позаботится о загрузке модулей ALSA во время загрузки. Но даже при этом могут возникнуть некоторые проблемы.

Переупорядочивание драйвера для определенной карты

Вы можете указать файлу /etc/modprobe.d/alsa.conf (или alsa-base.conf или аналогичному), чтобы драйвер оставался вне слота по умолчанию. Например, если у вас есть звуковая карта Creative Labs, управляемая драйвером "emu10k1", и вы не хотите, чтобы она была вашей картой по умолчанию 0, добавьте

Обратите внимание на запятую в этой строке, которая перемещает драйвер во второй слот.

Проблемы с заказом модулей

Возможно, после загрузки, но работы (от root) порядок звуковых карт неправильный

выдает требуемый порядок карт.

Это может произойти из-за того, что udev загружает звуковой драйвер раньше, чем alsaound, и alsaound путается. При перезапуске сначала будут выгружены все звуковые модули, а при перезапуске alsaound будет работать как положено.

Решение состоит в том, чтобы добавить в черный список модули, которые udev загружает перед alsasound (как правило, тот, который вы получаете как звуковую карту 0 после загрузки). Вы должны сделать это в

Вы также должны сообщить об ошибке в своем дистрибутиве.

Понимание именования Alsa

Одно устройство

Изначально Alsa могла называть аудиоустройство только с использованием синтаксиса hw:x,y, где x и y — числа.

Например, если установлено только одно устройство, в большинстве случаев оно должно называться hw:0,0 . Если имеется только одно устройство, оно всегда должно иметь одно и то же имя и номер.

Несколько устройств

Запуск aplay -l отображает список аппаратных устройств ВОСПРОИЗВЕДЕНИЯ. Например, в моей системе:

В этом примере аудиоустройства называются "UA25" и "Audio".

Примеры команд и параметров для выбора звуковых карт:

Параметры примечания: -d устройство | device_alias -- см. описания опций в man aplay и man alsaplayer.

  • Эти две команды воспроизводят ogg на карте 0 -- карте ens1371:

Как выбрать определенный порядок для нескольких установленных карт

Какая карта имеет номер карты 0, 1 и, следовательно, по умолчанию определяется порядком загрузки модуля. Это особенно полезно для выбора карты, которая будет использоваться по умолчанию.

Поэтому теоретически можно выбрать, какая из нескольких установленных карт станет картой 0, картой по умолчанию, гарантируя, что ее модуль драйвера будет загружен первым. (Примечание: предполагается, что для каждой звуковой карты требуется отдельный драйвер. Если у вас две звуковые карты одного типа, перейдите к следующему разделу.)

Для этого есть два способа: "старая" опция index= модуля драйвера карты и альтернативная (и новая) опция slots= модуля snd.

Старые «индексные слоты ?title=ALSA-Configuration.txt&action=edit&redlink=1» title="ALSA-Configuration.txt (страница не существует)">ALSA-Configuration.txt. Параметр слотов особенно полезен для избегая возможного горячего подключения и возникающего в результате конфликта слотов. Например, в приведенном выше случае первые два слота уже зарезервированы. Если любой другой драйвер (например, snd-usb-audio) загружается до snd-interwave или snd-ens1371, он будет назначен на третий или более поздний слот.

Заказ нескольких карточек одного типа

Если у вас есть более одной звуковой карты, использующей одни и те же модули, вы можете определить порядок карт. Это можно сделать, указав параметры index и ID для загружаемого модуля. Например,

Это определит 2 звуковые карты USB, первая с index=1, vid=0x0ccd и pid=0x0028; второй с index=2, vid=0x0d8c и pid=0x000c. vid и pid здесь были обнаружены с помощью lsusb .

Документация может быть не совсем актуальной и неполной. Команда

показывает текущий список всех параметров загружаемого модуля.

В этом случае можно использовать параметры pid и vid из lsusb. См. несколько USB-аудиоустройств

Но рассмотрим это устройство PCI,

В этом случае параметр, который можно использовать для определения порядка звуковых карт для нескольких звуковых карт ICE1724, отсутствует. Я не вижу другого пути, кроме как с конкретным правилом udev. См. Удев.

Почему этот код не работает при использовании более новых версий ALSA?

Синтаксис параметров модуля изменился. Теперь вам нужно написать все параметры без начального snd_. Пример: только index=0 вместо snd_index=0 .

Некоторые примеры конфигураций

Загрузка модулей ядра для нескольких карт

Фрэнк Баркнехт предложил этот пример конфигурации с двумя картами в список рассылки alsa-devel.

См. TwoCardsAsOne, чтобы узнать, как настроить файл .asoundrc для совместного использования двух карт. Прочтите главу ниже (исправление кода).

Несколько звуковых карт — пример в Debian GNU/Linux

Строки, подобные приведенным выше примеру конфигурации нескольких звуковых карт от Фрэнка Баркнехта, должны быть наконец введены в файл конфигурации для modprobe ( /lib/modules/modprobe.conf , см. man modprobe.conf ), чтобы процесс загрузки/инициализации может использовать его. Процесс сборки конфигурации в modprobe.conf несколько отличается от дистрибутива к дистрибутиву и, возможно, также от ядер 2.4.* до 2.6.*. В Debian GNU/Linux sid/unstable и ядро 2.6.4-rc2 конфигурации компонентов, которые должны быть включены в modprobe.conf, находятся в нескольких файлах в /etc/modprobe. д:

В этой системе Debian /etc/modprobe.d/alsa является символической ссылкой на /etc/alsa/modutils/1.0, где я ввел команды для двух карт, адаптированные из книги Фрэнка Баркнехта. конфигурация выше:

После редактирования /etc/alsa/modutils/1.0 я затем запускаю в этой системе Debian /sbin/update-modules , который обновляет /lib/modules/modprobe.conf, чтобы сделать его готов к процессу загрузки/инициализации. Другие дистрибутивы GNU/Linux, вероятно, имеют аналогичную утилиту. Псевдонимы объединяются со всеми остальными, как указано в файлах в каталоге /etc/modprobe.d/. (Пожалуйста, взгляните на /lib/modules/modprobe.conf .)

Ядро должно быть настроено для сборки модулей ALSA, а также модулей для конкретных звуковых карт. В этом примере системы указанные модули для двух звуковых карт выглядят следующим образом:

После установки ядра эти модули находятся в /lib/modules/2.6.4-rc2/kernel/sound/pci/:

Можно увидеть, как эти модули соответствуют указанным выше псевдонимам, в файле /etc/alsa/modutils/1.0 .

В системе Debian GNU/Linux все модули ALSA загружаются из сценария /etc/init.d/alsa как часть инициализации системы. Выполнение lsmod покажет все модули, загруженные в вашу систему.

Выполнение aplay -l отображает список аппаратных устройств ВОСПРОИЗВЕДЕНИЯ. Файл ~/.asoundrc полезен (среди прочего) для создания удобных псевдонимов для каждой звуковой карты. Простой вариант для этой системы может выглядеть следующим образом:

Примеры команд и параметров для выбора звуковых карт:

Параметры примечания: -d устройство | device_alias -- см. описания опций в man aplay и man alsaplayer.

  • Эти две команды воспроизводят ogg на карте 0 -- карте ens1371:
  • Эти команды воспроизводят звуковые файлы на карте 1 -- карте via82xx:

Эти возможности являются результатом конфигураций, найденных в /lib/modules/modprobe.conf и ~/.asoundrc .

В качестве альтернативного метода настройки modprobe.conf сценарий оболочки /usr/sbin/alsaconf ( man alsaconf ) может работать или не работать в вашей системе. Если это так, это, вероятно, экономит немного работы; в противном случае теперь вы знаете, что делать вместо этого. alsaconf стремится настроить звуковые карты для ALSA во всех вариантах дистрибутивов GNU/Linux.

Примечание. Помните, что некоторые из конкретных примеров относятся к системе Debian GNU/Linux sid/unstable с ядром 2.6.*. Аналоги этих сценариев и файлов конфигурации можно найти в любом дистрибутиве GNU/Linux.

Несколько аудиоустройств USB

Я использую Debian SID и нашел очень простое решение: я отредактировал документ etc/modules, в котором администратор может загружать модули при загрузке. Первая запись — это карта, которую вы хотите сделать картой 0, а вторая — модули для второй карты, поэтому вы можете установить порядок загрузки модулей. Вот и все.

  • Я не уверен, что это так, потому что зависимости рассчитываются, и система МОЖЕТ загружать модули в неправильном порядке. Однако в etc/modules также можно добавлять параметры, поэтому вы можете добавить «index=n» к имени модуля.

У меня все файлы статически скомпилированы в ядро

Все мои материалы статически скомпилированы в ядро, так что есть ли способ изменить порядок моих карточек без использования модулей?

Я нашел это в списке рассылки. Это было помещено в загрузочную строку Linux (в файле конфигурации загрузчика). Я не проверяю это. Это должно настроить via8233 как первую звуковую карту, а midi-порт как вторую звуковую карту.

Ответ:

Хорошо, спасибо, это было легко. Для полноты картины вот соответствующая часть моего menu.lst (файл конфигурации grub)

У меня две карты: Creative SBLive 5.1 (snd-emu10k1) и встроенная Intel AC97 (snd-intel8x0). При этом SBLive становится card0 и AC97 card1.

Для GRUB 2 командная строка должна быть включена в /etc/default/grub (для редактирования этого файла необходимы привилегии root). Для Samsung NC10 работает следующая строка:

Затем запустите update-grub. Синтаксис кажется важным, обратите внимание на точки.

Простой способ сделать это в Ubuntu Dapper

  1. запустите sudo nano -w /etc/modprobe.d/alsa-base, чтобы отредактировать конфигурацию alsa из терминала.
  2. измените соответствующий sound-slot-[x] modprobe snd-card-[y] в соответствии с желаемым порядком. т. е. если карта 0 и карта 1 расположены в порядке, обратном желаемому, внесите следующие изменения:

Легкий способ сделать это в Ubuntu Edgy

Поскольку приведенный выше совет для Ubuntu Dapper мне не помог, я сделал следующее:

  1. запустите sudo nano -w /etc/modprobe.d/alsa-base, чтобы отредактировать конфигурацию alsa из терминала.
  2. затем я добавил в конец файла следующее, а остальное оставил без изменений:

В результате Hercules Fortissimo II (snd-cs46xx) стал звуковым адаптером по умолчанию, а встроенный NFORCE2 (snd-intel8x0) стал дополнительным звуковым адаптером.

У меня есть ключевая станция m-audio, подключенная через USB, и она зависает

Вопрос:

У меня есть ключевая станция m-audio, подключенная через usb, и она зависает при подключении во время загрузки драйверов через modprobe.conf, card0 независимо от того, как настроен индекс. что само по себе неплохо, так как aconnect -i только отображает

если это карта0. Кажется, это "известная" проблема. по крайней мере, я где-то это читал.

Проблема, с которой я столкнулся, заключается в том, что если клавиатура не подключена во время загрузки драйверов, моя звуковая карта переключается с карты1 на карту0, что делает всю конфигурацию устаревшей.

snd_index=1 или index=1 не имеет значения.

linux 2.6.17-gentoo-r4 (alsa 1.0.11rc4)

Предложение: попробуйте использовать index=-2 , это должно решить проблему.

См. также

Авторское право © 2013-2018 OpenSrc Team (AGPL-3.0)
Хостинг предоставлен RentaNet

Можно ли отредактировать PID и VID моего аудиоустройства, чтобы дать ему индивидуальное имя? Моя цель — создать индивидуальное имя для моего аудиоустройства, чтобы при использовании Roon мое аудиоустройство отображалось как пользовательское имя, которое я назначаю ему, а не стандартное имя PID и VID устройства.

Заранее спасибо!

Не уверен, откуда Roon считывает идентификаторы (или на какие из них ссылаются PID и VID), но есть те, которые даются самим оборудованием, и в /etc/asound.conf есть имена интерфейсов ALSA.Мы просто переопределяем интерфейсы «по умолчанию», но вы можете добавлять собственные записи, связанные определенным образом с определенными идентификаторами звуковой карты и устройства (целочисленными), и когда Roon использует эти идентификаторы интерфейса ALSA, которые могут быть тем, что вы хотите.

Но, возможно, у кого-то есть более глубокое понимание настройки звука, чем у меня, в общем.

Я имею в виду то, что дает само оборудование. Прошивка в аппаратном обеспечении предоставляет информацию о PID и VID для ALSA. Вот что появляется, когда я перечисляю свои аудиоустройства"

Roon отображает "Intel HDMI/DP LPE Audio". Я хотел бы изменить это имя, чтобы вместо него отображалось то, что я хочу. Возможно ли это?

Хорошо, по крайней мере, я понятия не имею, возможно ли это и как этого добиться. Кажется, что это уходит вглубь Linux, возможно, даже невозможно в пользовательской среде, но хорошо, что если вы (или кто-то другой) найдете или знаете метод в любом дистрибутиве Linux, он должен работать и на DietPi.

Вы случайно не знаете каких-нибудь гуру Linux, которые знают, что делать? Я нашел эту ссылку, но это выше моего понимания:

Если вы понимаете, что он говорит лучше меня, и можете расшифровать это в шаги, которые помогут вам это сделать, дайте мне знать.

Тем не менее, теперь идея состоит в том, чтобы сделать это с помощью правила udev при ранней загрузке, возможно, так будет лучше:

Хорошо, я попробовал это, и это не сработало по какой-то причине. Однако я обнаружил, что нужно переименовать ATTRS==, а не ATTR==. Поэтому вместо того, чтобы переименовывать мои порты HDMI, давайте попробуем использовать ЦАП USB. Я обнаружил, как получить всю подробную информацию об этом USB-ЦАП, выполнив следующую команду:

udevadm monitor --kernel --subsystem-match=sound

Тогда обнаружение USB DAC отображается как:

udevadm info -ap /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1.4/1-2.1.4:1.0/sound/card1

И получил всю подробную информацию о DAC:

просматривая устройство '//devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1.4/1-2.1.4:1.0/sound/card1':
KERNEL=="card1"
SUBSYSTEM=="sound"
DRIVER==""
ATTR=="Amplif"
ATTR=="1"< /p>

Поскольку «Усилитель для наушников Meizu HiFi DAC» — это то, что транслируется на Roon, мне нужно переименовать его. Так что нужно переименовать ATTRS, а не ATTR. Если я смогу понять, как сделать это с этим USB-ЦАП, я смогу сделать это для любого аудиоустройства.

Я также нашел эту страницу, на которой объясняется другой способ сделать это. Однако это также выше моей головы. Я пытался сделать то, что они говорят, но безуспешно.

Центр обновления Windows безуспешно пытается установить обновленный драйвер от Lifeworks, и я хотел бы узнать, какое это устройство. Описание простое:
LifeWorks Technology Group LLC — Вход — USB-устройство с интерфейсом пользователя
и моя система включает в себя множество HID-устройств. Однако, основываясь на идентификаторе поставщика, который выглядит как 062A, я нашел PID (0204) в msinfo32.
Есть много сообщений, объясняющих, как получить VID и PID устройства из диспетчера устройств.
Есть ли способ сделать обратный поиск?

Мой компьютер

Система номер один

ОС WIndows 8.1 Pro x64 Тип компьютера ПК/настольная система Производитель/модель Модернизированный процессор Fujitsu/Siemens ScaleoE Процессор Intel Core i5 Материнская плата Intel DH67BLGD Память 32 ГБ Видеокарты Встроенная звуковая карта Intel Встроенная звуковая карта Монитор(ы) Дисплеи Экран телевизора Panasonic Разрешение Блок питания 4k оригинальный Корпус Scaleo E Elonex Artisan Браузер Firefox Антивирус Защитник Windows Другая информация HTPC

Мгхи

Член

Вы можете попробовать выполнить поиск в различных базах данных в Интернете, используя VID, PID или строку оборудования устройства.

Мой компьютер

Система номер один

ОС Windows 8.1 x64 Тип компьютера Ноутбук Производитель/модель системы Lenovo G50-45 Процессор AMD A6-6310 Память 12 ГБ Монитор(ы) Дисплеи 15-дюймовый дисплей ноутбука, 32-дюймовый Samsung HDTV Скорость Интернета МЕДЛЕННАЯ (4 Мбит/с)

rsbrux

Новый участник

Это не совсем то, что я искал, но все равно спасибо. Я уже использовал некоторые веб-сайты, в том числе DeviceKB, чтобы выяснить VID и PID, но я хотел найти устройство в диспетчере устройств, чтобы удалить драйвер Windows, который блокировал установку драйвера Lifeworks. Я не считаю, что DeviceKB или Device Hunt очень полезны в этом случае, потому что идентификатор начинается с HID, а не PCI или USB.
Я большой поклонник SearchMyFiles от Nirsoft, но ничего не знал о USBDeview. Спасибо за совет.

Мой компьютер

Система номер один

ОС WIndows 8.1 Pro x64 Тип компьютера ПК/настольная система Производитель/модель Модернизированный процессор Fujitsu/Siemens ScaleoE Процессор Intel Core i5 Материнская плата Intel DH67BLGD Память 32 ГБ Видеокарты Встроенная звуковая карта Intel Встроенная звуковая карта Монитор(ы) Дисплеи Экран телевизора Panasonic Разрешение Блок питания 4k оригинальный Корпус Scaleo E Elonex Artisan Браузер Firefox Антивирус Защитник Windows Другая информация HTPC

Мгхи

Член

Извините, я не понимаю, почему вы не можете работать в обратном направлении, используя VID и PID в диспетчере устройств, это просто требует времени, и вам нужно будет использовать раскрывающийся список в свойствах и найдите устройство с информацией, которая у вас уже есть. Сведения о выбранном устройстве и раскрывающийся список свойств должны помочь. обратите внимание на многочисленные и разнообразные категории, остальное зависит от вас.

Перейдите к нижней части страницы, обратите внимание на VID и PID. Кстати, я не рекомендую ничего скачивать, я не могу ручаться за сайт, просто хотел показать вам, с чем, по-видимому, связаны ваши VID и PID — просто к вашему сведению

Мой компьютер

Система номер один

ОС Windows 8.1 x64 Тип компьютера Ноутбук Производитель/модель системы Lenovo G50-45 Процессор AMD A6-6310 Память 12 ГБ Монитор(ы) Дисплеи 15-дюймовый дисплей ноутбука, 32-дюймовый Samsung HDTV Скорость Интернета МЕДЛЕННАЯ (4 Мбит/с)

rsbrux

Новый участник

Еще раз спасибо за ответ. Я также нашел страницу, на которую вы ссылаетесь, но не проиллюстрировал клавиатуру. Я подозреваю, что драйвер является обновлением для клавиатуры RK0410 RF, которая изначально поставлялась с моим Fujitsu-Siemens Scaleo E. Windows установила свои собственные драйверы с 2006 года для всех моих HID-устройств, а предлагаемое обновление относится к 2009 году. Мой IR приемник находится на той же карте USB I/F, что и радиочастотная клавиатура, и не работал с прошлой осени, поэтому я подозреваю, что драйверы Windows затерли его, и надеюсь восстановить его работу с этим обновлением.
Как вы подразумеваете, я с подозрением отношусь к загрузке и установке драйвера из такого анонимного источника. Мне удалось найти драйвер, который Центр обновления Windows пытается установить, в каталоге Центра обновления Майкрософт, но при попытке загрузить его я получаю сообщение об ошибке:

[Номер ошибки: 8DDD0010]

Существует проблема со страницей, которую вы ищете, и она не может быть отображена.

Попробуйте следующее:
Свяжитесь с администратором веб-сайта и сообщите ему, что эта ошибка произошла для этого адреса веб-страницы.

Мой компьютер

Система номер один

ОС WIndows 8.1 Pro x64 Тип компьютера ПК/настольная система Производитель/модель Модернизированный процессор Fujitsu/Siemens ScaleoE Процессор Intel Core i5 Материнская плата Intel DH67BLGD Память 32 ГБ Видеокарты Встроенная звуковая карта Intel Встроенная звуковая карта Монитор(ы) Дисплеи Экран телевизора Panasonic Разрешение Блок питания 4k оригинальный Корпус Scaleo E Elonex Artisan Браузер Firefox Антивирус Защитник Windows Другая информация HTPC

Чтобы представить проблему, USB-устройства обычно являются внешними устройствами с возможностью горячей замены. Linux (ядро) присваивает номер каждому устройству в системе во время загрузки или позже, когда устройство подключается к системе. Этот номер (младший номер устройства) используется внутри несколькими системными (ядерными) функциями, но пользовательским приложениям обычно требуется псевдофайл, узел устройства, для открытия и доступа к устройству способом UNIX. Эти файлы, обычно находящиеся в каталоге /dev, содержат старший и младший номера, которые идентифицируют класс устройства и экземпляр каждого устройства. Проблема с устройствами с возможностью горячей замены заключается в том, что при изменении порядка подключения устройства или слота, к которому оно подключено, вы указываете другой узел /dev на это устройство. И поэтому вам нужно сообщить вашему приложению, что ваша музыка должна быть доставлена ​​в /dev/midi02 вместо /dev/midi01, как это было до вчерашнего дня. Эта проблема касается не только MIDI/аудио устройств, но и видеокамер, принтеров, флэш-накопителей и т. д.

ALSA использует внутренние идентификаторы, такие как hw:1,0 или 64:1, для идентификации устройств в приложениях вместо использования узлов устройств, но проблема остается: вы хотите сохранить постоянный идентификатор для каждого устройства, чтобы настроить приложений, но он меняется каждый день в зависимости от порядка подключения и разъема, используемого для ваших USB-аудио и MIDI-устройств.

snd-usb-аудио

Тем не менее, если вы используете ядро ​​2.4 или еще не можете использовать udev, модуль ALSA snd-usb-audio имеет функцию, которая может решить ваши проблемы. Как root, попробуйте эту команду:

У этого модуля есть несколько опций, перечисленных в строках, начинающихся с parm: . Индекс является общей опцией для каждого модуля ALSA и означает «карточный» порядок для вашего устройства. Это одна из ключевых функций, которые нам нужны. Два других — это vid и pid, что означает идентификаторы производителя и продукта, которые каждое USB-устройство показывает как атрибуты дескриптора. Вы можете получить числа с помощью следующей команды:

Номер 0763 — это идентификатор поставщика для Midiman, а 0582 — это идентификатор поставщика для Roland. Цифры после двоеточия — это идентификаторы продукта для Midisport2x2 (1110) и UM-2 (0005) соответственно. Имейте в виду, что Midisport имеет другой идентификатор продукта перед загрузкой прошивки. Нужен номер после перенумерации, когда на нем прошивка загружена и работает.

Следующий шаг — присвоить порядковый номер каждому устройству, управляемому ALSA, а не только устройствам USB. Это можно сделать в /etc/modules.conf или /etc/modprobe.conf, в зависимости от вашего поставщика Linux и версии ядра.

Предположим, что у нас есть два USB-устройства (Midisport2x2 и UM-2), одна карта PCI и нам нужен драйвер virmidi. Порядок карт будет следующим:

  1. PCI-карта
  2. USB Мидиспорт2x2
  3. USB UM-2
  4. Вирмиди

Соответствующие строки в вашем файле /etc/modules.conf будут следующими:

snd-via82xx — это модуль ALSA, содержащий драйвер для карты PCI. Присвойте ей индекс = 0, и это будет первая карта ALSA в системе. Это означает: PCM и необработанные MIDI-устройства будут называться hw:0,N , а клиент секвенсора будет иметь номер 64 , но в этом случае моя карта PCI — это VIA VT8233/A/8235 без MIDI, поэтому секвенсор номер клиента 64 будет несуществующим/неиспользуемым.

Есть две карты, использующие модуль snd-usb-audio, и им назначены индексы 1 и 2. Обратите внимание на параметры vid и pid с аргументами для Midisport2x2 и UM-2. Три параметра представляют собой массивы, содержащие до восьми элементов, разделенных запятыми. Должно быть одинаковое количество элементов для всех параметров. Будучи картами 1 и 2, Midisport2x2 будет называться hw:1 для необработанного MIDI-интерфейса, а UM-2 — как hw:2. Номера клиентов секвенсора будут 72 для Midisport2x2 и 80 для UM-2. Эти номера будут одинаковыми, независимо от порядка вилки или используемого USB-разъема. Даже если вы подключите только UM-2, а не Midisport, клиент секвенсора для него будет 80, а интерфейс raw MIDI будет hw:2 .

ПРИМЕЧАНИЕ. Если вы используете gentoo, вам нужно будет запустить modules-update после изменения файлов в /etc/modules.d .

Наконец, мы присваиваем постоянный индекс 3 очень полезной карте virmidi (snd-virmidi). Используйте следующие команды для проверки конфигурации:

Читайте также: