Compare commits
13 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22c1cc9bc2 | ||
|
|
5343435643 | ||
|
|
5c91f65fc5 | ||
|
|
eb424686b4 | ||
|
|
6132eeb5d9 | ||
|
|
6581278683 | ||
|
|
7780338862 | ||
|
|
9b86fedf33 | ||
|
|
9c5117be4c | ||
|
|
d63eb6b16c | ||
|
|
e36c8fb246 | ||
|
|
de8f844fac | ||
|
|
904c2ce7a9 |
32 changed files with 2526 additions and 1 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
udev-141.tar.bz2
|
||||
6
Makefile.git
Normal file
6
Makefile.git
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
Patch:
|
||||
@for i in 00*.patch; do n=$$[$$(echo $$i|cut -f 1 -d '-'|sed -e 's#^0*##')]; echo "Patch$$n: $$i";done
|
||||
|
||||
patch:
|
||||
@for i in 00*.patch; do n=$$[$$(echo $$i|cut -f 1 -d '-'|sed -e 's#^0*##')]; echo "%patch$$n -p1 -b .git$$n";done
|
||||
|
||||
34
Prioritize-dmraid-formats-over-md-raid.patch
Normal file
34
Prioritize-dmraid-formats-over-md-raid.patch
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
From 0ee946c41f7fb215c2cca2469e63af9369b2b7e2 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Tue, 5 May 2009 14:52:38 -0400
|
||||
Subject: [PATCH] Prioritize dmraid formats over md raid.
|
||||
|
||||
Since dmraid formats are what BIOS recognizes, they should be recognized
|
||||
before linux's "md" raid format.
|
||||
---
|
||||
extras/volume_id/lib/volume_id.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/extras/volume_id/lib/volume_id.c b/extras/volume_id/lib/volume_id.c
|
||||
index 48bfd88..b3793fd 100644
|
||||
--- a/extras/volume_id/lib/volume_id.c
|
||||
+++ b/extras/volume_id/lib/volume_id.c
|
||||
@@ -41,7 +41,6 @@ struct prober {
|
||||
};
|
||||
|
||||
static const struct prober prober_raid[] = {
|
||||
- { volume_id_probe_linux_raid, { "linux_raid", } },
|
||||
{ volume_id_probe_ddf_raid, { "ddf_raid", } },
|
||||
{ volume_id_probe_intel_software_raid, { "isw_raid", } },
|
||||
{ volume_id_probe_lsi_mega_raid, { "lsi_mega_raid", } },
|
||||
@@ -55,6 +54,7 @@ static const struct prober prober_raid[] = {
|
||||
{ volume_id_probe_lvm1, { "lvm1", } },
|
||||
{ volume_id_probe_lvm2, { "lvm2", } },
|
||||
{ volume_id_probe_highpoint_37x_raid, { "highpoint_raid", } },
|
||||
+ { volume_id_probe_linux_raid, { "linux_raid", } },
|
||||
};
|
||||
|
||||
static const struct prober prober_filesystem[] = {
|
||||
--
|
||||
1.6.2.2
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
obsolete udev, it is replaced by systemd
|
||||
25
fw_unit_symlinks.sh
Normal file
25
fw_unit_symlinks.sh
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh
|
||||
|
||||
SYSFS=/sys
|
||||
NAME=$1
|
||||
NUM=$2
|
||||
|
||||
for i in "${SYSFS}${DEVPATH}/${NAME}.*/specifier_id"; do
|
||||
if [ ! -f "$i" ]; then
|
||||
continue
|
||||
fi
|
||||
SPECID="`cat $i`"
|
||||
if [ $((SPECID)) -eq $((0x00609e)) ]; then
|
||||
echo -n "sbp2-${NUM} "
|
||||
elif [ $((SPECID)) -eq $((0x00a02d)) ]; then
|
||||
SWVER="`cat ${i%/specifier_id}/version`"
|
||||
if [ $((SWVER)) -ge $((0x100)) -a $((SWVER)) -lt $((0x110)) ]; then
|
||||
echo -n "iidc${NUM} "
|
||||
elif [ $((SWVER)) -eq $((0x10001)) ]; then
|
||||
echo -n "avc${NUM} "
|
||||
elif [ $((SWVER)) -ge $((0x14000)) -a $((SWVER)) -le $((0x14001)) ]; then
|
||||
echo -n "vendorfw${NUM} "
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo
|
||||
1
mirrors
Normal file
1
mirrors
Normal file
|
|
@ -0,0 +1 @@
|
|||
ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/
|
||||
1
sources
Normal file
1
sources
Normal file
|
|
@ -0,0 +1 @@
|
|||
1670fe81cabf5161319c52084cf81134 udev-141.tar.bz2
|
||||
324
start_udev
Executable file
324
start_udev
Executable file
|
|
@ -0,0 +1,324 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# start_udev
|
||||
#
|
||||
# script to initialize /dev by using udev.
|
||||
#
|
||||
# Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
|
||||
#
|
||||
# Released under the GPL v2 only.
|
||||
#
|
||||
# This needs to be run at the earliest possible point in the boot
|
||||
# process.
|
||||
#
|
||||
# Based on the udev init.d script
|
||||
#
|
||||
# Thanks go out to the Gentoo developers for proving
|
||||
# that this is possible to do.
|
||||
#
|
||||
# Yes, it's very verbose, feel free to turn off all of the echo calls,
|
||||
# they were there to make me feel better that everything was working
|
||||
# properly during development...
|
||||
#
|
||||
# don't use udev if sysfs is not mounted.
|
||||
|
||||
sysfs_dir=/sys
|
||||
|
||||
export TZ=/etc/localtime
|
||||
|
||||
[ -d $sysfs_dir/class ] || exit 1
|
||||
[ -r /proc/mounts ] || exit 1
|
||||
[ -x /sbin/udevd ] || exit 1
|
||||
[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
|
||||
udev_root=${udev_root-/dev}
|
||||
|
||||
if [ -f /dev/.in_sysinit ]; then
|
||||
exec >/dev/console 2>/dev/console </dev/console
|
||||
fi
|
||||
|
||||
. /etc/init.d/functions
|
||||
. /etc/sysconfig/udev
|
||||
|
||||
prog=udev
|
||||
bin=/sbin/udev
|
||||
udevd=/sbin/udevd
|
||||
MAKEDEV="/sbin/MAKEDEV"
|
||||
|
||||
# Check SELinux status
|
||||
selinuxfs="$(fstab_decode_str `LC_ALL=C awk '/ selinuxfs / { print $2 }' /proc/mounts`)"
|
||||
SELINUX_STATE=
|
||||
if [ -n "$selinuxfs" ] && [ "`cat /proc/self/attr/current`" != "kernel" ]; then
|
||||
if [ -r "$selinuxfs/enforce" ] ; then
|
||||
SELINUX_STATE=`cat "$selinuxfs/enforce"`
|
||||
else
|
||||
# assume enforcing if you can't read it
|
||||
SELINUX_STATE=1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
xargs_simple () {
|
||||
if [ "$1" = "-n" ]; then
|
||||
shift
|
||||
MAXNR="$1"
|
||||
shift
|
||||
else
|
||||
MAXNR=100
|
||||
fi
|
||||
NR=$MAXNR
|
||||
ARGS=""
|
||||
[ -z "$1" ] && set echo
|
||||
|
||||
while read line; do
|
||||
if [ $NR -gt 0 ]; then
|
||||
ARGS="$ARGS $line"
|
||||
NR=$[$NR - 1]
|
||||
else
|
||||
"$@" $ARGS
|
||||
NR=$MAXNR
|
||||
ARGS="$line"
|
||||
fi
|
||||
done
|
||||
if [ -n "$ARGS" ]; then
|
||||
"$@" $ARGS
|
||||
fi
|
||||
}
|
||||
|
||||
make_extra_nodes () {
|
||||
ln -snf /proc/self/fd $udev_root/fd
|
||||
ln -snf /proc/self/fd/0 $udev_root/stdin
|
||||
ln -snf /proc/self/fd/1 $udev_root/stdout
|
||||
ln -snf /proc/self/fd/2 $udev_root/stderr
|
||||
ln -snf /proc/kcore $udev_root/core
|
||||
|
||||
[ -d $udev_root/pts ] || mkdir -m 0755 $udev_root/pts
|
||||
[ -d $udev_root/shm ] || mkdir -m 0755 $udev_root/shm
|
||||
[ -a /dev/MAKEDEV ] || ln -s $MAKEDEV /dev/MAKEDEV;
|
||||
|
||||
USE_MD5="false"
|
||||
[ -x /usr/bin/md5sum -a "$UDEV_USE_MAKEDEV_CACHE" == "yes" ] && USE_MD5="true"
|
||||
|
||||
for i in 0 1 2 3 4 5 6 7; do
|
||||
[ -b /dev/loop$i ] || /bin/mknod -m 0640 /dev/loop$i b 7 $i
|
||||
/bin/chown root:disk /dev/loop$i
|
||||
done
|
||||
|
||||
for i in 0 1 2 3; do
|
||||
[ -c /dev/lp$i ] || /bin/mknod -m 0660 /dev/lp$i c 6 $i
|
||||
/bin/chown root:lp /dev/lp$i
|
||||
done
|
||||
|
||||
[ -d /dev/net ] || mkdir -p /dev/net
|
||||
[ -c /dev/net/tun ] || /bin/mknod -m 0600 /dev/net/tun c 10 200
|
||||
#/bin/chown root:root /dev/net/tun
|
||||
|
||||
[ -c /dev/ppp ] || /bin/mknod -m 0600 /dev/ppp c 108 0
|
||||
#/bin/chown root:root /dev/ppp
|
||||
|
||||
[ -c /dev/fuse ] || /bin/mknod -m 0666 /dev/fuse c 10 229
|
||||
#/bin/chown root:root /dev/fuse
|
||||
|
||||
[ -x /sbin/restorecon ] && /sbin/restorecon /dev/loop0 /dev/loop1 /dev/loop2 /dev/loop3 /dev/loop4 /dev/loop5 /dev/loop6 /dev/loop7 /dev/net/tun /dev/ppp /dev/lp0 /dev/lp1 /dev/lp2 /dev/lp3 /dev/fuse
|
||||
|
||||
if [ -x "$MAKEDEV" ]; then
|
||||
for i in /etc/udev/makedev.d/*.nodes; do
|
||||
if [ -f "$i" ]; then
|
||||
# use a little caching to speedup things
|
||||
if [ "$USE_MD5" == "true" ]; then
|
||||
# fix for MAKEDEV shell scripts
|
||||
[ -d /dev/.udev/makedev.d ] || mkdir -p /dev/.udev/makedev.d
|
||||
md5=$(/usr/bin/md5sum "$i"|(read a b; echo $a))-se$SELINUX_STATE
|
||||
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"
|
||||
set *
|
||||
if [ "$1" != "*" ]; then
|
||||
#echo "Warning: $devdir is deprecated. Please use /etc/udev/makedev.d/."
|
||||
cp -ar "$@" $udev_root/
|
||||
pushd "$udev_root" &> "$udev_root/null"
|
||||
[ -x /sbin/restorecon ] && /sbin/restorecon "$@"
|
||||
popd &> "$udev_root/null"
|
||||
fi
|
||||
popd &> "$udev_root/null"
|
||||
done
|
||||
}
|
||||
|
||||
kill_udevd() {
|
||||
if [ -x /sbin/pidof ]; then
|
||||
pid=`/sbin/pidof -x udevd`
|
||||
[ -n "$pid" ] && kill $pid
|
||||
fi
|
||||
}
|
||||
|
||||
findalias () {
|
||||
local n
|
||||
for n in "$1"/* ; do
|
||||
[ -h "$n" ] && continue
|
||||
[ -d "$n" ] && { findalias "$n" ; continue; }
|
||||
[ "${n##*/}" == "modalias" ] && echo $(cat $n)
|
||||
done
|
||||
}
|
||||
|
||||
# returns OK if $1 contains $2
|
||||
strstr() {
|
||||
[ "${1#*$2*}" = "$1" ] && return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
getval() {
|
||||
what=$1
|
||||
shift
|
||||
for arg; do
|
||||
if strstr "$arg" "$what="; then
|
||||
val=${arg#${what}=*}
|
||||
echo $val
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
wait_for_queue() {
|
||||
local timeout=${1:-0}
|
||||
local ret=0
|
||||
if [ $timeout -gt 0 ]; then
|
||||
/sbin/udevadm settle --timeout=$timeout
|
||||
else
|
||||
/sbin/udevadm settle
|
||||
fi
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ]; then
|
||||
echo -n "Wait timeout. Will continue in the background."
|
||||
fi
|
||||
return $ret;
|
||||
}
|
||||
|
||||
export ACTION=add
|
||||
prog=udev
|
||||
ret=0
|
||||
STRING=$"Starting $prog: "
|
||||
# propagate $udev_root from /sys
|
||||
echo -n "$STRING"
|
||||
|
||||
# mount the tmpfs on ${udev_root%/}, if not already done
|
||||
LANG=C awk "\$2 == \"${udev_root%/}\" && \$3 == \"tmpfs\" { exit 1 }" /proc/mounts && {
|
||||
if LANG=C fgrep -q "none ${udev_root%/}/pts " /proc/mounts; then
|
||||
PTSDIR=$(mktemp -d)
|
||||
mount --move $udev_root/pts "$PTSDIR"
|
||||
fi
|
||||
if LANG=C fgrep -q "none ${udev_root%/}/shm " /proc/mounts; then
|
||||
SHMDIR=$(mktemp -d)
|
||||
mount --move $udev_root/shm "$SHMDIR"
|
||||
fi
|
||||
mount -n -o mode=0755 -t tmpfs none "$udev_root"
|
||||
mkdir -m 0755 $udev_root/pts
|
||||
mkdir -m 0755 $udev_root/shm
|
||||
if [ -n "$PTSDIR" ]; then
|
||||
mount --move "$PTSDIR" $udev_root/pts
|
||||
rmdir "$PTSDIR"
|
||||
fi
|
||||
if [ -n "$SHMDIR" ]; then
|
||||
mount --move "$SHMDIR" $udev_root/shm
|
||||
rmdir "$SHMDIR"
|
||||
fi
|
||||
|
||||
ret=$[$ret + $?]
|
||||
}
|
||||
|
||||
make_extra_nodes &
|
||||
cmdline=$(cat /proc/cmdline)
|
||||
kill_udevd > "$udev_root/null" 2>&1
|
||||
rm -fr $udev_root/.udev > "$udev_root/null" 2>&1
|
||||
mkdir -p $udev_root/.udev > "$udev_root/null" 2>&1
|
||||
UDEV_OPTS=""
|
||||
if [ -f "/sys/class/tty/console/uevent" ]; then
|
||||
# trigger the sorted events
|
||||
echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
|
||||
|
||||
if strstr "$cmdline" udevtrace; then
|
||||
UDEV_OPTS="$UDEV_OPTS --debug-trace"
|
||||
fi
|
||||
|
||||
if strstr "$cmdline" udevlog; then
|
||||
UDEV_OPTS="$UDEV_OPTS --debug"
|
||||
/sbin/udevd -d $UDEV_OPTS 2>$udev_root/.udev/udev.log
|
||||
else
|
||||
/sbin/udevd -d $UDEV_OPTS
|
||||
fi
|
||||
|
||||
wait
|
||||
ret=$[$ret + $?]
|
||||
|
||||
udevtimeout=$(getval udevtimeout $cmdline)
|
||||
|
||||
if strstr "$cmdline" udevdebug; then
|
||||
/sbin/udevadm control --log_priority=debug
|
||||
fi
|
||||
if strstr "$cmdline" udevinfo; then
|
||||
/sbin/udevadm control --log_priority=info
|
||||
fi
|
||||
if strstr "$cmdline" udevchilds; then
|
||||
/sbin/udevadm control --max_childs_running=$(getval udevchilds $cmdline)
|
||||
fi
|
||||
|
||||
if [ "$UDEV_PERSISTENT_STORAGE" == "no" ]; then
|
||||
/sbin/udevadm control --env=UDEV_NO_PERSISTENT_STORAGE=1
|
||||
fi
|
||||
|
||||
if strstr "$cmdline" udevnopersist; then
|
||||
/sbin/udevadm control --env=UDEV_NO_PERSISTENT_STORAGE=1
|
||||
fi
|
||||
|
||||
/sbin/udevadm control --env=STARTUP=1
|
||||
|
||||
if strstr "$cmdline" modprobedebug; then
|
||||
/sbin/udevadm control --env=MODPROBE_OPTIONS="-s -v -q"
|
||||
echo
|
||||
findalias /sys | while read modules ; do
|
||||
if [ -n "$modules" ]; then
|
||||
echo "Loading modules for $modules in 5 seconds"
|
||||
sleep 5
|
||||
/sbin/modprobe -a -v -q $modules
|
||||
wait_for_queue $udevtimeout
|
||||
fi
|
||||
done
|
||||
echo "Triggering Rest"
|
||||
fi
|
||||
|
||||
/sbin/udevadm trigger
|
||||
ret=$[$ret + $?]
|
||||
wait_for_queue $udevtimeout
|
||||
ret=$[$ret + $?]
|
||||
wait
|
||||
/sbin/udevadm control --env=STARTUP=
|
||||
else
|
||||
echo -n " kernel too old for this udev version "
|
||||
/sbin/udevd -d $UDEV_OPTS
|
||||
ret=10
|
||||
|
||||
fi
|
||||
|
||||
ret=$[$ret + $?]
|
||||
[ $ret -eq 0 ] && success $"$STRING" || failure $"$STRING"
|
||||
echo
|
||||
exit 0
|
||||
24
udev-118-sysconf.patch
Normal file
24
udev-118-sysconf.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
diff -up udev-126/rules/rules.d/60-persistent-storage.rules.sysconf udev-126/rules/rules.d/60-persistent-storage.rules
|
||||
--- udev-126/rules/rules.d/60-persistent-storage.rules.sysconf 2008-07-31 09:40:37.000000000 +0200
|
||||
+++ udev-126/rules/rules.d/60-persistent-storage.rules 2008-08-08 15:35:57.000000000 +0200
|
||||
@@ -6,6 +6,8 @@
|
||||
# forward scsi device event to corresponding block device
|
||||
ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change"
|
||||
|
||||
+ENV{UDEV_NO_PERSISTENT_STORAGE}=="1", GOTO="persistent_storage_end"
|
||||
+
|
||||
ACTION!="add|change", GOTO="persistent_storage_end"
|
||||
SUBSYSTEM!="block", GOTO="persistent_storage_end"
|
||||
|
||||
diff -up udev-126/rules/rules.d/60-persistent-storage-tape.rules.sysconf udev-126/rules/rules.d/60-persistent-storage-tape.rules
|
||||
--- udev-126/rules/rules.d/60-persistent-storage-tape.rules.sysconf 2008-07-24 16:55:12.000000000 +0200
|
||||
+++ udev-126/rules/rules.d/60-persistent-storage-tape.rules 2008-08-08 15:35:57.000000000 +0200
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
# persistent storage links: /dev/tape/{by-id,by-path}
|
||||
|
||||
+ENV{UDEV_NO_PERSISTENT_STORAGE}=="1", GOTO="persistent_storage_tape_end"
|
||||
+
|
||||
ACTION!="add|change", GOTO="persistent_storage_tape_end"
|
||||
|
||||
# type 8 devices are "Medium Changers"
|
||||
17
udev-135-sepol.patch
Normal file
17
udev-135-sepol.patch
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
diff -up udev-135/configure.ac.sepol udev-135/configure.ac
|
||||
--- udev-135/configure.ac.sepol 2008-12-02 01:05:43.000000000 +0100
|
||||
+++ udev-135/configure.ac 2008-12-16 10:45:24.000000000 +0100
|
||||
@@ -55,6 +55,13 @@ if test "x$with_selinux" = xyes; then
|
||||
AC_DEFINE(USE_SELINUX, [1] ,[compile with SELinux support])
|
||||
SELINUX_LIBS="-lselinux"
|
||||
fi
|
||||
+if test "x$with_selinux" = xyes; then
|
||||
+ LIBS_save=$LIBS
|
||||
+ AC_CHECK_LIB(sepol, sepol_genbools,
|
||||
+ [SELINUX_LIBS="$SELINUX_LIBS -lsepol"],
|
||||
+ [])
|
||||
+ LIBS=$LIBS_save
|
||||
+fi
|
||||
AC_SUBST([SELINUX_LIBS])
|
||||
AM_CONDITIONAL(USE_SELINUX, [test "x$with_selinux" = xyes], [compile with SELinux support])
|
||||
|
||||
21
udev-136-cdrom.patch
Normal file
21
udev-136-cdrom.patch
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
commit 18cff5c3b2e3591fa46107288ea2d7026a15ccf3
|
||||
Author: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Sat Jan 10 17:44:09 2009 +0100
|
||||
|
||||
rules: fix typo in ide cd rule
|
||||
|
||||
Thanks to Scott, who found that.
|
||||
|
||||
diff --git a/rules/rules.d/50-udev-default.rules b/rules/rules.d/50-udev-default.rules
|
||||
index 119941b..7730f0d 100644
|
||||
--- a/rules/rules.d/50-udev-default.rules
|
||||
+++ b/rules/rules.d/50-udev-default.rules
|
||||
@@ -68,7 +68,7 @@ KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitio
|
||||
|
||||
# cdrom
|
||||
SUBSYSTEM=="block", KERNEL=="sr[0-9]*", SYMLINK+="scd%n", GROUP="cdrom"
|
||||
-SUBSYSTEM=="block", KERNEL=="hd[0-9]*", SUBSYSTEMS=="ide", ATTRS{media}=="cdrom", GROUP="cdrom"
|
||||
+SUBSYSTEM=="block", KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="cdrom", GROUP="cdrom"
|
||||
SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom"
|
||||
KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%k", GROUP="cdrom"
|
||||
KERNEL=="pktcdvd", NAME="pktcdvd/control", GROUP="cdrom"
|
||||
23
udev-136-tape.patch
Normal file
23
udev-136-tape.patch
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
commit 8b739dec53f8bca23e46e2d2a9732abee9b8d591
|
||||
Author: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Sat Jan 10 01:37:03 2009 +0100
|
||||
|
||||
fix naming for tape nst devices in /dev/tape/by-path/
|
||||
|
||||
$env{ID_PATH} includes the "-nst" suffix anyway, so we shouldn't append
|
||||
it a second time as part of the rule creating the device file symlink.
|
||||
|
||||
Signed-off-by: Lennart Poettering <lennart@poettering.net>
|
||||
|
||||
diff --git a/rules/rules.d/60-persistent-storage-tape.rules b/rules/rules.d/60-persistent-storage-tape.rules
|
||||
index d3226f1..8d53888 100644
|
||||
--- a/rules/rules.d/60-persistent-storage-tape.rules
|
||||
+++ b/rules/rules.d/60-persistent-storage-tape.rules
|
||||
@@ -19,6 +19,6 @@ KERNEL=="nst*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$en
|
||||
# by-path (parent device path)
|
||||
KERNEL=="st*[0-9]|nst*[0-9]", IMPORT{program}="path_id %p"
|
||||
KERNEL=="st*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}"
|
||||
-KERNEL=="nst*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}-nst"
|
||||
+KERNEL=="nst*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="tape/by-path/$env{ID_PATH}"
|
||||
|
||||
LABEL="persistent_storage_tape_end"
|
||||
20
udev-136-video.patch
Normal file
20
udev-136-video.patch
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
commit 66d9b44f8302efe383ada6a52d8431655614bf76
|
||||
Author: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Thu Jan 15 17:06:14 2009 +0100
|
||||
|
||||
rules: add drm devices to group "video"
|
||||
|
||||
https://bugs.launchpad.net/bugs/317430
|
||||
|
||||
diff --git a/rules/rules.d/50-udev-default.rules b/rules/rules.d/50-udev-default.rules
|
||||
index 7730f0d..95d82d7 100644
|
||||
--- a/rules/rules.d/50-udev-default.rules
|
||||
+++ b/rules/rules.d/50-udev-default.rules
|
||||
@@ -38,6 +38,7 @@ KERNEL=="card[0-9]*", NAME="dri/%k"
|
||||
KERNEL=="pmu", GROUP="video"
|
||||
KERNEL=="nvidia*|nvidiactl*", GROUP="video"
|
||||
SUBSYSTEM=="graphics", GROUP="video"
|
||||
+SUBSYSTEM=="drm", GROUP="video"
|
||||
|
||||
# DVB (video)
|
||||
SUBSYSTEM=="dvb", ENV{DVB_ADAPTER_NUM}=="?*", NAME="dvb/adapter$env{DVB_ADAPTER_NUM}/$env{DVB_DEVICE_TYPE}$env{DVB_DEVICE_NUM}", GROUP="video"
|
||||
13
udev-137-mdremove.patch
Normal file
13
udev-137-mdremove.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff -up udev-137/rules/packages/64-md-raid.rules.mdremove udev-137/rules/packages/64-md-raid.rules
|
||||
--- udev-137/rules/packages/64-md-raid.rules.mdremove 2009-02-05 08:47:35.000000000 +0100
|
||||
+++ udev-137/rules/packages/64-md-raid.rules 2009-02-05 08:47:58.000000000 +0100
|
||||
@@ -11,7 +11,8 @@ KERNEL!="md*", GOTO="md_end"
|
||||
# container devices have a metadata version of e.g. 'external:ddf' and
|
||||
# never leave state 'inactive'
|
||||
ATTR{md/metadata_version}=="external:[A-Za-z]*", ATTR{md/array_state}=="inactive", GOTO="md_ignore_state"
|
||||
-ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
|
||||
+ATTR{md/array_state}=="clear|inactive", GOTO="md_end"
|
||||
+ATTR{md/array_state}!="?*", GOTO="md_end"
|
||||
LABEL="md_ignore_state"
|
||||
|
||||
IMPORT{program}="/sbin/mdadm --detail --export $tempnode"
|
||||
20
udev-137-vol_id1.patch
Normal file
20
udev-137-vol_id1.patch
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
commit 7e5861ff70994fdc2e383e227ff24225ac5f7ce5
|
||||
Author: Karel Zak <kzak@redhat.com>
|
||||
Date: Sat Jan 24 00:37:23 2009 +0100
|
||||
|
||||
vol_id: add missing id->type to swap0
|
||||
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
|
||||
diff --git a/extras/volume_id/lib/linux_swap.c b/extras/volume_id/lib/linux_swap.c
|
||||
index 1698e9d..53649bd 100644
|
||||
--- a/extras/volume_id/lib/linux_swap.c
|
||||
+++ b/extras/volume_id/lib/linux_swap.c
|
||||
@@ -57,6 +57,7 @@ int volume_id_probe_linux_swap(struct volume_id *id, uint64_t off, uint64_t size
|
||||
return -1;
|
||||
|
||||
if (memcmp(buf, "SWAP-SPACE", 10) == 0) {
|
||||
+ id->type = "swap";
|
||||
strcpy(id->type_version, "1");
|
||||
goto found;
|
||||
}
|
||||
30
udev-137-vol_id2.patch
Normal file
30
udev-137-vol_id2.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
commit 3e2084614b4d8308d5c0ceb34ec3634eb3353c00
|
||||
Author: Karel Zak <kzak@redhat.com>
|
||||
Date: Sat Jan 24 00:37:22 2009 +0100
|
||||
|
||||
vol_id: fix ddf version string
|
||||
|
||||
The version string in DDF suberblock does not include the null terminator
|
||||
and the snprintf() function writes at most "size" bytes *including* the
|
||||
null byte.
|
||||
|
||||
old version:
|
||||
ID_FS_VERSION=02.00.0
|
||||
new version:
|
||||
ID_FS_VERSION=02.00.00
|
||||
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
|
||||
diff --git a/extras/volume_id/lib/ddf_raid.c b/extras/volume_id/lib/ddf_raid.c
|
||||
index 58bdae9..32f20ce 100644
|
||||
--- a/extras/volume_id/lib/ddf_raid.c
|
||||
+++ b/extras/volume_id/lib/ddf_raid.c
|
||||
@@ -87,7 +87,7 @@ int volume_id_probe_ddf_raid(struct volume_id *id, uint64_t off, uint64_t size)
|
||||
return -1;
|
||||
found:
|
||||
volume_id_set_uuid(id, ddf->guid, DDF_GUID_LENGTH, UUID_STRING);
|
||||
- snprintf(id->type_version, DDF_REV_LENGTH, "%s", ddf->ddf_rev);
|
||||
+ snprintf(id->type_version, DDF_REV_LENGTH + 1, "%s", ddf->ddf_rev);
|
||||
volume_id_set_usage(id, VOLUME_ID_RAID);
|
||||
id->type = "ddf_raid_member";
|
||||
return 0;
|
||||
8
udev-137.tar.bz2.sign
Normal file
8
udev-137.tar.bz2.sign
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
Comment: See http://www.kernel.org/signature.html for info
|
||||
|
||||
iD8DBQBJeTdlyGugalF9Dw4RAolBAJ9sKq3V9mpanhvpOMkYXky7DwF7sACgg0N4
|
||||
SsPqKyBV4nkSMxxLQwxJEdw=
|
||||
=PEri
|
||||
-----END PGP SIGNATURE-----
|
||||
12
udev-141-max_short.patch
Normal file
12
udev-141-max_short.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
diff -up udev-141/extras/scsi_id/scsi_serial.c.max_short udev-141/extras/scsi_id/scsi_serial.c
|
||||
--- udev-141/extras/scsi_id/scsi_serial.c.max_short 2009-09-14 18:31:54.000000000 +0200
|
||||
+++ udev-141/extras/scsi_id/scsi_serial.c 2009-09-14 18:31:57.000000000 +0200
|
||||
@@ -587,7 +587,7 @@ static int check_fill_0x83_prespc3(struc
|
||||
serial[j++] = hex_str[(page_83[4+i] & 0xf0) >> 4];
|
||||
serial[j++] = hex_str[ page_83[4+i] & 0x0f];
|
||||
}
|
||||
- strcpy(serial_short, serial);
|
||||
+ strncpy(serial_short, serial, max_len-1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
21
udev-142-rfcomm.patch
Normal file
21
udev-142-rfcomm.patch
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
commit 6d34b6af12144a89f2b41c2c2d7613706b34122a
|
||||
Author: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Tue Apr 28 11:24:25 2009 +0200
|
||||
|
||||
rules: add rfcomm* to group dialout
|
||||
|
||||
https://bugs.launchpad.net/bugs/368109
|
||||
|
||||
diff --git a/rules/rules.d/50-udev-default.rules b/rules/rules.d/50-udev-default.rules
|
||||
index 6bf45cc..6ce3e7f 100644
|
||||
--- a/rules/rules.d/50-udev-default.rules
|
||||
+++ b/rules/rules.d/50-udev-default.rules
|
||||
@@ -13,7 +13,7 @@ KERNEL=="vcs|vcs[0-9]*|vcsa|vcsa[0-9]*", GROUP="tty"
|
||||
KERNEL=="console", MODE="0600"
|
||||
|
||||
# serial
|
||||
-KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*", GROUP="dialout"
|
||||
+KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
|
||||
KERNEL=="ppp", MODE="0600"
|
||||
KERNEL=="mwave", NAME="modems/mwave", GROUP="dialout"
|
||||
KERNEL=="hvc*|hvsi*", GROUP="dialout"
|
||||
87
udev-post.init
Normal file
87
udev-post.init
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# udev-post Post script for udev, after all filesystems are mounted
|
||||
#
|
||||
# Authors: Harald Hoyer <harald@redhat.com>
|
||||
#
|
||||
# chkconfig: 12345 26 75
|
||||
# description: Moves the generated persistent udev rules to /etc/udev/rules.d
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# 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
|
||||
# Provides: udev-post
|
||||
### END INIT INFO
|
||||
|
||||
. /etc/rc.d/init.d/functions
|
||||
. /etc/sysconfig/udev
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start|reload)
|
||||
STRING=$"Adding udev persistent rules"
|
||||
|
||||
# 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
|
||||
echo -n $STRING
|
||||
cat $file >> /etc/udev/rules.d/$dest
|
||||
rc=$?
|
||||
rm -f $file
|
||||
if [ "$rc" -eq "0" ]; then
|
||||
success "$STRING"
|
||||
echo
|
||||
elif [ "$rc" -eq "1" ]; then
|
||||
failure "$STRING"
|
||||
echo
|
||||
fi
|
||||
done
|
||||
|
||||
touch /var/lock/subsys/udev-post
|
||||
exit 0
|
||||
;;
|
||||
stop)
|
||||
STRING=$"Generating udev makedev cache file"
|
||||
MAKEDEV="/sbin/MAKEDEV"
|
||||
USE_MD5="false"
|
||||
[ -x /usr/bin/md5sum -a "$UDEV_USE_MAKEDEV_CACHE" == "yes" ] && 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|stop|reload}"
|
||||
exit 1
|
||||
esac
|
||||
exit 0
|
||||
35
udev.git-055e40edc647d8ccfc27c9cd3163ab5dbf63ed6c.patch
Normal file
35
udev.git-055e40edc647d8ccfc27c9cd3163ab5dbf63ed6c.patch
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
From: Scott James Remnant <scott@ubuntu.com>
|
||||
Date: Thu, 14 May 2009 11:42:44 +0000 (+0100)
|
||||
Subject: OWNER/GROUP: fix if logic
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=055e40edc647d8ccfc27c9cd3163ab5dbf63ed6c
|
||||
|
||||
OWNER/GROUP: fix if logic
|
||||
|
||||
The introduction of the --resolve-names=early/never code introduced a
|
||||
bug to the OWNER/GROUP lookup. Previously if the name had contained $,
|
||||
lookup would have been performed later; after the patch, the key ended
|
||||
up being ignored!
|
||||
---
|
||||
|
||||
diff --git a/udev/udev-rules.c b/udev/udev-rules.c
|
||||
index b8b7e52..39fe55a 100644
|
||||
--- a/udev/udev-rules.c
|
||||
+++ b/udev/udev-rules.c
|
||||
@@ -1431,7 +1431,7 @@ static int add_rule(struct udev_rules *rules, char *line,
|
||||
} else if ((rules->resolve_names > 0) && strchr("$%", value[0]) == NULL) {
|
||||
uid = add_uid(rules, value);
|
||||
rule_add_key(&rule_tmp, TK_A_OWNER_ID, op, NULL, &uid);
|
||||
- } else if (rules->resolve_names == 0) {
|
||||
+ } else if (rules->resolve_names >= 0) {
|
||||
rule_add_key(&rule_tmp, TK_A_OWNER, op, value, NULL);
|
||||
}
|
||||
rule_tmp.rule.rule.flags = 1;
|
||||
@@ -1448,7 +1448,7 @@ static int add_rule(struct udev_rules *rules, char *line,
|
||||
} else if ((rules->resolve_names > 0) && strchr("$%", value[0]) == NULL) {
|
||||
gid = add_gid(rules, value);
|
||||
rule_add_key(&rule_tmp, TK_A_GROUP_ID, op, NULL, &gid);
|
||||
- } else if (rules->resolve_names == 0) {
|
||||
+ } else if (rules->resolve_names >= 0) {
|
||||
rule_add_key(&rule_tmp, TK_A_GROUP, op, value, NULL);
|
||||
}
|
||||
rule_tmp.rule.rule.flags = 1;
|
||||
31
udev.git-0c37798916bc87d72f5f1399d9e050307901db84.patch
Normal file
31
udev.git-0c37798916bc87d72f5f1399d9e050307901db84.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
From: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Wed, 13 May 2009 16:01:32 +0000 (+0200)
|
||||
Subject: fix possible endless loop for GOTO to non-existent LABEL
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=0c37798916bc87d72f5f1399d9e050307901db84
|
||||
|
||||
fix possible endless loop for GOTO to non-existent LABEL
|
||||
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=526365
|
||||
---
|
||||
|
||||
diff --git a/udev/udev-rules.c b/udev/udev-rules.c
|
||||
index fac418e..b8b7e52 100644
|
||||
--- a/udev/udev-rules.c
|
||||
+++ b/udev/udev-rules.c
|
||||
@@ -1610,6 +1610,7 @@ static int parse_file(struct udev_rules *rules, const char *filename, unsigned s
|
||||
if (strcmp(label, &rules->buf[rules->tokens[j].rule.label_off]) != 0)
|
||||
continue;
|
||||
rules->tokens[i].key.rule_goto = j;
|
||||
+ break;
|
||||
}
|
||||
if (rules->tokens[i].key.rule_goto == 0)
|
||||
err(rules->udev, "GOTO '%s' has no matching label in: '%s'\n", label, filename);
|
||||
@@ -2504,6 +2505,8 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
|
||||
break;
|
||||
}
|
||||
case TK_A_GOTO:
|
||||
+ if (cur->key.rule_goto == 0)
|
||||
+ break;
|
||||
cur = &rules->tokens[cur->key.rule_goto];
|
||||
continue;
|
||||
case TK_A_LAST_RULE:
|
||||
38
udev.git-55d8f5e208396589476583dad8f2a7f2db3e2ef5.patch
Normal file
38
udev.git-55d8f5e208396589476583dad8f2a7f2db3e2ef5.patch
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
From: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Thu, 16 Apr 2009 22:29:56 +0000 (+0200)
|
||||
Subject: cdrom_id: add Xen cdrom support
|
||||
X-Git-Tag: 142~43
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=55d8f5e208396589476583dad8f2a7f2db3e2ef5
|
||||
|
||||
cdrom_id: add Xen cdrom support
|
||||
---
|
||||
|
||||
diff --git a/extras/cdrom_id/60-cdrom_id.rules b/extras/cdrom_id/60-cdrom_id.rules
|
||||
index 12fbf63..a3e8e3c 100644
|
||||
--- a/extras/cdrom_id/60-cdrom_id.rules
|
||||
+++ b/extras/cdrom_id/60-cdrom_id.rules
|
||||
@@ -1,3 +1,5 @@
|
||||
-# import optical drive properties
|
||||
+# do not edit this file, it will be overwritten on update
|
||||
|
||||
-ACTION=="add|change", KERNEL=="sr[0-9]*|hd[a-z]|pcd[0-9]*", IMPORT{program}="cdrom_id --export $tempnode"
|
||||
+# import optical drive properties
|
||||
+ACTION=="add|change", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", \
|
||||
+ KERNEL=="sr[0-9]*|hd[a-z]|pcd[0-9]|xvd*", IMPORT{program}="cdrom_id --export $tempnode"
|
||||
diff --git a/extras/cdrom_id/cdrom_id.c b/extras/cdrom_id/cdrom_id.c
|
||||
index 7be0789..c578f12 100644
|
||||
--- a/extras/cdrom_id/cdrom_id.c
|
||||
+++ b/extras/cdrom_id/cdrom_id.c
|
||||
@@ -567,10 +567,8 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
/* check drive */
|
||||
- if (cd_inquiry(udev, fd) < 0) {
|
||||
- rc = 2;
|
||||
- goto exit;
|
||||
- }
|
||||
+ if (cd_inquiry(udev, fd) < 0)
|
||||
+ goto print;
|
||||
|
||||
/* read drive and possibly current profile */
|
||||
if (cd_profiles(udev, fd) < 0)
|
||||
45
udev.git-b4fa1b67f86c9555cbb41c57774761730f6b8939.patch
Normal file
45
udev.git-b4fa1b67f86c9555cbb41c57774761730f6b8939.patch
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
From: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Thu, 14 May 2009 10:57:19 +0000 (+0200)
|
||||
Subject: rule-generator: cd - skip by-path links if we create by-id links
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=b4fa1b67f86c9555cbb41c57774761730f6b8939
|
||||
|
||||
rule-generator: cd - skip by-path links if we create by-id links
|
||||
---
|
||||
|
||||
diff --git a/extras/rule_generator/75-cd-aliases-generator.rules b/extras/rule_generator/75-cd-aliases-generator.rules
|
||||
index e357a6a..e6da010 100644
|
||||
--- a/extras/rule_generator/75-cd-aliases-generator.rules
|
||||
+++ b/extras/rule_generator/75-cd-aliases-generator.rules
|
||||
@@ -1,6 +1,9 @@
|
||||
# these rules generate rules for the /dev/{cdrom,dvd,...} symlinks
|
||||
|
||||
-# the path of removable devices changes frequently
|
||||
-ACTION=="add", SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394", ENV{ID_CDROM}=="?*", ENV{GENERATED}!="?*", PROGRAM="write_cd_rules by-id", SYMLINK+="%c"
|
||||
+# the "path" of usb/ieee1394 devices changes frequently, use "id"
|
||||
+ACTION=="add", SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394", ENV{ID_CDROM}=="?*", ENV{GENERATED}!="?*", \
|
||||
+ PROGRAM="write_cd_rules by-id", SYMLINK+="%c", GOTO="persistent_cd_end"
|
||||
|
||||
ACTION=="add", SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{GENERATED}!="?*", PROGRAM="write_cd_rules", SYMLINK+="%c"
|
||||
+
|
||||
+LABEL="persistent_cd_end"
|
||||
diff --git a/extras/rule_generator/write_cd_rules b/extras/rule_generator/write_cd_rules
|
||||
index 398cd27..0d16fe6 100644
|
||||
--- a/extras/rule_generator/write_cd_rules
|
||||
+++ b/extras/rule_generator/write_cd_rules
|
||||
@@ -97,7 +97,7 @@ choose_rules_file
|
||||
|
||||
link_num=$(find_next_available 'cdrom[0-9]*')
|
||||
|
||||
-match="ENV{ID_CDROM}==\"?*\", $RULE"
|
||||
+match="SUBSYSTEM==\"block\", ENV{ID_CDROM}==\"?*\", $RULE"
|
||||
|
||||
comment="$ID_MODEL ($ID_PATH)"
|
||||
|
||||
@@ -108,6 +108,7 @@ comment="$ID_MODEL ($ID_PATH)"
|
||||
write_rule "$match" "dvd$link_num"
|
||||
[ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ] && \
|
||||
write_rule "$match" "dvdrw$link_num"
|
||||
+echo >> $RULES_FILE
|
||||
|
||||
unlock_rules_file
|
||||
|
||||
62
udev.git-d3c8231e738dd286591c1becc2f327ed55ed89d1.patch
Normal file
62
udev.git-d3c8231e738dd286591c1becc2f327ed55ed89d1.patch
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
From: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Mon, 25 May 2009 22:50:45 +0000 (+0200)
|
||||
Subject: cdrom_id: suppress ID_CDROM_MEDIA_STATE=blank for plain non-writable CDROM media
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=d3c8231e738dd286591c1becc2f327ed55ed89d1
|
||||
|
||||
cdrom_id: suppress ID_CDROM_MEDIA_STATE=blank for plain non-writable CDROM media
|
||||
|
||||
Some broken fake cdrom drives return ID_CDROM_MEDIA_STATE=blank.
|
||||
|
||||
$ /lib/udev/cdrom_id -d /dev/sr1
|
||||
main: probing: '/dev/sr1'
|
||||
cd_inquiry: INQUIRY: [Nokia ][S60 ][1.0 ]
|
||||
cd_profiles: GET CONFIGURATION: number of profiles 76
|
||||
cd_profiles: current profile 0x08
|
||||
cd_media_toc: READ TOC: len: 12
|
||||
cd_media_toc: last track 1 starts at block 0
|
||||
cd_media_info: disk type 00
|
||||
ID_CDROM=1
|
||||
ID_CDROM_MRW=1
|
||||
ID_CDROM_MRW_W=1
|
||||
ID_CDROM_MEDIA=1
|
||||
ID_CDROM_MEDIA_CD=1
|
||||
ID_CDROM_MEDIA_STATE=blank
|
||||
|
||||
Others work fine, but ID_CDROM_MEDIA_STATE is not needed for non-writable CDROM media:
|
||||
|
||||
$ /lib/udev/cdrom_id -d /dev/sr1
|
||||
main: probing: '/dev/sr1'
|
||||
cd_inquiry: INQUIRY: [SanDisk ][U3 Cruzer Micro ][8.02]
|
||||
cd_profiles: GET CONFIGURATION: number of profiles 72
|
||||
cd_profiles: current profile 0x08
|
||||
cd_media_toc: READ TOC: len: 20
|
||||
cd_media_toc: track=1 info=0x4(data) start_block=0
|
||||
cd_media_toc: last track 1 starts at block 0
|
||||
cd_media_info: disk type 00
|
||||
ID_CDROM=1
|
||||
ID_CDROM_MRW=1
|
||||
ID_CDROM_MRW_W=1
|
||||
ID_CDROM_MEDIA=1
|
||||
ID_CDROM_MEDIA_CD=1
|
||||
ID_CDROM_MEDIA_STATE=complete
|
||||
ID_CDROM_MEDIA_SESSION_COUNT=1
|
||||
ID_CDROM_MEDIA_TRACK_COUNT=1
|
||||
ID_CDROM_MEDIA_TRACK_COUNT_DATA=1
|
||||
---
|
||||
|
||||
diff --git a/extras/cdrom_id/cdrom_id.c b/extras/cdrom_id/cdrom_id.c
|
||||
index 0d873ae..921e534 100644
|
||||
--- a/extras/cdrom_id/cdrom_id.c
|
||||
+++ b/extras/cdrom_id/cdrom_id.c
|
||||
@@ -426,8 +426,10 @@ static int cd_media_info(struct udev *udev, int fd)
|
||||
|
||||
info(udev, "disk type %02x\n", header[8]);
|
||||
|
||||
- if ((header[2] & 3) < 4)
|
||||
+ /* exclude plain CDROM, some fake cdroms return 0 for "blank" media here */
|
||||
+ if (!cd_media_cd_rom && (header[2] & 3) < 4)
|
||||
cd_media_state = media_status[header[2] & 3];
|
||||
+
|
||||
if ((header[2] & 3) != 2)
|
||||
cd_media_session_next = header[10] << 8 | header[5];
|
||||
cd_media_session_count = header[9] << 8 | header[4];
|
||||
43
udev.git-d6f0b22d574c6a5e5f3430be3fc619d4b2f46cd5.patch
Normal file
43
udev.git-d6f0b22d574c6a5e5f3430be3fc619d4b2f46cd5.patch
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
From: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Thu, 23 Apr 2009 13:04:16 +0000 (+0200)
|
||||
Subject: cdrom_id: skip media tests if CDROM_DRIVE_STATUS != CDS_DISC_OK
|
||||
X-Git-Tag: 142~26
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=d6f0b22d574c6a5e5f3430be3fc619d4b2f46cd5
|
||||
|
||||
cdrom_id: skip media tests if CDROM_DRIVE_STATUS != CDS_DISC_OK
|
||||
---
|
||||
|
||||
diff --git a/extras/cdrom_id/cdrom_id.c b/extras/cdrom_id/cdrom_id.c
|
||||
index 371d6a2..0d873ae 100644
|
||||
--- a/extras/cdrom_id/cdrom_id.c
|
||||
+++ b/extras/cdrom_id/cdrom_id.c
|
||||
@@ -197,6 +197,16 @@ static int cd_capability_compat(struct udev *udev, int fd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int cd_media_compat(struct udev *udev, int fd)
|
||||
+{
|
||||
+ if (ioctl(fd, CDROM_DRIVE_STATUS, CDSL_CURRENT) != CDS_DISC_OK) {
|
||||
+ info(udev, "CDROM_DRIVE_STATUS != CDS_DISC_OK\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ cd_media = 1;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int cd_inquiry(struct udev *udev, int fd) {
|
||||
struct scsi_cmd sc;
|
||||
unsigned char inq[128];
|
||||
@@ -569,7 +579,11 @@ int main(int argc, char *argv[])
|
||||
goto exit;
|
||||
}
|
||||
|
||||
- /* check drive */
|
||||
+ /* check for media */
|
||||
+ if (cd_media_compat(udev, fd) < 0)
|
||||
+ goto print;
|
||||
+
|
||||
+ /* check if drive talks MMC */
|
||||
if (cd_inquiry(udev, fd) < 0)
|
||||
goto print;
|
||||
|
||||
28
udev.git-f58a9099bb2b18f3f683615324a4382b95446305.patch
Normal file
28
udev.git-f58a9099bb2b18f3f683615324a4382b95446305.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
From: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
|
||||
Date: Wed, 20 May 2009 14:12:22 +0000 (+0200)
|
||||
Subject: udevadm: settle - fix timeout
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=f58a9099bb2b18f3f683615324a4382b95446305
|
||||
|
||||
udevadm: settle - fix timeout
|
||||
|
||||
The timeout wasn't working when settle was run as root:
|
||||
# udevadm control --stop-exec-queue
|
||||
# udevadm trigger
|
||||
# udevadm settle --timeout=1
|
||||
... (hangs)
|
||||
|
||||
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
|
||||
---
|
||||
|
||||
diff --git a/udev/udevadm-settle.c b/udev/udevadm-settle.c
|
||||
index 3b26f10..52d9c0b 100644
|
||||
--- a/udev/udevadm-settle.c
|
||||
+++ b/udev/udevadm-settle.c
|
||||
@@ -167,6 +167,7 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[])
|
||||
sigprocmask(SIG_BLOCK, &mask, &oldmask);
|
||||
if (udev_ctrl_send_settle(uctrl) > 0)
|
||||
sigsuspend(&oldmask);
|
||||
+ sigprocmask(SIG_SETMASK, &oldmask, NULL);
|
||||
udev_ctrl_unref(uctrl);
|
||||
}
|
||||
}
|
||||
54
udev.git-f907449eee.patch
Normal file
54
udev.git-f907449eee.patch
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
From: Kay Sievers <kay.sievers@vrfy.org>
|
||||
Date: Tue, 21 Apr 2009 01:27:14 +0000 (+0200)
|
||||
Subject: cdrom_id: add and use ID_CDROM_MEDIA to decide if we run vol_id
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fhotplug%2Fudev.git;a=commitdiff_plain;h=f907449eee
|
||||
|
||||
cdrom_id: add and use ID_CDROM_MEDIA to decide if we run vol_id
|
||||
|
||||
Some broken mobile phones offer a faked cdrom drive with a media
|
||||
without any tracks.
|
||||
---
|
||||
|
||||
diff --git a/extras/cdrom_id/cdrom_id.c b/extras/cdrom_id/cdrom_id.c
|
||||
index c578f12..371d6a2 100644
|
||||
--- a/extras/cdrom_id/cdrom_id.c
|
||||
+++ b/extras/cdrom_id/cdrom_id.c
|
||||
@@ -76,6 +76,7 @@ static unsigned int cd_mrw;
|
||||
static unsigned int cd_mrw_w;
|
||||
|
||||
/* media info */
|
||||
+static unsigned int cd_media;
|
||||
static unsigned int cd_media_cd_rom;
|
||||
static unsigned int cd_media_cd_r;
|
||||
static unsigned int cd_media_cd_rw;
|
||||
@@ -325,6 +326,8 @@ static int cd_profiles(struct udev *udev, int fd)
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ cd_media = 1;
|
||||
+
|
||||
switch (cur_profile) {
|
||||
case 0x03:
|
||||
case 0x04:
|
||||
@@ -625,6 +628,8 @@ print:
|
||||
if (cd_mrw_w)
|
||||
printf("ID_CDROM_MRW_W=1\n");
|
||||
|
||||
+ if (cd_media)
|
||||
+ printf("ID_CDROM_MEDIA=1\n");
|
||||
if (cd_media_mo)
|
||||
printf("ID_CDROM_MEDIA_MO=1\n");
|
||||
if (cd_media_mrw)
|
||||
diff --git a/rules/rules.d/60-persistent-storage.rules b/rules/rules.d/60-persistent-storage.rules
|
||||
index 23c21f8..4095488 100644
|
||||
--- a/rules/rules.d/60-persistent-storage.rules
|
||||
+++ b/rules/rules.d/60-persistent-storage.rules
|
||||
@@ -55,7 +55,7 @@ ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PA
|
||||
ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end"
|
||||
|
||||
# probe filesystem metadata of optical drives which have a media inserted
|
||||
-KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT}=="?*", IMPORT{program}="vol_id --export --skip-raid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode"
|
||||
+KERNEL=="sr*", ENV{ID_CDROM_MEDIA}=="?*", IMPORT{program}="vol_id --export --skip-raid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode"
|
||||
|
||||
# probe filesystem metadata of disks
|
||||
KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode"
|
||||
8
udev.sysconfig
Normal file
8
udev.sysconfig
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# If set to "yes", generates cache shell files of what MAKEDEV would do.
|
||||
# May speedup some systems with slow disks.
|
||||
# EXPERIMENTAL - use at your own risk
|
||||
UDEV_USE_MAKEDEV_CACHE="no"
|
||||
|
||||
# Generates /dev/disk/by* symlinks.
|
||||
# Set to "no", if you *really* don't need them and want a speedup at boot time.
|
||||
UDEV_PERSISTENT_STORAGE="yes"
|
||||
1
upstream
Normal file
1
upstream
Normal file
|
|
@ -0,0 +1 @@
|
|||
udev-137.tar.bz2
|
||||
54
upstream-key.gpg
Normal file
54
upstream-key.gpg
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
pub 1024D/517D0F0E 2000-10-10 Linux Kernel Archives Verification Key <ftpadmin@kernel.org>
|
||||
Key fingerprint = C75D C40A 11D7 AF88 9981 ED5B C86B A06A 517D 0F0E
|
||||
sub 4096g/E50A8F2A 2000-10-10
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.0.3 (GNU/Linux)
|
||||
Comment: For info see http://www.gnupg.org
|
||||
|
||||
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
|
||||
=SZZb
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
Loading…
Add table
Add a link
Reference in a new issue