diff options
| author | mbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-08-26 01:04:43 +0000 | 
|---|---|---|
| committer | mbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-08-26 01:04:43 +0000 | 
| commit | 85b201f54538e4198183126a9f00130e2fc01df0 (patch) | |
| tree | 8c2f29b2a5290c423d69b096ff2608c378ab3412 | |
| parent | 3f494f8d220f2b1a40a6749e814b46eca48792ac (diff) | |
clean up hotplug mounting scripts
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4673 3c298f89-4303-0410-b956-a3cf2f4a3e73
| -rwxr-xr-x | package/base-files/default/etc/hotplug.d/block/01-mount | 26 | ||||
| -rwxr-xr-x | package/base-files/default/etc/hotplug.d/usb/01-ln | 33 | ||||
| -rw-r--r-- | package/base-files/default/etc/hotplug.d/usb/01-mount | 52 | 
3 files changed, 59 insertions, 52 deletions
| diff --git a/package/base-files/default/etc/hotplug.d/block/01-mount b/package/base-files/default/etc/hotplug.d/block/01-mount new file mode 100755 index 000000000..b6275e5a2 --- /dev/null +++ b/package/base-files/default/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 +	rm -rf /dev/$DEV /tmp/$DEV +	;; +esac +} 2>&1 | logger diff --git a/package/base-files/default/etc/hotplug.d/usb/01-ln b/package/base-files/default/etc/hotplug.d/usb/01-ln new file mode 100755 index 000000000..f9eda0298 --- /dev/null +++ b/package/base-files/default/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 diff --git a/package/base-files/default/etc/hotplug.d/usb/01-mount b/package/base-files/default/etc/hotplug.d/usb/01-mount deleted file mode 100644 index c4d356b0d..000000000 --- a/package/base-files/default/etc/hotplug.d/usb/01-mount +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -# Copyright (C) 2006 OpenWrt.org - -mount_storage() { -	cd /dev/discs -	for dev in disc*; do -		[ -f /tmp/.${dev}_id ] || { -			echo ${INTERFACE}${PRODUCT} > /tmp/.${dev}_id -			mount | grep /mnt/${dev} || ( -				[ -d /mnt/. ] || { -					mkdir -p /tmp/mnt -					ln -s /tmp/mnt / -				} -				cd $dev -				for part in part*; do -					path=/mnt/${dev}_${part##*part} -					mkdir -p ${path} -					mount ${part} ${path} -				done -			) -		} -	done -} - -umount_storage() { -	for tmp in /tmp/.*_id; do -		id=$(cat $tmp 2>&-) -		[ "${INTERFACE}${PRODUCT}" = "$id" ] && { -			rm -f $tmp -			disc=${tmp##*disc} -			disc=${disc%%_id} -			for disc in /mnt/disc${disc}*; do -				umount -f $disc || umount -l $disc -			done -		} -	done -} - -[ -f /proc/bus/usb/devices ] || mount -t usbfs none /proc/bus/usb - -case "$ACTION" in -	add) -		case "${INTERFACE%%/*}" in -			8) mount_storage ;; -		esac -	;; -	remove) -		case "${INTERFACE%%/*}" in -			8) umount_storage ;; -		esac -	;; -esac | 
