Raspbian – resources for reducing boot time

This post will be a work-in-progress. How to reduce boot time of your Raspberry Pi running Raspbian?

DMesg

First you need to know how long it actually takes to boot up so you can assess your progress.

It has the added benefit of telling you what is happening in that time. Run that command and it will give an output like this:

The number in square brackets on the left is the time since it started up, and whatever is on the right is what is being loaded at that point. I’m not sure what the very last line is about, but the line before that indicates that boot-up time (including ethernet setup in this case) was 22.1 seconds.

Stop stuff being done at boot up

This topic on the Raspberry Pi Forums gives a few ideas for how to speed boot-up time. There are an awful lot of good responses there. Things I’ve tried / will try:

  1. Install rcconf; the Debian Runlevel Configuration tool
  2. Edit /boot/cmdline.txt , add kernel option quiet so boot up log is not printed
  3. In that same file, choose fastboot option which bypasses filesystem check. Supposedly a bad idea though.

Another link: http://rpitc.blogspot.co.uk/p/docs.html

Random hint: some things are never documented. Except in the source code itself. For example, if you have to edit /boot/cmdline.txt , then the only help you will get is by looking at the source.

There are different ways of changing what services are started up during boot-up. I’m not clear what’s supposed to be used when; the complication arises because the way boot-up services are run has changed over the course of Raspbian’s existance. Earlier versions used /etc/inittab but newer versions use systemd . I think this change is why rcconf and sysv-rc-conf don’t work properly; they seem to lose settings on reboot, which makes them useless.

The most successful way I’ve had of reducing boot times is by using  systemd-analyze blame  to show what is taking longest to load. It outputs something like this:

To find out what the services you’re disabling actually do, run this:

And you’ll get an output like this: (Scroll to the right to see the description).

Then disable the individual services as you desire by doing this:

Loading Facebook Comments ...

Leave a Reply

Your email address will not be published. Required fields are marked *

*