As stated in Why is my Audio (Sound) Output not working?, to initialise the sound driver, you must run sudo modprobe snd_bcm2835 every time you want to output sound.

How do I get this to run on boot? (i.e. before logging in and without any input)

  • 1
    This is another question that could be regarded off-topic. It may be better suited to U&L.
    – Jivings
    Commented Jun 27, 2012 at 7:33
  • 3
    @Jivings: Just because it's on-topic on Unix & Linux doesn't make it off-topic for Raspberry Pi, does it? Commented Jun 27, 2012 at 8:37
  • 2
    @OliverSalzburg: I think that there's too much of an overlap in this particular question. Nothing about this question makes it specific for the Raspberry Pi.
    – Jivings
    Commented Jun 27, 2012 at 8:47
  • 1
    Wouldn't the decision at meta.raspberrypi.stackexchange.com/questions/24/… mean that this question is fine here? Commented Oct 1, 2012 at 10:30
  • 1
    @Jivings Thanks, just wanted to clear that up for any future visitors as the comments were pointing towards closing the question. Maybe all the comments should be deleted instead? Commented Oct 3, 2012 at 9:05

4 Answers 4


Loading modules at boot is a little different to running startup commands.

In Debian:

Add the module name as a new line in /etc/modules

In Arch Linux:

Add the module name to the module array in /etc/rc.conf, the line should look like this:


Or for the new systemd configuration:

echo "snd_bcm2835" | sudo tee -a /etc/modules-load.d/snd_bcm2835.conf
  • I added snd_bcm2835 to the /etc/modules file on my Xbian but that created a loop at boot time. this seems not be allowed when starting OSMC
    – rubo77
    Commented Jun 17, 2015 at 15:55
  • @rubo77 Interesting! Did you get to the bottom of it?
    – Jivings
    Commented Jun 22, 2015 at 8:11
  • Not sure. Maybe it was a coincident. The whole installation seems a bit broken by now...
    – rubo77
    Commented Jun 22, 2015 at 11:27

Modprobe on Boot - Debian

To answer the specific question about sudo modprobe snd_bcm2835, add the module to /etc/modules and reboot. (You will need to be root to do this.)

Starting services - Debian

Debian using initscripts to initialise the system, and you can use them to run arbitrary commands. You need to install a script similar to the following in /etc/init.d.

#! /bin/sh
# /etc/init.d/blah

# Some things that run always
touch /var/lock/blah

# Carry out specific functions when asked to by the system
case "$1" in
    echo "Starting script blah "
    echo "Could do more here"
    echo "Stopping script blah"
    echo "Could do more here"
    echo "Usage: /etc/init.d/blah {start|stop}"
    exit 1

exit 0

You should ensure it is runnable and owned by root.

sudo chmod 755 /etc/init.d/blah
sudo chown root:root /etc/init.d/blah

Then you need to register it to run at startup.

sudo update-rc.d blah defaults


  • 1
    Neither of these things are unique to Debian. Also, init scripts are not what you should be using to load modules. Only the first section is relevant to the question.
    – Jivings
    Commented Jun 27, 2012 at 7:32
  • Neither of them will work on Arch, not sure about QtonPi. Commented Jun 27, 2012 at 7:34
  • Of course they will.
    – Jivings
    Commented Jun 27, 2012 at 7:34
  • Oh... why is your Arch answer different then? Commented Jun 27, 2012 at 7:35
  • Because Arch defines a handy abstraction for startup events.
    – Jivings
    Commented Jun 27, 2012 at 7:36

There are loads of ways of running a command at start-up in Linux but my favoured approach is to create an initialisation script in /etc/init.d and register it using update-rc.d. This way the application is started and stopped automatically when the system boots / shutdowns.

See this post for a set of instructions on how to create one on the Raspberry Pi.

  • 1
    Welcome to Raspberry Pi Beta! Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. Commented Oct 1, 2012 at 9:33
  • How would you do it through systemd or other systems? Commented Oct 2, 2012 at 0:16

My preferred approach would be to add the setup command to /etc/rc.local where it would be initialised at the end of boot, before you are asked to login.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.