aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rwxr-xr-xnltrigger58
-rwxr-xr-xrun_nldev2
3 files changed, 62 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 6d9d289..19a5fd6 100644
--- a/Makefile
+++ b/Makefile
@@ -42,6 +42,7 @@ install: all
@mkdir -p ${DESTDIR}${PREFIX}/bin
@cp -f ${NAME} ${DESTDIR}${PREFIX}/bin
@cp -f run_${NAME} ${DESTDIR}${PREFIX}/bin
+ @cp -f nltrigger ${DESTDIR}${PREFIX}/bin
@chmod 755 ${DESTDIR}${PREFIX}/bin/${NAME}
@echo installing manual page to ${DESTDIR}${MANPREFIX}/man1
@mkdir -p ${DESTDIR}${MANPREFIX}/man1
@@ -52,6 +53,7 @@ uninstall:
@echo removing executable file from ${DESTDIR}${PREFIX}/bin
@rm -f ${DESTDIR}${PREFIX}/bin/${NAME}
@rm -f ${DESTDIR}${PREFIX}/bin/run_${NAME}
+ @rm -f ${DESTDIR}${PREFIX}/bin/nltrigger
@echo removing manual page from ${DESTDIR}${PREFIX}/man1
@rm -f ${DESTDIR}${MANPREFIX}/man1/${NAME}.1
diff --git a/nltrigger b/nltrigger
new file mode 100755
index 0000000..f5733b4
--- /dev/null
+++ b/nltrigger
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+if [ $# -eq 0 ];
+then
+ printf "usage: %s subsystem [action]\n" "$(basename $0)" >&2
+ exit 1
+fi
+
+action="add"
+if [ $# -eq 2 ];
+then
+ action="$2"
+fi
+
+if [ "$1" != "all" ];
+then
+ if [ -d /sys/class/$1 ];
+ then
+ for i in /sys/class/$1/*/uevent;
+ do
+ echo $action > $i
+ done
+ exit 0
+ fi
+
+ if [ -d /sys/bus/$1 ];
+ then
+ for i in /sys/bus/$1/devices/*/uevent;
+ do
+ echo $action > $i
+ done
+ exit 0
+ fi
+
+ if [ -d /sys/devices/$1 ];
+ then
+ for i in /sys/devices/$1/*/uevent \
+ /sys/devices/$1/*/*/uevent;
+ do
+ echo $action > $i
+ done
+ exit 0
+ fi
+
+ printf "Could not find subsystem '%s'.\n" $i >&2
+ exit 1
+fi
+
+exit 0
+
+for i in /sys/class/*/*/uevent /sys/bus/*/devices/*/uevent \
+ /sys/devices/*/*/uevent /sys/devices/*/*/*/uevent;
+do
+ echo $action > $i
+done
+
+exit 0
+
diff --git a/run_nldev b/run_nldev
index d440e66..0809c7f 100755
--- a/run_nldev
+++ b/run_nldev
@@ -1,4 +1,6 @@
#!/bin/sh
+ln -s /proc/self/fd /dev/fd
+
/bin/nldev -kd 2>&1 | logger -p daemon.notice -t nldev