- moved all generated files to /var/lib/udev (also 70-persistent-cd.rules
70-persistent-net.rules)
- added a caching mechanism for MAKEDEV (saves some seconds on startup)
- added trigger for selinux-policy and MAKEDEV to remove the udev cache
files
This commit is contained in:
parent
c84cd4cf3d
commit
2a36d8e695
3 changed files with 112 additions and 12 deletions
36
start_udev
36
start_udev
|
|
@ -81,14 +81,34 @@ make_extra_nodes () {
|
|||
[ -d $udev_root/shm ] || mkdir -m 0755 $udev_root/shm
|
||||
[ -a /dev/MAKEDEV ] || ln -s $MAKEDEV /dev/MAKEDEV;
|
||||
|
||||
if [ -x $MAKEDEV ]; then
|
||||
[ -d /dev/.udev/makedev.d ] || mkdir -p /dev/.udev/makedev.d
|
||||
USE_MD5="false"
|
||||
[ -x /usr/bin/md5sum ] && USE_MD5="true"
|
||||
if [ -x "$MAKEDEV" ]; then
|
||||
for i in /etc/udev/makedev.d/*.nodes; do
|
||||
if [ -f "$i" ]; then
|
||||
( sed -e 's,#.*,,g' "$i" | \
|
||||
xargs_simple -n 100 $MAKEDEV -x )
|
||||
if [ -f "$i" ]; then
|
||||
# use a little caching to speedup things
|
||||
if [ "$USE_MD5" == "true" ]; then
|
||||
md5=$(/usr/bin/md5sum "$i"|(read a b; echo $a))
|
||||
if [ -f "/var/lib/udev/makedev.d/${md5}.sh" ];then
|
||||
md5file="/var/lib/udev/makedev.d/${md5}.sh"
|
||||
else
|
||||
md5file="/dev/.udev/makedev.d/${md5}.sh"
|
||||
fi
|
||||
if [ ! -f "$md5file" ]; then
|
||||
( sed -e 's,#.*,,g' "$i" | \
|
||||
xargs_simple -n 100 $MAKEDEV -x -a -S ) \
|
||||
> "$md5file"
|
||||
fi
|
||||
. "$md5file" >/dev/null 2>&1
|
||||
else
|
||||
( sed -e 's,#.*,,g' "$i" | \
|
||||
xargs_simple -n 100 $MAKEDEV -x )
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
for devdir in /etc/udev/devices /lib/udev/devices; do
|
||||
[ -d "$devdir" ] || continue
|
||||
pushd $devdir &> "$udev_root/null"
|
||||
|
|
@ -185,6 +205,14 @@ UDEV_OPTS=""
|
|||
if [ -f "/sys/class/tty/console/uevent" ]; then
|
||||
# trigger the sorted events
|
||||
echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
|
||||
|
||||
mkdir -p /dev/.udev/rules.d/
|
||||
for i in /var/lib/udev/rules.d/*.rules; do
|
||||
if [ -f "$i" ]; then
|
||||
cp "$i" /dev/.udev/rules.d/ >/dev/null 2>&1
|
||||
fi
|
||||
done
|
||||
|
||||
/sbin/udevd -d
|
||||
ret=$[$ret + $?]
|
||||
|
||||
|
|
|
|||
|
|
@ -4,11 +4,12 @@
|
|||
#
|
||||
# Authors: Harald Hoyer <harald@redhat.com>
|
||||
#
|
||||
# chkconfig: 345 26 75
|
||||
# chkconfig: 12345 26 75
|
||||
# description: Moves the generated persistent udev rules to /etc/udev/rules.d
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Default-Start: 345
|
||||
# Default-Start: 12345
|
||||
# Default-Stop: 0 6
|
||||
# Required-Start: $local_fs
|
||||
# Short-Description: Moves the generated persistent udev rules to /etc/udev/rules.d
|
||||
# Description: Moves the generated persistent udev rules to /etc/udev/rules.d
|
||||
|
|
@ -20,15 +21,32 @@
|
|||
# See how we were called.
|
||||
case "$1" in
|
||||
start|reload)
|
||||
STRING=$"Adding udev persistent rules"
|
||||
|
||||
STRING=$"Adding udev makedev cache file"
|
||||
# copy the MAKEDEV shell scripts generated before / was mounted read-write
|
||||
for file in /dev/.udev/makedev.d/*; do
|
||||
if [ -f "$file" ]; then
|
||||
echo -n $STRING
|
||||
cp "$file" /var/lib/udev/makedev.d/
|
||||
rc=$?
|
||||
rm -f "$file"
|
||||
if [ "$rc" -eq "0" ]; then
|
||||
success "$STRING"
|
||||
echo
|
||||
elif [ "$rc" -eq "1" ]; then
|
||||
failure "$STRING"
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
STRING=$"Adding udev persistent rule"
|
||||
# copy the rules generated before / was mounted read-write
|
||||
for file in /dev/.udev/tmp-rules--*; do
|
||||
dest=${file##*tmp-rules--}
|
||||
# check, if anything is todo
|
||||
[ "$dest" = '*' ] && exit 0
|
||||
[ "$dest" = '*' ] && break
|
||||
echo -n $STRING
|
||||
cat $file >> /etc/udev/rules.d/$dest
|
||||
cat $file >> /var/lib/udev/rules.d/$dest && cp /var/lib/udev/rules.d/$dest /dev/.udev/rules.d/
|
||||
rc=$?
|
||||
rm -f $file
|
||||
if [ "$rc" -eq "0" ]; then
|
||||
|
|
@ -43,13 +61,41 @@ case "$1" in
|
|||
exit 0
|
||||
;;
|
||||
stop)
|
||||
STRING=$"Generating udev makedev cache file"
|
||||
MAKEDEV="/sbin/MAKEDEV"
|
||||
USE_MD5="false"
|
||||
[ -x /usr/bin/md5sum ] && USE_MD5="true"
|
||||
if [ "$USE_MD5" == "true" -a -x "$MAKEDEV" ]; then
|
||||
for i in /etc/udev/makedev.d/*.nodes; do
|
||||
if [ -f "$i" ]; then
|
||||
# use a little caching to speedup things
|
||||
md5=$(/usr/bin/md5sum "$i"|(read a b; echo $a))
|
||||
md5file="/var/lib/udev/makedev.d/${md5}.sh"
|
||||
if [ ! -f "$md5file" ]; then
|
||||
echo -n $STRING
|
||||
( sed -e 's,#.*,,g' "$i" | \
|
||||
xargs $MAKEDEV -x -a -S ) \
|
||||
> "$md5file"
|
||||
rc=$?
|
||||
if [ "$rc" -eq "0" ]; then
|
||||
success "$STRING"
|
||||
echo
|
||||
elif [ "$rc" -eq "1" ]; then
|
||||
failure "$STRING"
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
rm -f /var/lock/subsys/udev-post
|
||||
exit 0
|
||||
;;
|
||||
status)
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start}"
|
||||
echo $"Usage: $0 {start|stop|reload}"
|
||||
exit 1
|
||||
esac
|
||||
exit 0
|
||||
|
|
|
|||
28
udev.spec
28
udev.spec
|
|
@ -6,7 +6,7 @@
|
|||
Summary: A userspace implementation of devfs
|
||||
Name: udev
|
||||
Version: 118
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
License: GPLv2
|
||||
Group: System Environment/Base
|
||||
Provides: udev-persistent = %{version}-%{release}
|
||||
|
|
@ -241,6 +241,10 @@ EOF
|
|||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
|
||||
install -m 0755 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/udev-post
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/var/lib/udev/
|
||||
mkdir -p $RPM_BUILD_ROOT/var/lib/udev/makedev.d
|
||||
mkdir -p $RPM_BUILD_ROOT/var/lib/udev/rules.d
|
||||
|
||||
%preun
|
||||
if [ "$1" = 0 -a -f %{_initrddir}/udev ]; then
|
||||
if [ -x /sbin/pidof ]; then
|
||||
|
|
@ -264,6 +268,12 @@ if [ "$1" -ge "1" -a -x /sbin/pidof ]; then
|
|||
/sbin/udevd -d
|
||||
fi
|
||||
fi
|
||||
|
||||
for i in 70-persistent-cd.rules 70-persistent-net.rules; do
|
||||
[ -f "/etc/udev/rules.d/$i" ] && ( mv /etc/udev/rules.d/$i /var/lib/udev/rules.d >/dev/null 2>&1 )
|
||||
done
|
||||
|
||||
/sbin/chkconfig --del udev-post >/dev/null 2>&1 || :
|
||||
/sbin/chkconfig --add udev-post
|
||||
exit 0
|
||||
|
||||
|
|
@ -281,6 +291,12 @@ if [ $2 = 0 ]; then
|
|||
fi
|
||||
exit 0
|
||||
|
||||
%triggerin -- selinux-policy
|
||||
rm -f /var/lib/udev/makenode.d/* >/dev/null 2>&1 || :
|
||||
|
||||
%triggerin -- MAKEDEV
|
||||
rm -f /var/lib/udev/makenode.d/* >/dev/null 2>&1 || :
|
||||
|
||||
%post -n libvolume_id -p /sbin/ldconfig
|
||||
%postun -n libvolume_id -p /sbin/ldconfig
|
||||
|
||||
|
|
@ -341,6 +357,10 @@ rm -rf $RPM_BUILD_ROOT
|
|||
%attr(0644,root,root) %{_mandir}/man8/cdrom_id*.8*
|
||||
%attr(0644,root,root) %{_mandir}/man8/create_floppy_devices*.8*
|
||||
|
||||
%dir %attr(0755,root,root) /var/lib/udev
|
||||
%dir %attr(0755,root,root) /var/lib/udev/makedev.d
|
||||
%dir %attr(0755,root,root) /var/lib/udev/rules.d
|
||||
|
||||
# Deprecated, but keep the ownership
|
||||
%ghost %dir %{_sysconfdir}/udev/scripts/
|
||||
%ghost %dir %{_sysconfdir}/udev/devices/
|
||||
|
|
@ -372,6 +392,12 @@ rm -rf $RPM_BUILD_ROOT
|
|||
%{_libdir}/pkgconfig/libvolume_id.pc
|
||||
|
||||
%changelog
|
||||
* Thu Mar 13 2008 Harald Hoyer <harald@redhat.com> 118-6
|
||||
- moved all generated files to /var/lib/udev
|
||||
(also 70-persistent-cd.rules 70-persistent-net.rules)
|
||||
- added a caching mechanism for MAKEDEV (saves some seconds on startup)
|
||||
- added trigger for selinux-policy and MAKEDEV to remove the udev cache files
|
||||
|
||||
* Wed Feb 20 2008 Harald Hoyer <harald@redhat.com> 118-4
|
||||
- made symlinks relative (rhbz#432878)
|
||||
- removed the backgrounding of node creation (rhbz#381461)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue