From d5d3f4396697d58505b9961db0b281cdcf86c58b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Wed, 20 Jan 2010 16:01:54 +0000 Subject: [PATCH] - updated Changed files: udev-initramfs-bottom -> 1.2 udev-initramfs-hook -> 1.5 udev-initramfs-premount -> 1.3 --- udev-initramfs-bottom | 8 ++++++-- udev-initramfs-hook | 31 +++++++++++++++---------------- udev-initramfs-premount | 5 +++++ 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/udev-initramfs-bottom b/udev-initramfs-bottom index cc705f7..5becdaa 100644 --- a/udev-initramfs-bottom +++ b/udev-initramfs-bottom @@ -13,8 +13,12 @@ esac # Stop udevd, we'll miss a few events while we run init, but we catch up for proc in /proc/[0-9]*; do - [ -x $proc/exe ] || continue - [ "$(readlink $proc/exe)" != /sbin/udevd ] || kill ${proc#/proc/} + [ -x $proc/exe ] || continue + if [ "$(readlink $proc/exe)" = /sbin/udevd ]; then + # errors must be ignored due to a race with udevd child processes + # naturally terminating + kill ${proc#/proc/} 2> /dev/null || true + fi done # move the /dev tmpfs to the rootfs diff --git a/udev-initramfs-hook b/udev-initramfs-hook index a9c0cad..53efa16 100644 --- a/udev-initramfs-hook +++ b/udev-initramfs-hook @@ -16,28 +16,27 @@ esac # udevd uses unix domain sockets for communication force_load unix -mkdir -p $DESTDIR/etc/udev/rules.d -cp -a /etc/udev/*.conf $DESTDIR/etc/udev/ -for f in /etc/udev/rules.d/*device-mapper* ; do - cp -a "$f" $DESTDIR/etc/udev/rules.d/ -done - -if [ -e /etc/scsi_id.config ]; then - cp /etc/scsi_id.config $DESTDIR/etc/ -fi - copy_exec /sbin/udevd /sbin copy_exec /sbin/udevadm /sbin +mkdir -p $DESTDIR/etc/udev +cp -a /etc/udev/*.conf $DESTDIR/etc/udev/ + mkdir -p $DESTDIR/lib/udev/rules.d -cp -a /lib/udev/rules.d/* $DESTDIR/lib/udev/rules.d/ -rm -f $DESTDIR/etc/udev/rules.d/75-cd-aliases-generator.rules +for rules in 30-kernel-compat.rules 50-firmware.rules 50-udev-default.rules \ + 60-cdrom_id.rules 60-floppy.rules 60-persistent-input.rules \ + 60-persistent-storage.rules 61-persistent-storage-edd.rules \ + 80-drivers.rules 64-device-mapper.rules ; do + cp -a "$f" $DESTDIR/lib/udev/rules.d/ + if [ -e /etc/udev/rules.d/$rules ]; then + cp -p /etc/udev/rules.d/$rules $DESTDIR/lib/udev/rules.d/ + elif [ -e /lib/udev/rules.d/$rules ]; then + cp -p /lib/udev/rules.d/$rules $DESTDIR/lib/udev/rules.d/ + fi +done for program in /lib/udev/*_id; do copy_exec $program /lib/udev done -# udev README says: -# - The system must have the following group names resolvable at udev startup: -# disk, cdrom, floppy, tape, audio, video, lp, tty, dialout, kmem -egrep '^(disk|cdrom|floppy|tape|audio|video|lp|tty|dialout|kmem):' /etc/group > $DESTDIR/etc/group +copy_exec /sbin/blkid /sbin diff --git a/udev-initramfs-premount b/udev-initramfs-premount index 6123079..ddeebd4 100644 --- a/udev-initramfs-premount +++ b/udev-initramfs-premount @@ -20,6 +20,11 @@ mkdir -p /dev/.udev/queue/ /dev/.udev/rules.d/ udevadm trigger udevadm settle || true +if [ -d /sys/bus/scsi ]; then + modprobe -q scsi_wait_scan && modprobe -r scsi_wait_scan || true + udevadm settle || true +fi + # If the rootdelay parameter has been set, we wait a bit for devices # like usb/firewire disks to settle. if [ "$ROOTDELAY" ]; then -- 2.44.0