Ho comprato una scheda audio USB. Vorrei configurare il mio desktop Linux in modo che preferisca il dispositivo USB, se è collegato e cambia automaticamente quando il dispositivo è (scollegato). È possibile e come?
Ho comprato una scheda audio USB. Vorrei configurare il mio desktop Linux in modo che preferisca il dispositivo USB, se è collegato e cambia automaticamente quando il dispositivo è (scollegato). È possibile e come?
Risposte:
Trova la tua carta con
$ cat /proc/asound/cards
Per ottenere nomi di carte ALSA validi, utilizzare aplay
:
$ aplay -l
e quindi creare /etc/asound.conf
con il seguente:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
Sostituisci "carta 1" con il numero o il nome della tua carta determinato sopra.
In alternativa, puoi cambiare l'ordine delle tue carte in modo che la tua carta USB sia la carta 0 e funzionerà senza modifiche asound.conf
.
defaults.pcm.card 1 defaults.ctl.card 1
forum.palemoon.org/viewtopic.php?t=9661#p66016
questo è il metodo per selezionare la scheda audio predefinita in Alsa. Potrebbe essere necessario installare Alsa affinché questo metodo funzioni se si utilizza Pulse Audio.
cat / proc / asound / modules
elencherà i tuoi moduli sonori. L'output del comando sarà così (es.):
0 snd_hda_intel
1 snd_usb_intel
puoi facilmente capire quale sia la tua scheda audio USB dall'alto.
nano /etc/modprobe.d/alsa-base.conf
modifica questo alsa-base.conf in modo tale che la tua carta preferita abbia un indice = -2 / 0 e l'altra carta abbia un indice = -1 / 1 (mantieni con -2 e -1)
opzioni snd_hda_intel index = -1
opzioni snd_usb_intel index = -2
in questo caso si preferisce il dispositivo USB.
se hai due carte diverse con lo stesso nome dall'output, in questo modo:
opzioni snd_hda_intel
opzioni snd_hda_intel
emettere questo comando per scoprire quale è quale:
cat / proc / asound / carte
quindi modifica i moduli in questo modo:
opzioni snd_hda_intel abilita = 1 indice = 0
opzioni snd_hda_intel abilita = 0 indice = 1
potrebbe essere necessario un riavvio, quindi potrebbe essere necessario cambiare manualmente le schede audio.
Inoltre non sono riuscito a ottenere l'output dal mio dispositivo USB. La mia cat /proc/asound/modules
uscita è stata:
0 snd_hda_intel
1 snd_hda_intel
2 snd_usb_audio
Ho provato entrambe le risposte descritte qui che non sono state di aiuto (con molte combinazioni di indici e molti riavvii). Penso che il problema sia stato l'inizializzazione del mio dispositivo USB dopo l'avvio. Qualunque cosa, quindi la mia soluzione di lavoro sta inserendo nella blacklist altri 2 dispositivi audio aggiornando /etc/modprobe.d/blacklist.conf
come:
blacklist snd_hda_intel
La risposta di Matija Nalis ha funzionato solo a metà per me (alsamixer ha cambiato il valore predefinito, ma altre cose come aplay e firefox ostinatamente bloccate con il valore predefinito errato). Questo esempio del wiki debian ha funzionato per me (sul laptop CentOS-6):
defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0
Per la cronaca: ALSA è scarsamente documentata, e soprattutto questa roba molto semplice come selezionare quale carta usare è troppo difficile. Peggio ancora, sembra cambiare tra i sistemi. Inoltre, ho ottenuto quel tag "Generic_1" da aplay -l dove compare come "carta 1" nell'elenco. Altre persone sembravano usarlo, quindi ho fatto lo stesso ... cosa significa che non posso dire.
Sebbene sia possibile modificare la scheda alsa predefinita modificando .asoundrc o il sistema asound.conf, ci sono un paio di problemi significativi con questo approccio.
È fragile e richiede il riavvio dell'applicazione per essere onorato.
Se vuoi cambiare le carte al volo, devi davvero usare un sound server che astragga correttamente le applicazioni dalla scheda audio come pulseaudio.
Ecco una variante delle risposte di Matija Nalis e Tel. Questo è ciò che ha funzionato per me:
~ / .Asoundrc
defaults.pcm.!card 1
defaults.ctl.!card 1
(Odroid C0, Debian Jessie, audio HDMI come scheda 0 e scheda audio USB come scheda 1 secondo aplay -l)
Nota: altri metodi non hanno funzionato per me, dato che / proc / asound / modules non esiste e non esiste un modulo audio hdmi da inserire nella blacklist o messo a bassa priorità, è incorporato nel kernel. Sembra che avrei dovuto ricompilare il kernel senza il supporto audio HDMI per disabilitarlo completamente.