Sign In
Forgot Password?
Sign In | | Create Account

Achieving Faster Linux Boot Time: 2013 Version

Some things change, some do not

Recently I had an opportunity to present a technical session titled “Achieving Faster Boot Time with Linux”.  As I reviewed my slides for the last time before the session, it dawned on me that much of what I was about to present was little changed over the last few years.  I gave a similar presentation at Freescale Technology Forum several years ago.

Over the last few years, many elements of a basic embedded Linux system have either evolved, been replaced or are downright new.  Some examples of this rapid evolution of technology include the following:

  • Migration away from System V init to the more performance-oriented systemd initialization system
  • udev being rolled into systemd
  • Linux kernels starting with the major version number 3 instead of 2
  • Multi-core processors are now commonplace in embedded Linux devices rather than exceptional
  • UBI/UBIFS has largely displaced JFFS2 as the embedded Flash file system of choice

The list of things that are new or different could fill the rest of this page. But what struck me as I reviewed my slides was that much of what I described at the FTF event several years ago was still very relevant today.

One of the primary messages then and now is still true.  Linux boot time can be dramatically improved without substantial engineering effort.  Several of the techniques I presented are easy to achieve and don’t require extraordinary skill or super human effort.  Some techniques are tedious and may take some trial and error, such as reducing unnecessary features and device drivers in the Linux kernel.  But many are easy to apply and result in significant improvement in boot time.

Optimizing U-Boot requires at least some knowledge of U-Boot’s architecture and build system, but anyone competent in boot-style firmware can make quick progress reducing U-Boot’s footprint and thus reducing load and execution time.

Of course, achieving very aggressive Linux boot times down in the 1-2 second range or less requires advanced techniques and substantial skill in many aspects of Linux systems.  Each architecture and platform presents unique challenges.  Mentor Embedded has developed significant experience building fast boot Linux systems, using a variety of interesting techniques and technologies.  Many of these techniques and technologies can be found in production vehicles today.

Attached to this blog post is a link of the presentation I gave at the IESF 2013 event in Detroit this year.  Several attendees asked for a copy so I thought I’d post it here:

http://s3.mentor.com/embedded/linux-fast-boot-iesf2013.pdf

More Blog Posts

About Christopher Hallinan

Christopher HallinanChristopher is a technical marketing engineer for the embedded systems division of Mentor Graphics. He has more than 20 years in high tech companies in assignments ranging from engineering and engineering management, marketing, sales and business development. He spent four years as an independent development consultant porting U-Boot and the Linux kenel to custom boards. He is the author of Embedded Linux Primer, now in its 2nd edition. His writing has appeared in magazines including Linux Journal, Telecommunications Magazine, Fiber Optics Magazine and Aviation Digest. Visit The Chris Hallinan Blog

More Posts by Christopher Hallinan

Comments 2

Post a Comment
Hi Christopher, Something you didn't mention, is that you can also skip the whole bootloader. This is possible on platforms with a smart enough boot rom (e.g. Freescale and Marvell). The Freescale boot rom is quite good and is capable of loading a kernel from SDcard at full speed. Without wanting to advertise myself, you can have a look at my talk at ELCE and Automotive Linux Summit. http://www.elinux.org/images/d/d1/Alexandre_Belloni_boottime_optimizations.pdf The code is under GPL: https://github.com/alexandrebelloni/whoosh

Alexandre Belloni
8:50 PM Sep 24, 2013

Hi Alexandre, Thanks for reading and commenting. I actually had a slide explaining an abbreviated boot, showing the i.mx6 skipping several stages of the "typical" boot sequence, but they only gave me 30 minutes, and I had to cut many slides out of my presentation!! I will be presenting an expanded version in an upcoming webinar on October 9th, where I will have a chance to show the entire presentation. You can register for the event here: http://www.mentor.com/embedded-software/events/linux-fast-boot--techniques-for-aggressive-boot-time-reduction I will be attending ELC-E and I'll be sure to attend your presentation and introduce myself!! And I'm happy to post your presentation link!! Cheers, -Chris

Christopher Hallinan
9:33 PM Sep 24, 2013

Add Your Comment

Please complete the following information to comment or sign in.

(Your email will not be published)

Archives

Tags

 
Online Chat