parent
aae33f76f8
commit
69fb72bf22
@ -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 |
@ -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 |
@ -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 |
|
Loading…
Reference in new issue