How to make Raspberry Pi use an external USB sound card as a default
This worked for me on Raspbian Jessie.
If you don't need the onboard audio chip (i.e. analog output or hdmi audio), disable it and then the USB audio device can become the primary device:
- Disable onboard audio.
- Open
/etc/modprobe.d/raspi-blacklist.conf
and addblacklist snd_bcm2835
.
- Open
- Allow the USB audio device to be the default device.
- Open
/lib/modprobe.d/aliases.conf
and comment out the lineoptions snd-usb-audio index=-2
- Open
- Reboot
sudo reboot
- Test it out.
$ aplay /usr/share/sounds/alsa/Front_Center.wav
The file you're looking for is located in /usr/share/alsa/alsa.conf
.
It's not called alsa-base.conf
, just alsa.conf
.
All the relevant text is in that file. Just run sudo nano /usr/share/alsa/alsa.conf
, change the default sound card to 1 or whatever you prefer (obviously, 0 is default so not that one). I also deleted the # from the line that says... load card-specific configuration files
(on request) and now I have the sound coming from my cirrus audio card running Debian 8 Jessie on ras pi2.
I had problems with this on recent versions of Raspbian (Jessie).
There is a file called aliases.conf
in /lib/modprobe.d
which contains the line options snd-usb-audio index=-2
. That line overrides the /etc/modprobe.d/
files, so you need to change that one. Comment out with a # the line options snd-usb-audio index=-2
In /usr/share/alsa/alsa.conf
I un-commented “load card-specific configuration files (on request)” and I also replaced the content of .asoundrc
which is a hidden file in your home folder with:
pcm.!default plughw:Device
ctl.!default plughw:Device
The downside of this solution is the desktop sound applet won't appear. So to control volume use the alsamixer
application or physical sound level buttons on the USB sound dongle.
References for this:
- https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=124016&p=857433&hilit=usb+audio#p857433
- http://alsa.opensrc.org/Asoundrc#Default_PCM_device.