Jak mogę automatycznie przełączyć się na zestaw słuchawkowy USB, gdy jest podłączony?

10

Używam Funtoo Linux , pochodnej Gentoo . Moje dwa nowe zestawy słuchawkowe USB Plantronics (jeden przewodowy, drugi bezprzewodowy) działają dobrze. Podłączam jeden, ALSA to zauważa i jeśli ręcznie ustawię aplikację, aby używała go zamiast domyślnych urządzeń, zrobi to.

Wolałbym po prostu, aby zestaw słuchawkowy stał się moim domyślnym wejściem / wyjściem, gdy jest obecny, a domyślnie powróciłbym do moich głośników pokładowych w przeciwnym razie. Jak zautomatyzować ten rodzaj przełącznika?

HedgeMage
źródło

Odpowiedzi:

4

Możesz użyć reguł udev. W tym celu musisz znaleźć atrybuty urządzenia, które odróżniają zestaw słuchawkowy USB po podłączeniu. Można to zwykle zrobić w dwóch krokach:

  • Uruchom udevadm monitor --udevprzed podłączeniem urządzenia. Następnie podłącz go. Będzie kilka linii wyjściowych - po prostu wybierz jedną i skopiuj z niej ścieżkę urządzenia - to coś w stylu /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0.

  • Przy wciąż podłączonym zestawie słuchawkowym użyj, udevadm info --path=/your/device/path --attribute-walkaby znaleźć atrybuty, które odróżniają Twoje urządzenie od innych (takich jak ATTR{idVendor}i ATTR{idProduct}).

Gdy to zrobisz, możesz zbudować regułę udev, która będzie uruchamiana po podłączeniu urządzenia. Sprawdź pliki poniżej, /etc/udev/rules.d/aby zobaczyć, jak wyglądają. Ten, który prawdopodobnie będziesz budować, skończy się RUN+="some command". Należy zauważyć, że identyfikatory ( SUBSYSTEM=, ATTRS=etc.) użyte w takiej linii muszą wszystkie pochodzą z opisu tego samego urządzenia - w tym samym fragmencie udevadm info --attribute-walkwyjściu.

Druga część zadania polega na znalezieniu amixerustawień, które odpowiadają twoim potrzebom dla każdego scenariusza i zawinięciu ich w polecenie, które umieścisz w RUN+=części reguły udev. Z tym nie mogę ci pomóc, ponieważ nie mam podobnego sprzętu.

rozcietrzewiacz
źródło
3

Jak wspomniano Caleb, PulseAudio pozwala migrować strumienie z jednego urządzenia na drugie.

Aby przełączać się automatycznie, zamiast ręcznie pavucontrol, dodaj module-switch-on-connectmoduł do konfiguracji PulseAudio, jak opisano tutaj:

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

John Glassmyer
źródło
1
Należy również pamiętać, że istnieją wbudowane narzędzia CLI do kontrolowania PA ( pacmdi pactl).
HalosGhost
2

Jeśli jeszcze go nie masz, pulseaudiozapewni ci to elastyczność w naprawdę łatwej w użyciu konsoli routingu o nazwie pavucontrol. Preferowane i rezerwowe urządzenia można ustawić dla aplikacji i ustawień domyślnych systemu.

Caleb
źródło
1
A zmiana urządzenia wyjściowego jest przezroczysta dla aplikacji (jeśli używa pulseausio) - nie trzeba ponownie uruchamiać aplikacji w celu zmiany np. Urządzenia wyjściowego - możliwa jest nawet zmiana urządzeń wyjściowych podczas odtwarzania.
maxschlepzig
0

Właśnie kupiłem zestaw słuchawkowy Plantronics i miałem ten sam problem, został rozwiązany przez następujące http://alsa.opensrc.org/MultipleCards :

Edytowany /etc/modprobe.d/50-alsa.confplik, aby ustawić domyślną kolejność:

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

Usunąłem również wszystkie inne powiązane konfiguracje, a mianowicie /etc/modprobe.d/50-sound*.

Sprawdziłem wtyczkę / odłączenie zestawu słuchawkowego i patrząc na wyjście aplay -l

To było przy użyciu openSUSE 12.2 i Plantronics .Audio 655.

Izaak Uribe
źródło