#!/bin/sh SYS_DIR=/sys/block/sd DEV_NODE=/dev/sd USB_FOLDER=/media/USB PART_NUM=/mnt/tmpfs/.usb_num DBG_FILE=/mnt/tmpfs/usb_debug DEV_NUM=a env >> ${DBG_FILE} #export >> ${DBG_FILE} checkSYS_1() { t=0 while [ 1 ] do b=0 for DEV_NUM in a b do if [ -d ${SYS_DIR}${DEV_NUM} ]; then #echo "find ${SYS_DIR}${DEV_NUM}" > /dev/ttyS0 b=1; break; fi done if [ ${b} -eq 1 ]; then #echo "out from checkSYS" > /dev/ttyS0 break; fi t=`expr $t + 1` if [ ${t} -ge 5 ]; then echo "no ${SYS_DIR}" > /dev/ttyS0 break; fi done } #get lock echo -ne "\x1" >/dev/xlock UNIONFS_SCRIPT=/etc/hotplug/union_hotplug if [ ! -e $UNIONFS_SCRIPT ] ; then UNIONFS_SCRIPT = "" ; fi if [ "$ACTION" = "add" -a "$SUBSYSTEM" = "scsi" ];then checkSYS_1 & wait if [ -d ${SYS_DIR}${DEV_NUM} ] ; then echo "add scsi" >> ${DBG_FILE} sleep 1 & wait i=0 echo "${i}" > ${PART_NUM} for i in 1 2 3 4 5 6 7 8 do if [ -d ${SYS_DIR}${DEV_NUM}/sd${DEV_NUM}${i} ] ; then echo "${i}" > ${PART_NUM} #echo "primary partition ${i}" > /dev/ttyS0 fi done fi /usr/local/bin/osdplug.hotplug --scan-plugins --dev-path ${DEVPATH} >> ${DBG_FILE} if [ "$?" = "0" ]; then # osdplug mounted the device echo "OSDPLUG mount successful" >> ${DBG_FILE} sleep 10 & wait /usr/local/plugins/osdplug/ipod.fuse /mnt/tmpfs/media/ipod/ 2&1 >> ${DBG_FILE} else echo "OSDPLUG mount FAILED" >> ${DBG_FILE} # mount the partitions i=`cat ${PART_NUM}` if [ ${i} -eq 0 ]; then if [ ! -d ${USB_FOLDER} ] ; then mkdir -p ${USB_FOLDER} fi mount -w ${DEV_NODE}${DEV_NUM} ${USB_FOLDER} -o noatime if [ ! "$?" = "0" ]; then rmdir ${USB_FOLDER} else if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB ADD ; fi fi elif [ ${i} -eq 1 ]; then if [ ! -d ${USB_FOLDER} ] ; then mkdir -p ${USB_FOLDER} fi mount -w ${DEV_NODE}${DEV_NUM}${i} ${USB_FOLDER} -o noatime if [ ! "$?" = "0" ]; then rmdir ${USB_FOLDER} else if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB ADD ; fi fi else n=0 j=1 while [ ${j} -le ${i} ] do if [ ${n} -eq 0 ]; then if [ ! -d ${USB_FOLDER} ] ; then mkdir -p ${USB_FOLDER} fi mount -w ${DEV_NODE}${DEV_NUM}${j} ${USB_FOLDER} -o noatime if [ ! "$?" = "0" ]; then rmdir ${USB_FOLDER} else if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB ADD ; fi n=`expr $n + 1` echo "${n}" > ${PART_NUM} fi else if [ ! -d ${USB_FOLDER}${n} ] ; then mkdir -p ${USB_FOLDER}${n} fi mount -w ${DEV_NODE}${DEV_NUM}${j} ${USB_FOLDER}${n} -o noatime if [ ! "$?" = "0" ]; then rmdir ${USB_FOLDER}${n} else if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB ADD ${n} ; fi n=`expr $n + 1` echo "${n}" > ${PART_NUM} fi fi j=`expr $j + 1` done fi #NVKEY_USBCONNECT x33 echo -ne "\x33" >/dev/neuros_ir fi fi if [ "$ACTION" = "remove" -a "$SUBSYSTEM" = "scsi" ]; then if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB DEL ; fi umount -f ${USB_FOLDER} rmdir ${USB_FOLDER} i=`cat ${PART_NUM}` if [ ${i} -gt 1 ]; then i=`expr $i - 1` j=1 while [ ${j} -le ${i} ] do if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB DEL ${j} ; fi umount -f ${USB_FOLDER}${j} rmdir ${USB_FOLDER}${j} j=`expr $j + 1` done fi echo -ne "\x32" >/dev/neuros_ir rm -f ${PART_NUM} fi #release lock echo -ne "\x0" >/dev/xlock exit 1