usb-storage hotplugging ok to commit ? blogic@bertha:/usr/src/OWRT$ svn diff package/hotplug2/ package/base-files/ Index: package/hotplug2/files/hotplug2.rules =================================================================== --- package/hotplug2/files/hotplug2.rules (revision 7674) +++ package/hotplug2/files/hotplug2.rules (working copy) @@ -17,6 +17,6 @@ next } -SUBSYSTEM ~~ (net|button) { +SUBSYSTEM ~~ (net|button|usb) { exec /sbin/hotplug-call %SUBSYSTEM%; } Index: package/base-files/files/etc/hotplug.d/usb/10-usb-storage =================================================================== --- package/base-files/files/etc/hotplug.d/usb/10-usb-storage (revision 0) +++ package/base-files/files/etc/hotplug.d/usb/10-usb-storage (revision 0) @@ -0,0 +1,15 @@ +#!/bin/sh + +case "$ACTION" in + add) + [ -n "${INTERFACE}" ] && + [ "$(expr substr ${INTERFACE} 1 2)" == "8/" ] && { + /sbin/usb-storage & + } + ;; + remove) + logger "remove called" + export >> /tmp/r + ;; +esac + Index: package/base-files/files/sbin/usb-storage =================================================================== --- package/base-files/files/sbin/usb-storage (revision 0) +++ package/base-files/files/sbin/usb-storage (revision 0) @@ -0,0 +1,26 @@ +#!/bin/sh + +logger "usb device is mass storage" +i=0 +while [ $i -le 10 ]; do + logger "waiting on usb drive $i ..." + i=$(($i+1)) + cd /sys${DEVPATH} + for blk in `find host* -type d`; do + cd /sys/${DEVPATH}/${blk} + BLK=$(find block* -type l 2> /dev/null) + [ -n "${BLK}" ] && { + cd /sys${DEVPATH}/${blk}/${BLK} + ls /dev/ > /tmp/d + sleep 2 + for node in `find sd* -type d | grep -v "/"`; do + echo "mounting /dev/${node} on /mnt/usbdrive" + mkdir -p /mnt/usbdrive + mount /dev/${node} /mnt/usbdrive + exit 0 + done + } + done + sleep 1 +done +