?TableOfContents

Translations: [:DebianEeePCFrench/Boot:French] [:DebianEeePCGerman/Boot:German]

DebianEeePC/Boot

Note: In the approach discussed below, the removal of some standard packages that are included in a base Debian install is suggested. Because these packages are only Priority: important, not essential, it is perfectly valid to do so, but you need to be aware that some packages may not function as intended without them (e.g. cron handles regularly scheduled tasks, sysklogd keeps logs of various system activities, logrotate rotates those logs and cupsys manages communication with printers on your network). Therefore, this is not an approach supported by the debian-eeepc team. However, so long as you're aware of these limitations of the approach, you're welcome to try it out. For a brief list of less intrusive changes, see [:DebianEeePC/TipsAndTricks#head-7d4280bd88c947c61864dd0102ec13537aad8d4f:DebianEeePC/TipsAndTricks]. Also, have a look at BootProcessSpeedup, which is the source for those tips. An EeePC 901 with a booting time of 5 seconds was demonstrated at the Linux Plumber Conference 2008. Efforts and instruction to do this are collected on ["From Naught to Sixty in 5 Seconds"].

I've created a bootchart for the EeePC boot up. This EeePC is running EeePC Debian and I have removed the following packages as I don't need them on such a small computer:

By doing a apt-get remove cron logrotate sysklogd cupsys

I'm using GDM to start an XFCE environment. Currently the EeePC takes 31 seconds to boot as is shown in the chart below. After some tweaks I was able to bring this down to roughly 20 seconds, a 10+ second improvement!

Currently I see a few sore spots:

Some seem udev related. I don't know the ins and outs of udev, but I've tried the following:

net.agent

net.agent sits in /lib/udev/

A don't have that file on my Ubuntu system, is it really needed on the Eee?

I've put an exit at the top of the file and rebooted. This had no effect on the actual booting of the Eee, but it removed the sleep I also saw.

sleep

This sleep looks to be coming from the net.agent, which I handled in the previous bullet point.

udevsettle

udevsettle can optionally have a timeout. So /etc/rcS.d/S03udev can be edited . A --timeout 5  can be added to the udevsettle call. Again I have no idea what would happen to the booting of the EeePC. I have not made this change (yet).

hwclock

Why does this take so long? Why is is needed? By running sudo chmod -x /sbin/hwclock you disable the startup scripts as they check the executable bit on hwclock. Doing so DROPS the boot time a full 10 seconds, down to 20 seconds. See Bootchart: no hwclock

Btw: why are there two hwclock init scripts?

. [BenArmstrong] See this [:DebianEeePC/TipsAndTricks#head-7d4280bd88c947c61864dd0102ec13537aad8d4f:less invasive way] to accomplish the same thing by avoiding the error that causes hwclock to stall out.

Bootchart: hwclock disabled

attachment:bootchart-no-hwclock-no-net.agent.png

Bootchart: net.agent disabled

I'm seeing no adverse effects, BUT it still takes 31 seconds.

attachment:bootchart-no-net.agent.png

Bootchart: original

attachment:bootchart.png

Finit

Finit is Eeepc fastinit reimplementation

Homepage: http://helllabs.org/finit/

Fastinit is a proprietary and much simplified init(8) replacement written by Asus to help the Eeepc to boot faster. Finit is a fastinit reimplementation based on fastinit system calls.

Warnning: This haven't been well tested. It doesn't start up syslogd, cron ...etc and it doesn't run rc6.d rc0.d scripts for shutdown/reboot. It might damage your data or mess up your filesystem.

Finit's purpose is to build upon the general workings of fastinit and improve/optimize it for Xandros or alternative distributions running on the Eeepc. Finit comes in three flavors: finit is a replica of the Asus fastinit, finit-mod is an improved drop-in replacement for fastinit, and finit-alt is a generic replacement for other systems.

Looking at the [http://people.linux.org.tw/~andrew/bootchart.png screenshot] it seems that finit-alt has been ported to Debian. Booting in 9 seconds!

sysvinit-ng

sysvinit-ng is [http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot boot scripts based on dependencies and parallelizing services startup].

See how to enable this at: http://wiki.debian.org/BootProcessSpeedup

Looking at the [http://people.linux.org.tw/~andrew/bootchart-startpar.png screenshot] it seems that sysvinit-ng only 4sec different than finit but much safer. Booting in 13 seconds!

Boot Booster

The Eee Pc bios has a feature called Boot Booster, which seems to do some caching to shorten the time needed to execute grub, saving up to 3 seconds.

To enable it from the bios menu, you need to have a dedicated EFI partition on you first SSD (/dev/sda); if you have deleted it while installing Debian, you'll need to shrink the existing one(s) to make room for it. The Eee ships with a 16Mb partition, but there are several reports that 8Mb are enough; it has to be type 0xef and can be either the first or the last (or most probably in any position).

gparted

gparted is a software that will let you shrink ext2, ext3 and reiserfs partitions. Note that you won't be able to shrink your root partition while using it; you can boot with a live usb system and use gparted from there (you can use http://wiki.debian.org/DebianEeePC/Live but it doesn't incude gparted yet, so you will need internet access to apt-get install gparted).