From b088d50d80ccd6acf231663b51cbc27bedda2bdf Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Thu, 15 Dec 2005 11:46:52 +0000 Subject: [PATCH] - switched back to udevstart and use active /dev/.udev/queue waiting in start_udev - removed support for old kernels - refined some udev.rules --- start_udev | 46 ++++++++++++++++++++++++++++++---------------- udev.spec | 16 +++++++++++----- 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/start_udev b/start_udev index 83330c0..122df95 100755 --- a/start_udev +++ b/start_udev @@ -189,22 +189,22 @@ ide_scan() { return 0 } -event_replay () { - if [ -f "/sys/class/tty/console/uevent" ]; then - # trigger the sorted events - echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug - /sbin/udevd -w -d - return $? - else - sysctl -w kernel.hotplug="/sbin/udevsend" >/dev/null 2>&1 - scsi_replay > "$udev_root/null" 2>&1 - ide_scan > "$udev_root/null" 2>&1 - udevd -d - /sbin/udevstart - return $? - fi -} +wait_for_queue() { + loop=20 + while test ! -d /dev/.udev/queue; do + usleep 100000; + test "$loop" -gt 0 || return 1 + loop=$(($loop - 1)) + done + loop=200 + while test -d /dev/.udev/queue; do + usleep 100000; + test "$loop" -gt 0 || return 1 + loop=$(($loop - 1)) + done + return 0 +} export ACTION=add prog=udev @@ -239,7 +239,21 @@ LANG=C awk "\$2 == \"${udev_root%/}\" && \$3 == \"tmpfs\" { exit 1 }" /proc/moun } make_extra_nodes kill_udevd > "$udev_root/null" 2>&1 -event_replay +if [ -f "/sys/class/tty/console/uevent" ]; then + # trigger the sorted events + echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug + /sbin/udevd -d + ret=$[$ret + $?] + /sbin/udevstart + ret=$[$ret + $?] + wait_for_queue + ret=$[$ret + $?] +else + echo -n " kernel too old for this udev version " + /sbin/udevd -d + ret=10 +fi + ret=$[$ret + $?] [ $ret -eq 0 ] && success $"$STRING" || failure $"$STRING" echo diff --git a/udev.spec b/udev.spec index 9d51d36..23b72e5 100644 --- a/udev.spec +++ b/udev.spec @@ -5,7 +5,7 @@ Summary: A userspace implementation of devfs Name: udev Version: 077 -Release: 1 +Release: 2 License: GPL Group: System Environment/Base Provides: udev-persistent = 0:%{version}-%{release} @@ -32,7 +32,7 @@ Source24: path_id Source30: firmware_helper.c -Patch2: udev-075-daemon.patch +Patch2: udevstart2.patch Patch3: udev-075-selinux.patch @@ -51,8 +51,8 @@ BuildRequires: pam-devel glib2-devel bison Requires: pam %description -udev is a implementation of devfs in userspace using sysfs and -/sbin/hotplug. It requires a 2.6 kernel to run properly. +The udev package contains an implementation of devfs in +userspace using sysfs and netlink. Requires: sed @@ -60,7 +60,7 @@ Requires: sed %prep %setup -q -%patch2 -p1 -b .waitdaemon +%patch2 -p1 -b .udevstart2 %patch3 -p1 -b .selinux cp %{SOURCE21} . @@ -303,6 +303,12 @@ rm -rf $RPM_BUILD_ROOT %attr(0644,root,root) %{_mandir}/man8/vol_id*.8* %changelog +* Thu Dec 15 2005 Harald Hoyer - 077-2 +- switched back to udevstart and use active /dev/.udev/queue waiting + in start_udev +- removed support for old kernels +- refined some udev.rules + * Mon Dec 13 2005 Harald Hoyer - 077-1 - version 077 - patch to include udevstart2 in udevd and delay daemonize until queue is empty