[Debian-eeepc-devel] Using a pre-populated /dev for faster boot

Santi Béjar santi at agolina.net
Sat Nov 1 10:17:04 UTC 2008


On Fri, Oct 17, 2008 at 12:42 AM, Phil Endecott
<spam_from_debian_eee at chezphil.org> wrote:
> Hi everyone,
>
> It's clear that it's possible to save a few seconds of boot time by
> using a pre-populated /dev, rather than letting udev populate it
> dynamically.  This would be simple in a "locked down" system where
> upgrades were impossible or monolithic, but it's harder to do neatly in
> Debian.  What I've done is not perfect, but it's a start and I thought
> I ought to write it up.
>
> The existing code is in /etc/init.d/udev, which basically
> - starts udevd
> - runs udevadm trigger
> - runs udevadm settle
>
> The last two steps implement "coldplugging" - they generate hotplug
> events for the devices that were already attached when you started up,
> which mostly means things that are physically built in.  It's this
> coldplugging that takes the time; I still start udev and it looks after
> any genuinely hotplugged devices.  Also, I still use coldplugging for
> removeable devices that are already connected at boot - i.e. usb
> devices.  I do this by adding the option "--subsystem-match=usb" to the
> udevadm trigger call.  It's only the coldplugging for built-in devices
> that I've removed.

Then udev only has info about the usb devices, in particular the
synaptics touchpad is not included, so hal does not list it, so
xserver 1.5 which takes input devices from hal does not configure the
synaptics. xserver 1.5 is only in experimental so it is not a problem
for now.

>
> In order to pre-populate /dev with entries for the coldplugged devices,
> I have hacked /etc/init.d/udev to check for and untar a file called
> /etc/init-devs.tar.  If it doesn't find it, it falls back to the old
> behaviour.  If it does exist, after untarring it does coldplugging for
> only usb devices as described above.
>

I've done it differently. I've copied the devices from /dev to
/lib/udev/devices, and they get copied to /dev at boot (without
modifying /etc/init.d/udev).

The only modification to /etc/init.d/udev I've done is to coldpluging
only the usb devices. But I've reverted it because the synaptics
problem above.

Santi



More information about the Debian-eeepc-devel mailing list