UdevRoadmap

Differences between revisions 1 and 11 (spanning 10 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 11 as of 2005-11-04 01:18:31
Size: 3931
Editor: 209
Comment: Add spec for reboot notification
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, udev, klibc, linux-image-*, modutils
Line 10: Line 10:
Upgrading from udev 060 to 071 is a major change that affects initramfs, udev, hotplug, hal, and many other pieces. The 2.6.15 kernel will require udev 071. Because these changes are invasive, this spec is split out from HardwareDetection to make sure that it can be reviewed and implemented independantly.
Line 12: Line 14:
== Use cases ==  * Many components of the Linux system will require a newer udev. These include ProbeForRootFilesystem, LinuxKernelRoadmap, and HardwareDetection.
Line 16: Line 18:
== Design == This is an implementation for Dapper.

Newer versions of udev affect the following packages:

 * initramfs-tools

 * hotplug

 * klibc

 * hal

 * linux-image-*

 * modutils
Line 20: Line 36:
=== Code === === initramfs ===
Update the initramfs startup sequence to reflect the following:

 * Create base device nodes
 * Start udevd
 * Load modules from /etc/mkinitramfs/modules (and other force_load calls)

''' Note: without udevstart, something needs to correct permissions, or we need to provide the rules. '''

 * Walk the sysfs tree for harddrive devices and tickle uevents for those.

Some of the code for this exists in the current

{{{XXX:smurf: this sentence no end?

Which part of the support code is missing? What is Upstream doing about it?}}}

 * Walk the ide, scsi, and i2o busses

{{{XXX:smurf:why not all buses, or at least +USB? The root disk may be on USB...}}}

 * Attempt hibernate recovery
 * Walk the pci sysfs tree for usb controllers

=== udev ===

 * Upgrade to udev-071 plus current git patches.

''' Git patches after 071 cause the rules to be cached. It's best to just accomodate this now. Current git patches also add more man pages, and some extra needed UUID support. '''

 * Implement scroreboard from HardwareActivation
 * Implement udevplug from HardwareActivation
 * Mark udev as Provides, Conflicts, Replaces for hotplug

 * Add udev rules to put USB Devices in /dev/bus/usb.
 
 * Move the existing isapnp maps from hotplug and put them in udev. Continue to update them as we discover more devices that need to go in.


=== hotplug ===

 * Ask the ftpmasters to remove from the archive.

=== modutils ===

 * Upgrade modutils to recent version to get blacklisting support.

=== klibc ===

 * udev should be compiled against a recent version of klibc for tiny initramfs images

=== full userspace init scripts ===

 * As soon as full userspace has started, need to tell udev to reread all of the rulesets.

 * Where udevstart and coldplugging routines are currently started, ensure that udevd is running (in case of custom kernels), and pass over entire sysfs tree to cause events to be rerun. This will ensure that device nodes are created with correct permissions and according to the rules of the running system.
Line 24: Line 95:
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 99:
== 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

Upgrading from udev 060 to 071 is a major change that affects initramfs, udev, hotplug, hal, and many other pieces. The 2.6.15 kernel will require udev 071. Because these changes are invasive, this spec is split out from HardwareDetection to make sure that it can be reviewed and implemented independantly.

Rationale

Scope

This is an implementation for Dapper.

Newer versions of udev affect the following packages:

  • initramfs-tools
  • hotplug
  • klibc
  • hal
  • linux-image-*
  • modutils

Implementation

initramfs

Update the initramfs startup sequence to reflect the following:

  • Create base device nodes
  • Start udevd
  • Load modules from /etc/mkinitramfs/modules (and other force_load calls)

Note: without udevstart, something needs to correct permissions, or we need to provide the rules.

  • Walk the sysfs tree for harddrive devices and tickle uevents for those.

Some of the code for this exists in the current

{{{XXX:smurf: this sentence no end?

Which part of the support code is missing? What is Upstream doing about it?}}}

  • Walk the ide, scsi, and i2o busses

XXX:smurf:why not all buses, or at least +USB? The root disk may be on USB...

  • Attempt hibernate recovery
  • Walk the pci sysfs tree for usb controllers

udev

  • Upgrade to udev-071 plus current git patches.

Git patches after 071 cause the rules to be cached. It's best to just accomodate this now. Current git patches also add more man pages, and some extra needed UUID support.

  • Implement scroreboard from HardwareActivation

  • Implement udevplug from HardwareActivation

  • Mark udev as Provides, Conflicts, Replaces for hotplug
  • Add udev rules to put USB Devices in /dev/bus/usb.
  • Move the existing isapnp maps from hotplug and put them in udev. Continue to update them as we discover more devices that need to go in.

hotplug

  • Ask the ftpmasters to remove from the archive.

modutils

  • Upgrade modutils to recent version to get blacklisting support.

klibc

  • udev should be compiled against a recent version of klibc for tiny initramfs images

full userspace init scripts

  • As soon as full userspace has started, need to tell udev to reread all of the rulesets.
  • Where udevstart and coldplugging routines are currently started, ensure that udevd is running (in case of custom kernels), and pass over entire sysfs tree to cause events to be rerun. This will ensure that device nodes are created with correct permissions and according to the rules of the running system.

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)