2013-08-01 07:17:57 +0000 2013-08-01 07:17:57 +0000
37
37

Hoe kan ik Alsa automatisch een voorkeursgeluidsapparaat laten kiezen?

Ik heb een USB geluidskaart gekocht. Ik wil mijn Linux desktop zo instellen dat hij het USB apparaat prefereert als het is aangesloten en automatisch overschakelt als het apparaat wordt (ont)aangesloten. Is dat mogelijk, en hoe?

Antwoorden (6)

37
37
37
2013-08-09 17:47:31 +0000

Zoek uw kaart met

$ cat /proc/asound/cards

Om geldige ALSA kaartnamen te krijgen, gebruikt u aplay:

$ aplay -l

en maak dan /etc/asound.conf met het volgende:

pcm.!default {
    type hw
    card 1
}

ctl.!default {
    type hw           
    card 1
}

Vervang “kaart 1” door het nummer of de naam van uw hierboven bepaalde kaart.

Als alternatief kun je de volgorde van je kaarten wijzigen zodat je USB kaart kaart kaart 0 wordt en het zal werken zonder het bewerken van asound.conf.

16
16
16
2013-08-10 17:54:57 +0000

dit is de methode voor het selecteren van de standaard geluidskaart in Alsa. Als u Pulse Audio gebruikt, moet u Alsa installeren om deze methode te laten werken.

cat /proc/asound/modules

geeft een lijst van uw geluidsmodules. De uitvoer van het commando zal er als volgt uitzien (bijv.):

0 snd_hda_intel

1 snd_usb_intel

u kunt vrij gemakkelijk begrijpen welke uw usb-geluidskaart is van hierboven.

nano /etc/modprobe.d/alsa-base.conf

bewerk deze alsa-base.conf zodanig dat uw voorkeurskaart een index =-2 / 0 heeft en de andere kaart index =-1 / 1 (blijf bij -2 en -1 )

options snd_hda_intel index=-1

options snd_usb_intel index=-2

in dit geval is het usb-apparaat het voorkeursapparaat.

als u twee verschillende kaarten met dezelfde naam in de uitvoer hebt, zoals dit:

options snd_hda_intel

options snd_hda_intel

geef dit commando om uit te zoeken welke kaart welke is:

cat /proc/asound/cards

bewerk vervolgens de modules op deze manier:

options snd_hda_intel enable=1 index=0

options snd_hda_intel enable=0 index=1

een reboot kan nodig zijn.dus het kan zijn dat u uw geluidskaarten handmatig moet omwisselen.

4
4
4
2016-05-28 03:47:19 +0000

Het antwoord van Matija Nalis werkte maar half voor mij (alsamixer veranderde standaard, maar andere dingen zoals aplay en firefox hielden koppig vast aan de verkeerde standaard). Dit voorbeeld van de debian wiki werkte voor mij (op CentOS-6 laptop):

defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0

Voor de goede orde: ALSA is slecht gedocumenteerd, en vooral deze simpele dingen zoals selecteren welke kaart te gebruiken is veel te moeilijk. Erger nog, het lijkt te veranderen tussen systemen. Ik heb die “Generic_1” tag ook van aplay -l waar het als “kaart 1” in de lijst staat. Andere mensen leken het te gebruiken, dus deed ik hetzelfde… wat het betekent kan ik niet zeggen.

4
4
4
2015-12-14 23:55:48 +0000

Ik kon ook geen output krijgen van mijn USB apparaat. Mijn cat /proc/asound/modules output was:

0 snd_hda_intel

1 snd_hda_intel

2 snd_usb_audio

Ik heb beide antwoorden geprobeerd die hier beschreven staan, maar dat hielp niet (met veel index combinaties en veel herstarten). Ik denk dat het probleem mijn USB apparaat was die na het opstarten initialiseerde. Hoe dan ook, dus mijn werkende oplossing is blacklisting andere 2 geluidsapparaat door het bijwerken van /etc/modprobe.d/blacklist.conf als:

blacklist snd_hda_intel
1
1
1
2016-01-07 23:45:17 +0000

Hoewel u de standaard alsa-kaart kunt wijzigen door .asoundrc of het systeem asound.conf aan te passen, zijn er een paar belangrijke problemen met deze aanpak.

Het is kwetsbaar, en vereist applicatie herstarts om gehonoreerd te worden.

Als je tijdens het rijden van kaart wilt wisselen, dan moet je echt een geluidsserver gebruiken die de toepassingen op de juiste manier abstraheert van de geluidskaart, zoals pulseaudio.

-1
-1
-1
2016-06-24 16:47:20 +0000

Hier is een variant van Matija Nalis en Tel’s antwoorden. Dit is wat voor mij werkte:

~/.asoundrc

defaults.pcm.!card 1
defaults.ctl.!card 1

(Odroid C0, Debian Jessie, HDMI audio als kaart 0 en USB Geluidskaart als kaart 1 volgens aplay -l)

Opmerking: andere methodes werkten niet voor mij, omdat /proc/asound/modules niet bestaat en er geen hdmi audio module is om op de zwarte lijst te zetten of naar lage prioriteit te zetten, het is ingebed in de kernel. Het lijkt erop dat ik de kernel opnieuw had moeten compileren zonder hdmi audio ondersteuning om het volledig uit te schakelen.