diff options
Diffstat (limited to 'package/base-files/files/etc/hotplug.d')
-rwxr-xr-x | package/base-files/files/etc/hotplug.d/block/01-mount | 26 | ||||
-rw-r--r-- | package/base-files/files/etc/hotplug.d/net/10-net | 35 | ||||
-rwxr-xr-x | package/base-files/files/etc/hotplug.d/usb/01-ln | 33 |
3 files changed, 94 insertions, 0 deletions
diff --git a/package/base-files/files/etc/hotplug.d/block/01-mount b/package/base-files/files/etc/hotplug.d/block/01-mount new file mode 100755 index 0000000000..db8ccdabd6 --- /dev/null +++ b/package/base-files/files/etc/hotplug.d/block/01-mount @@ -0,0 +1,26 @@ +#!/bin/sh +# Copyright (C) 2006 OpenWrt.org + +DEV=${DEVPATH##*/} +{ +echo "ACTION=$ACTION DEVPATH=$DEVPATH $0 $*" +case "$ACTION" in +add) + echo -ne "waiting for $DEV" + while [ ! -b /dev/$DEV ]; do { + echo -ne "." + sleep 1 + time=$((time+1)); [ $time -gt 10 ] && break + }; done + + [ ${DEV%%[0-9]} != ${DEV} ] && { + mkdir -p /tmp/$DEV + mount /dev/$DEV /tmp/$DEV -t auto -o sync + } + ;; +remove) + umount /tmp/$DEV && rmdir /tmp/$DEV + rm -f /dev/$DEV /tmp/$DEV + ;; +esac +} 2>&1 | logger diff --git a/package/base-files/files/etc/hotplug.d/net/10-net b/package/base-files/files/etc/hotplug.d/net/10-net new file mode 100644 index 0000000000..9b72338ce8 --- /dev/null +++ b/package/base-files/files/etc/hotplug.d/net/10-net @@ -0,0 +1,35 @@ +# Copyright (C) 2006 OpenWrt.org + +include /lib/network + +addif() { + scan_interfaces + local cfg="$(find_config "$INTERFACE")" + + # check the autoload setting + config_get auto "$cfg" auto + case "$auto" in + 1|on|enabled) setup_interface "$INTERFACE";; + esac + + + # find all vlan configurations for this interface and set them up as well + for ifc in $interfaces; do + config_get iftype "$ifc" type + config_get ifs "$ifc" device + for dev in $ifs; do + [ "${dev%%\.*}" = "$INTERFACE" -a "$dev" != "$INTERFACE" ] && { + add_vlan "$dev" + } + done + done +} + +case "$ACTION" in + add|register) + case "$PHYSDEVDRIVER" in + natsemi) sleep 1;; + esac + addif + ;; +esac diff --git a/package/base-files/files/etc/hotplug.d/usb/01-ln b/package/base-files/files/etc/hotplug.d/usb/01-ln new file mode 100755 index 0000000000..f9eda02988 --- /dev/null +++ b/package/base-files/files/etc/hotplug.d/usb/01-ln @@ -0,0 +1,33 @@ +#!/bin/sh +# Copyright (C) 2006 OpenWrt.org + +case "$ACTION" in +add) + [ -f /sys/${DEVPATH}/idVendor -a "$(cat /sys/${DEVPATH}/idVendor)" -ne "0000" ] && { + cd /sys/${DEVPATH} + + NUM=${DEVPATH##*/} + HOST=$(find ${NUM}:*/host* -type d) + HOST=${HOST##*/host} + + echo -ne "waiting for disk" + + while [ ! -d "/dev/scsi/host${HOST}/bus0/target0/lun0" ]; do { + echo -ne "." + sleep 1; + time=$((time+1)); [ $time -gt 10 ] && break + }; done + echo + + cd /sys/bus/scsi/devices/${HOST}\:0\:0\:0 + for BLOCK in block:* ; do { + cd ${BLOCK} + BLOCK=${BLOCK##block\:} + ln -sf /dev/scsi/host${HOST}/bus0/target0/lun0/disc /dev/${BLOCK} + for DEV in ${BLOCK}*; do { + ln -sf /dev/scsi/host${HOST}/bus0/target0/lun0/part${DEV##$BLOCK} /dev/$DEV + }; done + }; done + } 2>&1 | logger + ;; +esac |