¿Cómo puedo cambiar mi auricular USB automáticamente cuando está enchufado?

10

Estoy ejecutando Funtoo Linux , un derivado de Gentoo . Mis dos nuevos auriculares USB Plantronics (uno con cable y otro inalámbrico) funcionan bien. Conecto uno, ALSA lo nota, y si configuro manualmente una aplicación para usarlo en lugar de los dispositivos predeterminados, lo hará.

Prefiero simplemente que el auricular se convierta en mi entrada / salida predeterminada cuando esté presente, y que el altavoz predeterminado vuelva a mis altavoces integrados de lo contrario. ¿Cómo automatizo este tipo de interruptor?

HedgeMage
fuente

Respuestas:

4

Puedes usar las reglas de udev. Para esto, necesitará encontrar los atributos del dispositivo que distinguen sus auriculares USB una vez que están enchufados. Esto generalmente se puede hacer en dos pasos:

  • Ejecute udevadm monitor --udevantes de enchufar el dispositivo. Luego, conéctelo. Habrá un montón de líneas de salida, simplemente elija una y copie la ruta del dispositivo, es algo así /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0.

  • Con el auricular todavía conectado, úselo udevadm info --path=/your/device/path --attribute-walkpara encontrar algunos atributos que distinguen su dispositivo de otros (como ATTR{idVendor}y ATTR{idProduct}).

Cuando tenga eso, puede construir una regla udev que se active al conectar el dispositivo. Mire los archivos debajo /etc/udev/rules.d/para ver cómo se ven. El que probablemente construyas terminará con RUN+="some command". Tenga en cuenta que los identificadores ( SUBSYSTEM=, ATTRS=etc.) utilizados en dicha línea deben provenir de la descripción del mismo dispositivo, la misma porción de udevadm info --attribute-walksalida.

La segunda parte de la tarea es encontrar amixerconfiguraciones que se adapten a sus necesidades para cada escenario y envolverlas en un comando que colocará en la RUN+=parte de la regla udev. Con eso, no puedo ayudarte, ya que no tengo un hardware similar.

rozcietrzewiacz
fuente
3

Como mencionó Caleb, PulseAudio le permite migrar transmisiones de un dispositivo a otro.

Para cambiar automáticamente, en lugar de hacerlo manualmente pavucontrol, agregue el module-switch-on-connectmódulo a su configuración de PulseAudio como se describe aquí:

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

John Glassmyer
fuente
1
También tenga en cuenta que hay herramientas integradas de CLI para controlar PA ( pacmdy pactl).
HalosGhost
2

Si aún no lo tiene, pulseaudiole dará este tipo de flexibilidad en una consola de enrutamiento realmente fácil de usar llamada pavucontrol. Los dispositivos preferidos y alternativos se pueden configurar por aplicación y valores predeterminados del sistema.

Caleb
fuente
1
Y el cambio del dispositivo de salida es transparente para la aplicación (si usa pulseausio), no tiene que reiniciar la aplicación para un cambio, por ejemplo, del dispositivo de salida, incluso es posible cambiar los dispositivos de salida durante la reproducción.
maxschlepzig
0

Acabo de comprar un auricular Plantronics y tuve el mismo problema, se resolvió siguiendo http://alsa.opensrc.org/MultipleCards :

/etc/modprobe.d/50-alsa.confArchivo editado para establecer el orden predeterminado:

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

También eliminé todas las otras configuraciones relacionadas, a saber /etc/modprobe.d/50-sound*.

Verifiqué conectar / desconectar el auricular y mirar la salida de aplay -l

Esto estaba usando openSUSE 12.2 y Plantronics. Audio 655.

Isaac Uribe
fuente