[coreboot] Success in booting the kernel in less that 1 second on the x60

Charles Devereaux coreboot at guylhem.net
Sat Dec 13 06:51:06 CET 2014


On Wed, Jul 2, 2014 at 10:48 AM, ron minnich <rminnich at gmail.com> wrote:
>
> This is great. We've gotten an acer c720 down to 1.7 seconds from power
> button to chromeos login screen. I've always wanted to get it done in under
> a second. I hope you can get there!
>

It looks quite possible.

I couldn't sleep much last night, so I burned the midnight oil to achieve
my goal of a *real fast* boot, building on the i915.fastboot improvements.

It may have taken 4 months, but I could finally trim the kernel boot time
to about 0.8s after further hackish fixes - like starting the scsi and sata
drivers before the tty and char drivers, enabling paralllel probe for ahci,
making psmouse a module because it was delaying boot too much, etc.

If you use systemd with the configuration files I suggested before, your
system should now be ready 1.4s after coreboot started grub.

If you trim further (ex: turning more things into modules, removing the
initrd) you can get the kernel ready in about 0.6s, so that'll mean about
1.2 seconds.

It should be possible to beat the c720 boot time if coreboot could finish
in about 0.5s on the x60, but I don't know how plausible this is. Ideas or
suggestions would be welcome.

If anyone is interested in replicating or improving these results, please
use the following kernel patch on a vanillla 3.14.25 to compile a kernel
using x60.config, then use the following command line in grub:
libahci.ignore_sss=1 raid=noautodetect i915.fastboot=1
i915.lvds_downclock=1 i915.i915_enable_rc6=7 nohz=on nmi_watchdog=0
pcie=aspm thinkpad_acpi.brightness_enable=0 thinkpad_acpi.force_load=1
thinkpad_acpi.fan_control=1 snd-hda-intel.index=0
snd_hda_intel.power_save=10 snd_hda_intel.model=thinkpad
snd-hda-intel.probe_mask=0x103 snd-pcsp.index=1 btusb.reset=1
ath9k.ps_enable=1 ath9k.btcoex_enable=1 swap=/dev/sda2 tpm_tis.force=1
tpm_tis.interrupts=0 tpm_tis.hid=PNP0C31 quiet systemd.unit=graphical.target

Turning say alsa and firewire into  modules you can shave another 0.1 to
0.2s. I just tested that before posting. However, I'm not sure it's worth
the trouble for now. Coreboot takes more time than the kernel+systemd, so
it has become the limiting factor for further improvements.

BTW, to demonstrate other optimisations (ex: obtaining a dhcp lease
quickly) I will try to upload a minimal distribution based on
debian-testing but making heavy use of clean systemd scripts, for those who
want to have the quick boot without wasting too much time on configuration.

Enjoy,
Charles
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20141213/d23d23bd/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3.14.25-guylhem.patch.gz
Type: application/x-gzip
Size: 27446 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20141213/d23d23bd/attachment-0002.gz>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dmesg.txt.gz
Type: application/x-gzip
Size: 13622 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20141213/d23d23bd/attachment-0003.gz>


More information about the coreboot mailing list