diff options
Diffstat (limited to 'mdev/lib')
-rwxr-xr-x | mdev/lib/dvbdev | 21 | ||||
l--------- | mdev/lib/hddev | 1 | ||||
-rwxr-xr-x | mdev/lib/inputdev | 50 | ||||
-rwxr-xr-x | mdev/lib/sddev | 97 | ||||
-rwxr-xr-x | mdev/lib/ttydev | 51 | ||||
-rwxr-xr-x | mdev/lib/usb | 25 |
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 |