SOURCES: udev-cdrom_helper (NEW), udev-net_name_helper (NEW), udev...
freetz
freetz at pld-linux.org
Sun Apr 23 18:08:18 CEST 2006
Author: freetz Date: Sun Apr 23 16:08:18 2006 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- scripts/rules to handle network interfaces / cdrom block devices
(borrowed from debian/mandriva)
---- Files affected:
SOURCES:
udev-cdrom_helper (NONE -> 1.1) (NEW), udev-net_name_helper (NONE -> 1.1) (NEW), udev-functions (NONE -> 1.1) (NEW), udev-create_persistent.rules (NONE -> 1.1) (NEW), udev-create_persistent (NONE -> 1.1) (NEW), udev.blacklist (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/udev-cdrom_helper
diff -u /dev/null SOURCES/udev-cdrom_helper:1.1
--- /dev/null Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-cdrom_helper Sun Apr 23 18:08:13 2006
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+. /etc/udev/functions.udev
+
+read_rules
+
+add_first_available "cdrom"
+[ -n "$ID_CDROM_CD_RW" ] && add_first_available "cdrw"
+[ -n "$ID_CDROM_DVD" ] && add_first_available "dvd"
+[ -n "$ID_CDROM_DVD_RW" ] && add_first_available "dvdrw"
+
+write_rule "ENV{ID_PATH}==\"$ID_PATH\""
+echo $RESULTS
================================================================
Index: SOURCES/udev-net_name_helper
diff -u /dev/null SOURCES/udev-net_name_helper:1.1
--- /dev/null Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-net_name_helper Sun Apr 23 18:08:13 2006
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+. /etc/udev/functions.udev
+
+NET_ADDRESS=$1
+[ -z "`echo $NET_ADDRESS | tr -d '0:'`" ] && exit 0
+
+read_rules
+
+INTERFACE_BASE=`echo $INTERFACE | sed -e 's/[0-9]*$//'`
+INTERFACE_IFTAB=`awk "{ if (\\$3 == \"$NET_ADDRESS\") { print \\$1; exit } }" /etc/iftab`
+if [ -n "$INTERFACE_IFTAB" ] && ! already_exists "$INTERFACE_IFTAB"; then
+ RESULTS=$INTERFACE_IFTAB
+else
+ add_first_available $INTERFACE_BASE
+fi
+
+write_rule "SYSFS{address}==\"$NET_ADDRESS\""
+echo $RESULTS
================================================================
Index: SOURCES/udev-functions
diff -u /dev/null SOURCES/udev-functions:1.1
--- /dev/null Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-functions Sun Apr 23 18:08:13 2006
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+already_exists() {
+ echo $EXISTING | grep -q "\b$1\b"
+}
+
+add_result() {
+ if [ -z "$RESULTS" ]; then
+ RESULTS=$1
+ else
+ RESULTS="$RESULTS $1"
+ fi
+}
+
+add_first_available() {
+ BASE=$1
+ [ -z "$ADD" ] || already_exists $BASE || add_result $BASE
+ i=0
+ while [ $MAX_LOOPS -gt $i ] && already_exists "$BASE$i"; do
+ : $((i++))
+ done
+ add_result "$BASE$i"
+}
+
+write_rule() {
+ MATCH=$1
+ echo "SUBSYSTEM==\"$SUBSYSTEM\", ACTION==\"add\", $MATCH, $TARGET$ADD=\"$RESULTS\", ENV{GENERATED}=\"yes\"" >> $UDEV_RULES_FILE
+}
================================================================
Index: SOURCES/udev-create_persistent.rules
diff -u /dev/null SOURCES/udev-create_persistent.rules:1.1
--- /dev/null Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-create_persistent.rules Sun Apr 23 18:08:13 2006
@@ -0,0 +1,9 @@
+SUBSYSTEM=="block", ACTION=="add", ENV{ID_CDROM}=="?*", \
+ ENV{GENERATED}!="yes", \
+ PROGRAM="/usr/bin/flock /sys/block /lib/udev/cdrom_helper", \
+ SYMLINK+="%c"
+
+SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="?*", \
+ ENV{GENERATED}!="yes", \
+ PROGRAM="/usr/bin/flock /sys/class/net /lib/udev/net_name_helper %s{address}", \
+ NAME="%c"
================================================================
Index: SOURCES/udev-create_persistent
diff -u /dev/null SOURCES/udev-create_persistent:1.1
--- /dev/null Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-create_persistent Sun Apr 23 18:08:13 2006
@@ -0,0 +1,25 @@
+#!/bin/sh
+if [ -z "$SUBSYSTEM" ]; then
+ echo "SUBSYSTEM not defined, exiting"
+ exit -1
+fi
+
+MAX_LOOPS=1024
+UDEV_RULES_FILE=/etc/udev/rules.d/60-persistent-${SUBSYSTEM}.rules
+if [ $SUBSYSTEM = "net" ]; then
+ TARGET="NAME"
+ ADD=""
+else
+ TARGET="SYMLINK"
+ ADD="+"
+fi
+
+read_rules() {
+ if [ ! -f $UDEV_RULES_FILE ]; then
+ cat > $UDEV_RULES_FILE <<EOF
+# autogenerated udev persistent rules for $SUBSYSTEM subsystem
+#
+EOF
+ fi
+ EXISTING=`sed -ne "/^[[:space:]]*#.*/b; s/.*$TARGET$ADD=\"\([^\"]*\)\".*/\1/; T; p" $UDEV_RULES_FILE | sort -u`
+}
================================================================
Index: SOURCES/udev.blacklist
diff -u /dev/null SOURCES/udev.blacklist:1.1
--- /dev/null Sun Apr 23 18:08:18 2006
+++ SOURCES/udev.blacklist Sun Apr 23 18:08:13 2006
@@ -0,0 +1,6 @@
+# This directive blacklists all devices which are members of the display class.
+# It has the main effect of stopping the udev/modprobe from loading the
+# fb drivers.
+
+# vendor, device, subsystem_vendor, subsystem_device, class, class, class
+install pci:v*d*sv*sd*bc03sc*i* /bin/true
================================================================
More information about the pld-cvs-commit
mailing list