[coreboot] Lenovo X60: Suggestions to reduce boot time

Paul Menzel paulepanter at users.sourceforge.net
Mon Aug 12 23:04:52 CEST 2013


Dear Eugen,


welcome to coreboot!


Am Montag, den 12.08.2013, 12:47 +0200 schrieb Eugen Leitl:
> I've decided to buy a Lenovo X60 over Asrock E350M1 for Coreboot
> experimenting.

Just a note that coreboot is written all lowercase. (Though that poses
some problems in certain languages like German for example.)

> I see you can boot to a desktop in under 10 seconds, what kind of a
> lean yet hacker-oriented environment do you people recommend for that?
> (I'll probably go with a 128 GByte SSD instead of stock HDD).
>
> Do you have a specific kernel/build suggestions for the X60 or 
> will stock Debian do? Thanks.

As coreboot just initializes the hardware and hands over control to the
payload. That takes around 600 ms. The payload normally starts your
installed distribution, so optimizing that is most important and
independent from coreboot. People have some experience with the X60, but
in the end you have to do the benchmarking and optimize it to your
needs. Make sure, that you can recover from a bad flash if something
goes wrong.

Getting the SSD is a good move as this will save you the most time.

Here are some thoughts on optimization.

1. coreboot

There is not much to do here. Turn down the debugging level. For doing
benchmarks enable the time stamps to get hard numbers what things you
can optimize.

2. VGA option ROM

If you only need graphics after your distribution started, get rid of
the option ROM. The Intel graphics driver in the Linux kernel should be
able to initialize the hardware. That is going to save 300(?) ms.
Remember that you want see the payload output on screen.

There is some experimental support to init the Intel graphics chip
natively without a VGA option ROM. But that is still experimental and
not all code is upstream yet. Peter Stuge, Denis 'GNUtoo' Carikli and
Ron Minnich know more about this.

2. payload

As you build it from source, make sure you disable all features, you do
not need. That makes the payload smaller, so it can be loaded faster
from the flash chip.

α) If you use a GNU/Linux distribution, you do not need SeaBIOS as
usually loads GRUB from your disk. SeaBIOS makes it easy though to boot
from USB media or CD/DVD drives.

β) Then there is FILO, which is able to boot the Linux kernel from the
disk right away. I have not much experience with it and it had problems
with my ext4 file system if I remember correctly. So if it supports your
system, you should try it and see how fast it is compared to a GRUB 2
payload.

γ) You should build GRUB 2 from source as detailed in the coreboot Wiki
[1]. The advantage is, that you know it already from Debian. If you only
want to boot from your disk, then only build in these modules and it
should be pretty fast too. Thanks to Vladimir Serbinenko there are
several modules helping you to benchmark GRUB.

δ) You can put the Linux kernel into the flash chip, if you get it small
enough. You have to benchmark if it is faster to load such a Linux
payload from the flash chip or from SSD though. I have not seen such
numbers yet.

ε) You can use a kexec payload. Denis 'GNUtoo' Carikli knows more.

3. Operating system and GNU/Linux distribution

I think in 2011 at the Brandenburger Linux-Infotag [2], Peter Stuge and
Björn Busse used a Gentoo distribution with systemd to load an Xfce
session with the Firefox browser to reach the 10 seconds boot time from
pressing the power button to loaded browser.

As written, this heavily depends on your use case. I think there are
some general suggestions. You’ll find these all over the WWW. The
systemd Wiki currently has 27 suggestions listed on their Optimizations
page [3].

Here are some points from out of my head.

     I. Build the Linux kernel yourself. As the Lenovo X60 is a laptop
        you can disable a lot of options.
    II. Encryption takes time.
   III. LVM takes time.
    IV. Choose the fastest init system for your system. Compare for
        example SysV, systemd and Upstart.
     V. Deactivate daemons/services you do not need
    VI. Choose the fastest file system for your use cases. Journals add
        safety for your data with a speed penalty again.
   VII. How do you log in. Debian’s GDM takes more time that some other
        graphical login managers. Just getting to a console login in is
        fastest of course.
  VIII. Desktop environments differ in their start-up time. So login
        time greatly depends on that.

Hopefully the above answers your questions and helps a little. The
Chrome OS folks have also done a lot of optimization for their
Chromebooks. If you need more suggestions they might be able to help
you.

Please keep us posted with your findings and conclusions.


Thanks,

Paul


[1] http://www.coreboot.org/GRUB2
[2] http://www.blit.org/2011/aussteller.html
[3] http://freedesktop.org/wiki/Software/systemd/Optimizations/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20130812/6589bf70/attachment.sig>


More information about the coreboot mailing list