aboutsummaryrefslogtreecommitdiffstats
path: root/mdev/lib
diff options
context:
space:
mode:
Diffstat (limited to 'mdev/lib')
-rwxr-xr-xmdev/lib/dvbdev21
l---------mdev/lib/hddev1
-rwxr-xr-xmdev/lib/inputdev50
-rwxr-xr-xmdev/lib/sddev97
-rwxr-xr-xmdev/lib/ttydev51
-rwxr-xr-xmdev/lib/usb25
6 files changed, 245 insertions, 0 deletions
diff --git a/mdev/lib/dvbdev b/mdev/lib/dvbdev
new file mode 100755
index 0000000..491efb9
--- /dev/null
+++ b/mdev/lib/dvbdev
@@ -0,0 +1,21 @@
+#!/bin/busybox ash
+
+# MDEV=dvb0.demux1 -> ADAPTER=dvb0 -> N=0
+ADAPTER=${MDEV%.*}
+N=${ADAPTER#dvb}
+# MDEV=dvb0.demux1 -> DEVB_DEV=demux1
+DVB_DEV=${MDEV#*.}
+
+case "$ACTION" in
+ add|"")
+ mkdir -p dvb/adapter${N}
+ mv ${MDEV} dvb/adapter${N}/${DVB_DEV}
+ ;;
+ remove)
+ rm -f dvb/adapter${N}/${DVB_DEV}
+ rmdir dvb/adapter${N} 2>/dev/null
+ rmdir dvb/ 2>/dev/null
+esac
+
+exit 0
+
diff --git a/mdev/lib/hddev b/mdev/lib/hddev
new file mode 120000
index 0000000..e1b38f6
--- /dev/null
+++ b/mdev/lib/hddev
@@ -0,0 +1 @@
+sddev \ No newline at end of file
diff --git a/mdev/lib/inputdev b/mdev/lib/inputdev
new file mode 100755
index 0000000..192dc54
--- /dev/null
+++ b/mdev/lib/inputdev
@@ -0,0 +1,50 @@
+#!/bin/busybox ash
+
+[ -n "$MDEV" ] || exit 0
+[ -n "$DEVNAME" ] || exit 0
+[ "$SUBSYSTEM" = "input" ] || exit 0
+
+BPATH="input"
+SPATH="/sys${DEVPATH}"
+
+NAME=""
+if [ -e ${SPATH} ];
+then
+ NAME=$(cat ${SPATH}/../name)
+fi
+
+cd $BPATH
+case "$ACTION" in
+ add|"")
+ if [ ! -e "$MDEV" ];
+ then
+ mv ../$MDEV .
+ fi
+
+ case "$NAME" in
+ "TPPS/2 IBM TrackPoint")
+ ln -s $MDEV mouse
+ ;;
+ "AT Translated Set 2 keyboard")
+ ln -s $MDEV kbd
+ ;;
+ esac
+ ;;
+ remove)
+ if [ -e "$MDEV" ];
+ then
+ rm -f $MDEV
+ fi
+
+ case "$NAME" in
+ "TPPS/2 IBM TrackPoint")
+ rm -f mouse
+ ;;
+ "AT Translated Set 2 keyboard")
+ rm -f kbd
+ ;;
+ esac
+ ;;
+esac
+
+exit 0
diff --git a/mdev/lib/sddev b/mdev/lib/sddev
new file mode 100755
index 0000000..c83f38c
--- /dev/null
+++ b/mdev/lib/sddev
@@ -0,0 +1,97 @@
+#!/bin/busybox ash
+
+# $MDEV
+# $ACTION
+
+blkidstr=$(blkid $(pwd)/${MDEV})
+UUID=$(echo -n "$blkidstr" \
+ | grep UUID \
+ | sed -e 's,.*UUID="\([^"]*\)".*,\1,')
+LABEL=$(echo -n "$blkidstr" \
+ | grep LABEL \
+ | sed -e 's,.*LABEL="\([^"]*\)".*,\1,')
+BLOCK=$(cat /sys${DEVPATH}/dev)
+
+case "$ACTION" in
+ add|"")
+ if [ -n "${UUID}" ];
+ then
+ mkdir -p disk/by-uuid
+ cd disk/by-uuid
+ [ -e "${UUID}" ] && rm -f ${UUID}
+ ln -s ../../${MDEV} ${UUID}
+ cd ../..
+ fi
+
+ if [ -n "${LABEL}" ];
+ then
+ mkdir -p disk/by-label
+ cd disk/by-uuid
+ [ -e "${LABEL}" ] && rm -f ${LABEL}
+ ln -s ../../${MDEV} ${LABEL}
+ cd ../..
+ fi
+
+ if [ -n "${BLOCK}" ];
+ then
+ mkdir -p block
+ cd block
+ [ -e "${BLOCK}" ] && rm -f ${BLOCK}
+ ln -s ../${MDEV} ${BLOCK}
+ cd ..
+ fi
+ ;;
+ remove)
+ [ -n "${UUID}" ] && [ -e disk/by-uuid/${UUID} ] \
+ && rm -f disk/by-uuid/${UUID}
+ [ -n "${LABEL}" ] && [ -e disk/by-uuid/${LABEL} ] \
+ && rm -f disk/by-uuid/${LABEL}
+ [ -n "${BLOCK}" ] && [ -e block/${BLOCK} ] \
+ && rm -f block/${BLOCK}
+
+ if [ -e disk/by-uuid ];
+ then
+ cd disk/by-uuid
+ SLS=$(ls -l \
+ | awk "/..\/..\/${MDEV}/ {print \$9 }")
+ for FILE in ${SLS};
+ do
+ rm -f ${FILE}
+ done
+ cd ../..
+
+ rmdir disk/by-uuid 2>/dev/null
+ fi
+ if [ -e disk/by-label ];
+ then
+ cd disk/by-label
+ SLS=$(ls -l \
+ | awk "/..\/..\/${MDEV}/ {print \$9 }")
+ for FILE in ${SLS};
+ do
+ rm -f ${FILE}
+ done
+ cd ../..
+
+ rmdir disk/by-label 2>/dev/null
+ fi
+ rmdir disk/ 2>/dev/null
+
+ if [ -e block ];
+ then
+ cd block
+ SLS=$(ls -l \
+ | awk "/..\/${MDEV}/ {print \$9 }")
+ for FILE in ${SLS};
+ do
+ rm -f ${FILE}
+ done
+ cd ..
+
+ rmdir block 2>/dev/null
+ fi
+ ;;
+esac
+
+exit 0
+
diff --git a/mdev/lib/ttydev b/mdev/lib/ttydev
new file mode 100755
index 0000000..a330d8f
--- /dev/null
+++ b/mdev/lib/ttydev
@@ -0,0 +1,51 @@
+#!/bin/busybox ash
+
+#
+# This will work, but it is a useless overhead for every tty
+# that might be created. Only use it, if there is really some
+# dirty compatibility with udev that won't resolve otherwise!
+# You have been warned!
+#
+
+# $MDEV
+# $ACTION
+
+if [ "${MDEV}" = "console" ] || [ "${MDEV}" = "null" ];
+then
+ chmod 600 ${MDEV}
+fi
+
+CHAR=$(cat /sys/${DEVPATH}/dev)
+
+case "$ACTION" in
+ add|"")
+ if [ -n "${CHAR}" ];
+ then
+ mkdir -p char
+ cd char
+ [ -e "${CHAR}" ] && rm -f ${CHAR}
+ ln -s ../${MDEV} ${CHAR}
+ cd ..
+ fi
+ ;;
+ remove)
+ [ -e char/${CHAR} ] && rm -f char/${CHAR}
+
+ if [ -e char ];
+ then
+ cd char
+ SLS=$(ls -l \
+ | awk "/..\/${MDEV}/ {print \$9 }")
+ for FILE in ${SLS};
+ do
+ rm -f ${FILE}
+ done
+ cd ..
+
+ rmdir char 2>/dev/null
+ fi
+ ;;
+esac
+
+exit 0
+
diff --git a/mdev/lib/usb b/mdev/lib/usb
new file mode 100755
index 0000000..af2bee2
--- /dev/null
+++ b/mdev/lib/usb
@@ -0,0 +1,25 @@
+#!/bin/busybox ash
+
+[ -n "$MDEV" ] || exit 0
+[ -n "$DEVNAME" ] || exit 0
+[ "$SUBSYSTEM" = "usb" ] || exit 0
+
+BUSPATH=$(dirname "$DEVNAME")
+DEVICENAME=$(basename "$DEVNAME")
+
+case "$ACTION" in
+ add|"")
+ if [ ! -d "$BUSPATH" ]; then
+ mkdir -p "$BUSPATH"
+ fi
+ mv "$MDEV" "$BUSPATH/$DEVICENAME"
+ ;;
+ remove)
+ if rm -f "$BUSPATH/$DEVICENAME" 2>/dev/null
+ then
+ rmdir -p "$BUSNAME" 2>/dev/null
+ fi
+ ;;
+esac
+
+exit 0