Comment puis-je basculer automatiquement vers mon casque USB lorsqu'il est branché?

10

J'utilise Funtoo Linux , un dérivé de Gentoo . Mes deux nouveaux casques USB Plantronics (un filaire, un sans fil) fonctionnent bien. J'en branche un, ALSA le remarque et si je configure manuellement une application pour l'utiliser à la place des périphériques par défaut, ce sera le cas.

Je préférerais simplement que le casque devienne mon entrée / sortie par défaut lorsqu'il est présent, et que le réglage par défaut revienne à mes haut-parleurs intégrés sinon. Comment automatiser ce type de commutateur?

HedgeMage
la source

Réponses:

4

Vous pouvez utiliser les règles udev. Pour cela, vous devrez trouver les attributs de l'appareil qui distinguent votre casque USB une fois qu'il est branché. Cela peut généralement se faire en deux étapes:

  • Exécutez udevadm monitor --udevavant de brancher l'appareil. Ensuite, branchez-le. Il y aura un tas de lignes de sortie - choisissez-en une et copiez-y le chemin de l'appareil - c'est quelque chose comme /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0.

  • Avec le casque toujours connecté, utilisez udevadm info --path=/your/device/path --attribute-walkpour trouver certains attributs qui distinguent votre appareil des autres (comme ATTR{idVendor}et ATTR{idProduct}).

Lorsque vous avez cela, vous pouvez construire une règle udev à déclencher lors de la connexion de l'appareil. Regardez les fichiers ci-dessous /etc/udev/rules.d/pour voir à quoi ils ressemblent. Celui que vous construirez probablement se terminera RUN+="some command". Notez que les identifiants ( SUBSYSTEM=, ATTRS=etc.) utilisés dans une telle ligne doivent tous provenir de la description du même périphérique - le même bloc de udevadm info --attribute-walksortie.

La deuxième partie de la tâche consiste à trouver les amixerparamètres qui correspondent à vos besoins pour chaque scénario et à les encapsuler dans une commande que vous placerez dans la RUN+=partie de la règle udev. Avec cela, je ne peux pas vous aider car je n'ai pas de matériel similaire.

rozcietrzewiacz
la source
3

Comme l'a mentionné Caleb, PulseAudio vous permet de migrer des flux d'un appareil à un autre.

Pour passer automatiquement, plutôt que manuellement pavucontrol, ajoutez le module-switch-on-connectmodule à votre configuration PulseAudio comme décrit ici:

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

John Glassmyer
la source
1
Notez également qu'il existe des outils intégrés CLI pour contrôler PA ( pacmdet pactl).
HalosGhost
2

Si vous ne l'avez pas encore, pulseaudiovous donnera ce genre de flexibilité dans une console de routage vraiment facile à utiliser appelée pavucontrol. Les périphériques préférés et de secours peuvent être définis par application et par défaut du système.

Caleb
la source
1
Et le changement de périphérique de sortie est transparent pour l'application (s'il utilise pulseausio) - vous n'avez pas besoin de redémarrer l'application pour changer de périphérique de sortie, par exemple - il est même possible de changer de périphérique de sortie pendant la lecture.
maxschlepzig
0

Je viens d'acheter un casque Plantronics et j'ai eu le même problème, il a été résolu en suivant http://alsa.opensrc.org/MultipleCards :

/etc/modprobe.d/50-alsa.confFichier modifié pour définir l'ordre par défaut:

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

J'ai également supprimé toutes les autres configurations connexes, à savoir /etc/modprobe.d/50-sound*.

J'ai vérifié le plugin / débranchez le casque et en regardant la sortie de aplay -l

Cela utilisait openSUSE 12.2 et Plantronics .Audio 655.

Isaac Uribe
la source