Como alternar para o meu fone de ouvido USB automaticamente quando ele estiver conectado?

10

Estou executando o Funtoo Linux , um derivado do Gentoo . Meus dois novos fones de ouvido USB Plantronics (um com fio e um sem fio) funcionam bem. Se eu conectar um, o ALSA notará e, se eu definir manualmente um aplicativo para usá-lo, em vez dos dispositivos padrão, ele o fará.

Eu preferiria simplesmente fazer com que o fone de ouvido se tornasse minha entrada / saída padrão, quando presente, e reverter o padrão para os alto-falantes internos. Como automatizo esse tipo de opção?

HedgeMage
fonte

Respostas:

4

Você pode usar as regras do udev. Para isso, você precisará encontrar os atributos do dispositivo que distinguem seu fone de ouvido USB depois que ele estiver conectado. Isso geralmente pode ser feito em duas etapas:

  • Execute udevadm monitor --udevantes de conectar o dispositivo. Em seguida, conecte-o. Haverá várias linhas de saída - basta escolher uma e copiar o caminho do dispositivo - é algo como /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0.

  • Com o fone de ouvido ainda conectado, use udevadm info --path=/your/device/path --attribute-walkpara encontrar alguns atributos que distinguem seu dispositivo de outros (como ATTR{idVendor}e ATTR{idProduct}).

Quando você tiver isso, poderá criar uma regra do udev a ser acionada ao conectar o dispositivo. Veja os arquivos abaixo /etc/udev/rules.d/para saber como eles são. Aquele que você provavelmente estará construindo terminará RUN+="some command". Note-se que os identificadores ( SUBSYSTEM=, ATTRS=etc.) utilizados em tal linha deve todos vêm a partir da descrição do mesmo dispositivo - o mesmo pedaço de udevadm info --attribute-walksaída.

A segunda parte da tarefa é encontrar amixerconfigurações que atendam às suas necessidades para cada cenário e agrupá-las em um comando que você colocará na RUN+=parte da regra do udev. Com isso, não posso ajudá-lo, pois não tenho hardware semelhante.

rozcietrzewiacz
fonte
3

Como Caleb mencionou, o PulseAudio permite migrar fluxos de um dispositivo para outro.

Para alternar automaticamente, em vez de manualmente pavucontrol, adicione o module-switch-on-connectmódulo à sua configuração do PulseAudio, conforme descrito aqui:

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

John Glassmyer
fonte
1
Observe também que existem ferramentas internas da CLI para controlar o PA ( pacmde pactl).
HalosGhost
2

Se você ainda não o tiver, pulseaudiooferecerá esse tipo de flexibilidade em um console de roteamento realmente fácil de usar chamado pavucontrol. Os dispositivos preferenciais e de fallback podem ser configurados por aplicativo e padrões do sistema.

Caleb
fonte
1
E a alteração do dispositivo de saída é transparente para o aplicativo (se ele usar pulseausio) - você não precisa reiniciar o aplicativo para alterar, por exemplo, o dispositivo de saída - é possível alterar os dispositivos de saída durante a reprodução.
maxschlepzig
0

Acabei de comprar um fone de ouvido Plantronics e, com o mesmo problema, ele foi resolvido seguindo http://alsa.opensrc.org/MultipleCards :

/etc/modprobe.d/50-alsa.confArquivo editado para definir a ordem padrão:

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

Eu também apaguei todas as outras configurações relacionadas, a saber /etc/modprobe.d/50-sound*.

Eu verifiquei o plug-in / desconecte o fone de ouvido e observei a saída do aplay -l

Isso estava usando o openSUSE 12.2 e o Plantronics .Audio 655.

Isaac Uribe
fonte