Pular para o conteúdo

ALSA e headsets USB: hotplugging

Dica publicada em Linux / Hardware
Luís Fernando C. Cavalheiro lcavalheiro
Hits: 5.743 Categoria: Linux Subcategoria: Hardware
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

ALSA e headsets USB: hotplugging

Ubunteiros, clicadores e respeitável público do Viva o Linux, aqui começa mais uma Dica do Dino® ensinando para todos vocês como usar as ferramentas e programas que funcionam de verdade no GNU/Linux. Hoje no palco ALSA temos uma dica para resolver um velho problema que donos de headsets USB (tipo o Microsoft LX-3000). Para quem não sabe, o ALSA não faz o hotplugging dos dispositivos USB, isto é, ele não muda a saída de som padrão automaticamente quando você espeta o USB no computador. Inspirado em muita furingagem na wiki do Arch Linux e chupinhando a dica do usuário w0ng (às vezes fica fora do ar), cheguei a uma solução para esse problema. Aos trabalhos?

1 - Procedimentos

Adicione as seguintes linhas ao arquivo /etc/udev/rules.d/00-local.rules:

# Set USB headset as default sound card when plugged in
KERNEL=="pcmC[D0-9cp]*", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k; K=$${K#pcmC}; K=$${K%%D*}; echo defaults.ctl.card $$K > /etc/asound.conf; echo defaults.pcm.card $$K >>/etc/asound.conf'"

# Restore default sound card when USB headset unplugged
KERNEL=="pcmC[D0-9cp]*", ACTION=="remove", PROGRAM="/bin/sh -c 'echo defaults.ctl.card 0 > /etc/asound.conf; echo defaults.pcm.card 0 >>/etc/asound.conf'"
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

E está pronto!

2 - Caveats

Com esse procedimento oriundo da engenharia de foguetes você já pode espetar e desespetar o fone USB à vontade que o ALSA vai mudar automaticamente o dispositivo padrão de reprodução de áudio do sistema. Entretanto, os programas que estiverem reproduzindo áudio não farão a troca do dispositivo. Será preciso reiniciar o programa para que ele reconheça o novo dispositivo padrão de reprodução de áudio.

Com isso o Dino® termina essa rapidinha com uma pergunta: foi bom pra vocês?

Atualização: sobre essa regra de udev e o Pulseaudio

Recentemente o Slackware adotou o Pulseaudio (PA para os íntimos), e eu descobri um pequeno problema. Ao espetar meu headset USB no sistema com essa regra de udev ativa, eu mandei para o espaço o arquivo /etc/asound.conf necessário para o bom funcionamento do PA. A solução foi simples: reinstalar o pacote que provê o arquivo em questão. No caso do Slackware, o alsa-lib faz esse trabalho, então um:
# slackpkg reinstall alsa-lib

Resolve o problema.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Desabilitando o UEFI e o Secure Boot na BIOS

Convertendo em massa "end-of-line" de arquivos de texto entre Windows, GNU/Linux e Mac OS

Acessando Banco do Brasil pelo Google Chrome no Fedora 17

Geração automática do menu principal para gerenciadores de janelas

openSUSE: upgrade indolor para o Leap 42.1

Placa wireless dwlg520 no Debian GNU/Linux

Drivers NVIDIA no Linux Mint MATE

Quickcam Express no Ubuntu 9.04

Instalando HP Webcam Chicony no Debian Linux

Modens Nokia CS-10, CS-15 e CS-17 disponíveis para conexão no Ubuntu 12.04/12.10

#1 Comentário enviado por Lucas_Mariano em 12/11/2015 - 20:18h
Muito bom Cavalheiro! Estou usando Arch linux, ou seja, estou usando systemd, saberia em qual arquivo eu devo colocar essas linhas?

“O mundo nunca sofrerá com a falta de maravilhas, mas apenas com a falta da capacidade de se maravilhar.” G.K. Chesterton
#2 Comentário enviado por lcavalheiro em 14/01/2016 - 20:08h
Lucas, só vi seu comentário agora. O arquivo no qual você coloca essas linhas é o mesmo.
--
Luís Fernando Carvalho Cavalheiro
Professor de Filosofia por paixão, halterocopista por gosto e moderador do VOL
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta
#3 Comentário enviado por Lucas_Mariano em 08/04/2016 - 15:25h
Só estou com um problema, funciona perfeitamente no chromium, mas não funciona no spotify e no skype. Já excluí as configurações dos dois mas eles simplesmente não aceitam o fone de ouvido. Será que o fato de eu estar usando o apulse influencia?

Contribuir com comentário

Entre na sua conta para comentar.