Package: udev
Version: 0.076-2
Severity: important
Tags: patch

udev's ide.agent script currently calculates a number for the device,
adds ten, and uses printf's "%x" (print hexadecimal number) option to
construct the device name.  Unfortunately, this only works for devices
named "hda" through "hdf" -- the device that should be called "hdg" gets
mistakenly called "hd10" since "10" is what comes after "f" in hex.  The
result is that the script hangs in wait_for_file because the file it's
looking for never exists.  It eventually times out, but not before
things like LVM and RAID get confused because their device nodes don't
exist yet.

The following patch makes ide.agent work for drives through "hdz":

--- /lib/udev/ide.agent.orig    2005-11-25 20:51:51.000000000 -0500
+++ /lib/udev/ide.agent 2005-11-27 14:53:56.000000000 -0500
@@ -14,7 +14,8 @@
 device=${DEVPATH#/devices/*/ide?/}
 drive=${device#?.}
 bus=${device%.?}
-name=$(printf "hd%x" $(($drive + $bus * 2 + 10)))
+index=$(($drive + $bus * 2 + 97))
+name=$(echo -e "hd\\$(printf %o $index)")
 procfile="/proc/ide/$name/media"

 wait_for_file $procfile

This will break if there are more than 26 IDE devices, so some extra
robustness wouldn't hurt, but such systems are probably rare so a simple
check-and-exit should suffice.

-- Package-specific info:
-- /etc/udev/rules.d/:
/etc/udev/rules.d/:
total 4
lrwxrwxrwx 1 root root  20 2005-04-09 18:36 020_permissions.rules -> 
../permissions.rules
lrwxrwxrwx 1 root root  19 2005-10-11 22:15 025_libgphoto2.rules -> 
../libgphoto2.rules
lrwxrwxrwx 1 root root  16 2005-10-28 21:59 025_libsane.rules -> 
../libsane.rules
lrwxrwxrwx 1 root root  12 2005-10-17 22:31 050_hal-plugdev.rules -> 
../hal.rules
lrwxrwxrwx 1 root root  19 2005-01-15 14:40 cd-aliases.rules -> 
../cd-aliases.rules
-rw-r--r-- 1 root root 128 2005-10-24 01:19 netif.rules
lrwxrwxrwx 1 root root  13 2005-01-15 14:40 udev.rules -> ../udev.rules
lrwxrwxrwx 1 root root  19 2005-08-14 19:26 z20_persistent.rules -> 
../persistent.rules
lrwxrwxrwx 1 root root  12 2005-07-03 17:20 z50_run.rules -> ../run.rules
lrwxrwxrwx 1 root root  16 2005-10-09 01:52 z55_hotplug.rules -> 
../hotplug.rules
lrwxrwxrwx 1 root root  19 2005-08-02 19:16 z60_alsa-utils.rules -> 
../alsa-utils.rules
lrwxrwxrwx 1 root root  15 2005-09-19 21:35 z60_hdparm.rules -> ../hdparm.rules
lrwxrwxrwx 1 root root  17 2005-07-03 17:20 z70_hotplugd.rules -> 
../hotplugd.rules

-- /sys/:
/sys/block/dm-0/dev
/sys/block/dm-1/dev
/sys/block/dm-2/dev
/sys/block/dm-3/dev
/sys/block/dm-4/dev
/sys/block/dm-5/dev
/sys/block/fd0/dev
/sys/block/hda/dev
/sys/block/hda/hda1/dev
/sys/block/hdb/dev
/sys/block/hdb/hdb1/dev
/sys/block/hdb/hdb2/dev
/sys/block/hdb/hdb5/dev
/sys/block/hdb/hdb6/dev
/sys/block/hdb/hdb7/dev
/sys/block/hdc/dev
/sys/block/hdd/dev
/sys/block/hde/dev
/sys/block/hde/hde1/dev
/sys/block/hdi/dev
/sys/block/hdi/hdi1/dev
/sys/block/hdi/hdi2/dev
/sys/block/hdk/dev
/sys/block/hdk/hdk1/dev
/sys/block/hdk/hdk2/dev
/sys/block/md0/dev
/sys/block/ram0/dev
/sys/block/ram10/dev
/sys/block/ram11/dev
/sys/block/ram12/dev
/sys/block/ram13/dev
/sys/block/ram14/dev
/sys/block/ram15/dev
/sys/block/ram1/dev
/sys/block/ram2/dev
/sys/block/ram3/dev
/sys/block/ram4/dev
/sys/block/ram5/dev
/sys/block/ram6/dev
/sys/block/ram7/dev
/sys/block/ram8/dev
/sys/block/ram9/dev
/sys/class/graphics/fb0/dev
/sys/class/input/event0/dev
/sys/class/input/event1/dev
/sys/class/input/mice/dev
/sys/class/input/mouse0/dev
/sys/class/misc/agpgart/dev
/sys/class/misc/device-mapper/dev
/sys/class/misc/rtc/dev
/sys/class/misc/vmmon/dev
/sys/class/sound/admmidi/dev
/sys/class/sound/adsp/dev
/sys/class/sound/amidi/dev
/sys/class/sound/audio/dev
/sys/class/sound/controlC0/dev
/sys/class/sound/dmmidi/dev
/sys/class/sound/dsp/dev
/sys/class/sound/hwC0D0/dev
/sys/class/sound/hwC0D2/dev
/sys/class/sound/midiC0D0/dev
/sys/class/sound/midiC0D1/dev
/sys/class/sound/midiC0D2/dev
/sys/class/sound/midi/dev
/sys/class/sound/mixer/dev
/sys/class/sound/pcmC0D0c/dev
/sys/class/sound/pcmC0D0p/dev
/sys/class/sound/pcmC0D1c/dev
/sys/class/sound/pcmC0D2c/dev
/sys/class/sound/pcmC0D2p/dev
/sys/class/sound/pcmC0D3p/dev
/sys/class/sound/seq/dev
/sys/class/sound/sequencer2/dev
/sys/class/sound/sequencer/dev
/sys/class/sound/timer/dev
/sys/class/usb_device/usbdev1.1/dev
/sys/class/usb_device/usbdev1.2/dev
/sys/class/usb_device/usbdev2.1/dev
/sys/class/usb_device/usbdev2.2/dev
/sys/class/usb/lp0/dev

-- Kernel configuration:
 isapnp_init not present.


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (990, 'unstable'), (800, 'stable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages udev depends on:
ii  initscripts                   2.86.ds1-6 Standard scripts needed for bootin
ii  libc6                         2.3.5-8    GNU C Library: Shared libraries an
ii  libselinux1                   1.26-1     SELinux shared libraries
ii  libsepol1                     1.8-1      Security Enhanced Linux policy lib
ii  lsb-base                      3.0-11     Linux Standard Base 3.0 init scrip
ii  makedev                       2.3.1-79   creates device files in /dev
ii  sed                           4.1.4-4    The GNU sed stream editor

udev recommends no packages.

-- debconf information:
  udev/devfs-warning:
* udev/reboot-warning:


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to