UdevRoadmap

Differences between revisions 1 and 15 (spanning 14 versions)
Revision 1 as of 2005-11-02 17:22:51
Size: 478
Editor: 209
Comment: New udevroadmap page to split out udev items from HardwareDetection
Revision 15 as of 2005-11-05 20:43:02
Size: 4166
Editor: 209
Comment: redraft
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
 * '''Launchpad Entry''': https://launchpad.net/distros/ubuntu/+spec/foo  * '''Launchpad Entry''': https://launchpad.net/distros/ubuntu/+spec/udev-roadmap
Line 5: Line 5:
 * '''Contributors''': JeffBailey
 * '''Packages affected''':
 * '''Contributors''': JeffBailey, ScottJamesRemnant
 * '''Packages affected''': initramfs-tools, hotplug, grepmap, udev, klibc, linux-image-*, modutils
Line 10: Line 10:
== Rationale == As discussed in HardwareDetection there are many compelling reasons to select both the 2.6.15 kernel and the required udev 071 for our hardware-detection needs. The upgrade from the current udev 060 is a major change that affects many packages currently in the archive, some requiring changes and some become deprecated.
Line 12: Line 12:
== Use cases ==

== Scope ==

== Design ==
This spec outlines a roadmap of changes required.
Line 20: Line 16:
=== Code === === klibc ===

 * Update to most recent version and use to compile tools (like udev) that will be placed in the initramfs.

=== udev ===

 * Update or repackage udev to the latest version from upstream (071).
 * There are some more recent changes in the git repository that provide caching of the udev rules and further volume UUID support (that would be nice for ProbeForRootFilesystem); so we'll pull these and add them to the package.

As discussed in HardwareActivation:
 * Implement udevd scoreboard
 * Implement udevplug

 * The new udev package will Provide, Conflict and Replace the old hotplug package.
 * Ensure that during upgrade hotplug configuration is cleaned away, and the init script disabled.
 * As discussed in NetworkMagic, move the network agent from hotplug to ifupdown.
 * Move blacklists and isapnp alias map from hotplug package to udev. These will continue to be maintained with new entries added as necessary.

 * Add new udev rules to replace `usbfs` with `/dev/bus/usb`.

=== hotplug ===

 * Ask the ftpmasters to eject it from the archive like the bitch it is.

=== modutils ===

 * Upgrade to most recent version to ensure we have the best alias and blacklist support.

=== grepmap ===

 * Ask the ftpmasters to gently lay it to rest in the morgue, and plant a flower on its chest.

=== initramfs ===

Update the initramfs to take advantage of the new cold-plugging system described in HardwareDetection:

 * Mount virtual filesystems.
 * Start udevd to handle device node creation, etc.
 * Create base device nodes by tickling the parts of `/sys` that reflect the platform.
 * Load essential modules from `/etc/mkinitramfs/modules` (and other `force_load` calls).
 * Walk the PCI `/sys` tree for hard-drive devices and tickle those, also tickle the IDE, SCSI and i2o buses. Other buses aren't known to contain drives we support for the root filesystem.
 * Attempt hibernate recovery.
 * Walk the PCI, USB and ieee1394 trees to locate controllers and hubs, for both removable devices and keyboards.
 * Mount root filesystem and switch to userspace.

=== User space ===

 * Replace the initial `S02mountvirtfs` and `S04udev` scripts with a single script that checks whether the initramfs was run, and if not mounts virtual filesystems and prepares `/dev`.
 * Start udevd if not running, or instruct the running udevd to reload the rules and add a new inotify watch on the real filesystem.
 * Walk the entire `/sys` tree and tickle all events; this will not only cold-plug all of the hardware, but adjust the permissions of anything created in the initramfs.
Line 24: Line 69:
Custom-written hotplug rules will need to be migrated to be udev rules. There is no way to do this in an automated fashion.
Line 26: Line 73:
== BoF agenda and discussion == Rebooting the system shortly after the upgrade is critical. It is quite likely that hal will stop working, and the rules that are on the harddrive may then be completely incompatible. The cute little lightbulb "Please click on me for a message" in the corner is probably insufficiently invasive to make sure this happens. That notification applet should be refered to mpt for a case of the mean-and-ugly treatment. This is out of scope for this spec.

This spec has been created as https://launchpad.net/distros/ubuntu/+spec/urgent-reboot-notification

Summary

As discussed in HardwareDetection there are many compelling reasons to select both the 2.6.15 kernel and the required udev 071 for our hardware-detection needs. The upgrade from the current udev 060 is a major change that affects many packages currently in the archive, some requiring changes and some become deprecated.

This spec outlines a roadmap of changes required.

Implementation

klibc

  • Update to most recent version and use to compile tools (like udev) that will be placed in the initramfs.

udev

  • Update or repackage udev to the latest version from upstream (071).
  • There are some more recent changes in the git repository that provide caching of the udev rules and further volume UUID support (that would be nice for ProbeForRootFilesystem); so we'll pull these and add them to the package.

As discussed in HardwareActivation:

  • Implement udevd scoreboard
  • Implement udevplug
  • The new udev package will Provide, Conflict and Replace the old hotplug package.
  • Ensure that during upgrade hotplug configuration is cleaned away, and the init script disabled.
  • As discussed in NetworkMagic, move the network agent from hotplug to ifupdown.

  • Move blacklists and isapnp alias map from hotplug package to udev. These will continue to be maintained with new entries added as necessary.
  • Add new udev rules to replace usbfs with /dev/bus/usb.

hotplug

  • Ask the ftpmasters to eject it from the archive like the bitch it is.

modutils

  • Upgrade to most recent version to ensure we have the best alias and blacklist support.

grepmap

  • Ask the ftpmasters to gently lay it to rest in the morgue, and plant a flower on its chest.

initramfs

Update the initramfs to take advantage of the new cold-plugging system described in HardwareDetection:

  • Mount virtual filesystems.
  • Start udevd to handle device node creation, etc.
  • Create base device nodes by tickling the parts of /sys that reflect the platform.

  • Load essential modules from /etc/mkinitramfs/modules (and other force_load calls).

  • Walk the PCI /sys tree for hard-drive devices and tickle those, also tickle the IDE, SCSI and i2o buses. Other buses aren't known to contain drives we support for the root filesystem.

  • Attempt hibernate recovery.
  • Walk the PCI, USB and ieee1394 trees to locate controllers and hubs, for both removable devices and keyboards.
  • Mount root filesystem and switch to userspace.

User space

  • Replace the initial S02mountvirtfs and S04udev scripts with a single script that checks whether the initramfs was run, and if not mounts virtual filesystems and prepares /dev.

  • Start udevd if not running, or instruct the running udevd to reload the rules and add a new inotify watch on the real filesystem.
  • Walk the entire /sys tree and tickle all events; this will not only cold-plug all of the hardware, but adjust the permissions of anything created in the initramfs.

Data preservation and migration

Custom-written hotplug rules will need to be migrated to be udev rules. There is no way to do this in an automated fashion.

Outstanding issues

Rebooting the system shortly after the upgrade is critical. It is quite likely that hal will stop working, and the rules that are on the harddrive may then be completely incompatible. The cute little lightbulb "Please click on me for a message" in the corner is probably insufficiently invasive to make sure this happens. That notification applet should be refered to mpt for a case of the mean-and-ugly treatment. This is out of scope for this spec.

This spec has been created as https://launchpad.net/distros/ubuntu/+spec/urgent-reboot-notification

UdevRoadmap (last edited 2008-08-06 16:16:48 by localhost)