How to select the right soundcard using ALSA
I installed Gentoo on my old media computer a few weeks ago. I use the computer with an internal soundcard called Asus Xonar DX a card that has always worked well and out of the box with Linux.
The only issue I ever encountered in regards to using an internal sound card was with ALSA getting confused and not knowing which card to use. For some reason it always chooses the PC-speaker.
To work around that issue with Arch Linux (which was what I used before Gentoo) I just blacklisted the kernel module
pcspkr with the command
# rmmod pcspkr and then made it permanent:
# echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
With Gentoo that didn’t work, so I had to tell ALSA which card I wanted it to use. To do so I needed to figure out the name of my card, which you can do with the command
$ aplay -L null Discard all samples (playback) or generate zero samples (capture) default:CARD=DX Xonar DX, Multichannel Default Audio Device [...] front:CARD=DX,DEV=0 Xonar DX, Multichannel Front speakers [...] front:CARD=pcsp,DEV=0 pcsp, pcsp Front speakers
- I later learned that there’s a second module for the PC-speaker called
snd_pcsp. It could have worked to just disabled that as well.
As you can see, my soundcard is called
DX and the device number is
With that I then created the file
~/.asoundrc and added this content to it:
defaults.pcm.!card DX defaults.pcm.!device 0 defaults.pcm.!ctl DX
I then continued to reboot my computer and it all worked just fine after that.
If you want to make these changes for all users on your computer, just add the content to the file
Source: ALSA - Gentoo Wiki