Как автоматически переключиться на USB-гарнитуру, когда она подключена?


10

Я использую Funtoo Linux , производную от Gentoo . Мои две новые USB-гарнитуры Plantronics (одна проводная, другая беспроводная) работают хорошо. Я подключаю один, ALSA замечает это, и если я вручную настраиваю приложение для использования его вместо устройств по умолчанию, оно будет.

Я бы предпочел, чтобы гарнитура стала моим входом / выходом по умолчанию, когда она присутствует, и в противном случае по умолчанию вернулась бы к моим встроенным динамикам. Как мне автоматизировать этот тип переключателя?

Ответы:


4

Вы можете использовать правила Udev. Для этого вам необходимо найти атрибуты устройства, которые будут отличать вашу USB-гарнитуру после ее подключения. Обычно это можно сделать в два этапа:

  • Запустите udevadm monitor --udevперед подключением устройства. Затем подключите его. Будет несколько выходных строк - просто выберите одну и скопируйте из нее путь к устройству - это что-то вроде /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0.

  • Когда гарнитура все еще подключена, используйте ее, udevadm info --path=/your/device/path --attribute-walkчтобы найти некоторые атрибуты, которые отличают ваше устройство от других (например, ATTR{idVendor}и ATTR{idProduct}).

Когда у вас есть это, вы можете создать правило udev, которое будет запускаться при подключении устройства. Посмотрите на файлы, /etc/udev/rules.d/чтобы узнать, как они выглядят. Тот, который вы, вероятно, будете строить, закончится RUN+="some command". Обратите внимание, что все идентификаторы ( SUBSYSTEM=и ATTRS=т. Д.), Используемые в такой строке, должны исходить из описания одного и того же устройства - одного и того же блока udevadm info --attribute-walkвывода.

Вторая часть задачи - найти amixerнастройки, которые соответствуют вашим потребностям для каждого сценария, и заключить их в команду, которую вы добавите в RUN+=часть правила udev. С этим я не могу вам помочь, так как у меня нет подобного оборудования.


3

Как упомянул Caleb, PulseAudio позволяет переносить потоки с одного устройства на другое.

Чтобы переключиться автоматически, а не вручную pavucontrol, добавьте module-switch-on-connectмодуль в конфигурацию PulseAudio, как описано здесь:

/ubuntu/158241/automatically-change-sound-input-output-device/158250#158250


1
Также обратите внимание, что есть встроенные инструменты CLI для управления PA ( pacmdи pactl).
HalosGhost

2

Если у вас его еще нет, pulseaudioвы получите такую ​​гибкость в действительно простой в использовании консоли маршрутизации pavucontrol. Предпочтительные и резервные устройства могут быть установлены для каждого приложения и по умолчанию системы.


1
А смена устройства вывода прозрачна для приложения (если оно использует pulseausio) - вам не нужно перезапускать приложение для смены, например, устройства вывода - можно даже менять устройства вывода во время воспроизведения.
maxschlepzig

0

Я только что купил гарнитуру Plantronics, и у меня возникла та же проблема, она была решена с помощью следующих http://alsa.opensrc.org/MultipleCards :

Отредактированный /etc/modprobe.d/50-alsa.confфайл для установки порядка по умолчанию:

options snd slots=snd-usb-audio,snd-hda-intel

Я также удалил все другие связанные конфигурации, а именно /etc/modprobe.d/50-sound*.

Я проверил плагин / отключить гарнитуру и, глядя на вывод aplay -l

Для этого использовались openSUSE 12.2 и Plantronics .Audio 655.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.