Use block events for the mounting/unmounting of external storage devices.
authormatein4 <matein4@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 30 Jan 2009 20:48:42 +0000 (20:48 +0000)
committermatein4 <matein4@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 30 Jan 2009 20:48:42 +0000 (20:48 +0000)
This handles both USB and IEEE1394 devices. It removes /sbin/usb-storage in
favor of using the block hotplug event. There are dummy scripts to handle the
plug in/out of USB and IEEE1394 devices for updating LEDs. Storage devices
are mount as a sub-directory under /mnt.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14289 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/etc/hotplug.d/block/10-mount [new file with mode: 0644]
package/base-files/files/etc/hotplug.d/ieee1394/10-ieee1394 [new file with mode: 0644]
package/base-files/files/etc/hotplug.d/usb/10-usb [new file with mode: 0644]
package/base-files/files/etc/hotplug.d/usb/10-usb-storage [deleted file]
package/base-files/files/sbin/usb-storage [deleted file]
package/hotplug2/files/hotplug2.rules

diff --git a/package/base-files/files/etc/hotplug.d/block/10-mount b/package/base-files/files/etc/hotplug.d/block/10-mount
new file mode 100644 (file)
index 0000000..b0104dd
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# Copyright (C) 2009 OpenWrt.org
+
+blkdev=`dirname $DEVPATH`
+if [ `basename $blkdev` != "block" ]; then
+
+    device=`basename $DEVPATH`
+    case "$ACTION" in
+       add)
+               mkdir -p /mnt/$device
+               mount /dev/$device /mnt/$device
+               ;;
+       remove)
+               umount /dev/$device
+               ;;
+    esac       
+
+fi
diff --git a/package/base-files/files/etc/hotplug.d/ieee1394/10-ieee1394 b/package/base-files/files/etc/hotplug.d/ieee1394/10-ieee1394
new file mode 100644 (file)
index 0000000..7e142a2
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Copyright (C) 2009 OpenWrt.org
+
+case "$ACTION" in
+       add)
+               # update LEDs
+               ;;
+       remove)
+               # update LEDs
+               ;;
+esac   
+               
diff --git a/package/base-files/files/etc/hotplug.d/usb/10-usb b/package/base-files/files/etc/hotplug.d/usb/10-usb
new file mode 100644 (file)
index 0000000..7e142a2
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Copyright (C) 2009 OpenWrt.org
+
+case "$ACTION" in
+       add)
+               # update LEDs
+               ;;
+       remove)
+               # update LEDs
+               ;;
+esac   
+               
diff --git a/package/base-files/files/etc/hotplug.d/usb/10-usb-storage b/package/base-files/files/etc/hotplug.d/usb/10-usb-storage
deleted file mode 100644 (file)
index 14001f6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2006 OpenWrt.org
-
-case "$ACTION" in
-       add)
-               [ -n "${INTERFACE}" ] &&
-               [ "$(expr substr ${INTERFACE} 1 2)" == "8/" ]  && {
-                       /sbin/usb-storage &
-               }
-               ;;
-esac   
-               
diff --git a/package/base-files/files/sbin/usb-storage b/package/base-files/files/sbin/usb-storage
deleted file mode 100755 (executable)
index e02efa8..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2007 OpenWrt.org
-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 2>/dev/null`; do
-               [ -d /sys/${DEVPATH}/${blk}/block/ ] && {
-                       cd 
-                       for disc in `find /sys/${DEVPATH}/${blk}/block -name "sd*"`; do
-                               sleep 2
-                               cd $disc
-                               for node in `find . -name "sd*" | cut -d "/" -f2`; do
-                                       echo "mounting /dev/${node} on /mnt/usbdrive"
-                                       mkdir -p /mnt/usbdrive
-                                       mount /dev/${node} /mnt/usbdrive
-                                       i=20    
-                               done
-                       done
-               }
-       done
-       sleep 1
-done
index 1ccc4f7..c52c60f 100644 (file)
@@ -1,6 +1,6 @@
 $include /etc/hotplug2-common.rules
 
-SUBSYSTEM ~~ (net|button|usb|platform) {
+SUBSYSTEM ~~ (net|button|usb|platform|ieee1394|block) {
        exec /sbin/hotplug-call %SUBSYSTEM%;
 }