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/