Universal Serial Bus MaNaGer

crabs_usbmgr-1.0.3 ©2004-2006 - Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)

~~ / USB / SBIN / usbmgr-hotplug
Makefile usbmgr-hotplug rc.usbmgr usbmgr_install.sh usbmgr_remove usbmgr_onstart
    1 #!/bin/bash
    2 #
    3 # =============================================================================
    4 #  crabs_usbmgr-1.0.3 : Universal Serial Bus MaNaGer
    5 #  Copyright (C) 2004-2006 : Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)
    6 #
    7 #  Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer
    8 #  et/ou le modifier en respectant les termes de la GNU General Public License
    9 #  version 2 ou (suite a votre propre choix) une version ulterieure.
   10 #
   11 #  Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais
   12 #  sans aucune garantie, meme si il est associe a un produit qui vous en
   13 #  propose une. Conformez-vous a la GNU General Public License pour avoir
   14 #  plus de precisions.
   15 #
   16 #  L'auteur ne peut etre tenu responsable de l'utilisation faite des
   17 #  composantes associees a ce projet (en partie ou dans leur totalite).
   18 #
   19 #  Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC
   20 #  de ce projet sous le nom gnu_gpl.txt
   21 #
   22 # =============================================================================
   23 #
   24 # On laisse du temps a l'usb de s'initialiser completement
   25 #
   26 mesg() {
   27     /usr/bin/logger -t crabs-usbmgr "$@"
   28     }
   29 
   30 if [ "$ACTION" != "add" ] ; then
   31     mesg ACTION is not add...
   32     exit 1
   33 fi
   34 fstype=vfat
   35 options='rw,unhide,uid=0,gid=0,umask=0,users'
   36 abc='abcdefghijklmnopqrstuvwxyz'
   37 ID1=`echo $PRODUCT | cut -d/ -f1`
   38 ID2=`echo $PRODUCT | cut -d/ -f2`
   39 GUID=`printf %04x%04x 0x$ID1 0x$ID2`
   40 sleep 2
   41 ls /proc/scsi | grep usb-storage > /dev/null || exit 1
   42 for usbstorage in /proc/scsi/usb-storage-*/* ; do
   43     grep "GUID: $GUID" $usbstorage > /dev/null || continue
   44     HOST=`basename $usbstorage`
   45     MNT=`dirname $usbstorage`
   46     MNT=`basename $MNT`
   47     MNT=`echo $MNT | cut -d- -f3`
   48     #UNIT=$MNT
   49     #((UNIT++))
   50     UNIT=`awk -v h=$HOST 'BEGIN{n=0;r=0} $5=="0"{n++} $1==h{r=n} END{print r}' /proc/scsi/sg/devices`
   51     mesg "HOST: $HOST   UNIT:$UNIT"
   52     LETTER=`echo $abc | cut -c$UNIT`
   53     SD="/dev/sd"$LETTER
   54     # est-elle deja montee ?
   55     grep $SD /var/run/usbmgr/liste 2>&1 >/dev/null
   56     if [ $? == 0 ] ; then continue ; fi
   57     MNT="/vol/usb-storage-"$MNT
   58     mesg "TRY ${SD}1 ON $MNT"
   59     fdisk -l $SD || exit 1
   60     [ -d $MNT ] || mkdir -p $MNT || exit 1
   61     if mount -t $fstype -o $options ${SD}1 $MNT ; then
   62         mesg "UNIT ${SD}1 ON $MNT"
   63         UNIT=${SD}1
   64     else
   65         # some stupid USB KEY or MP3 player don't have partitions...
   66         if mount -t $fstype -o $options ${SD} $MNT ; then
   67             mesg "UNIT ${SD} ON $MNT"
   68             UNIT=${SD}
   69         else
   70             rmdir $MNT
   71             continue
   72         fi
   73     fi
   74     [ -f /var/run/usbmgr/started ] && /usr/sbin/usbmgr_add $UNIT $MNT
   75     echo "$UNIT $MNT" >> /var/run/usbmgr/liste
   76     echo "#!/bin/bash" > $REMOVER
   77     echo "/usr/sbin/usbmgr_remove $MNT" >> $REMOVER
   78     echo "(grep '"$MNT "' /etc/mtab && umount $MNT) 2>&1 >/dev/null" >> $REMOVER
   79     echo "rmdir $MNT" >> $REMOVER
   80     chmod +x $REMOVER
   81 done
   82 
Makefile usbmgr-hotplug rc.usbmgr usbmgr_install.sh usbmgr_remove usbmgr_onstart
~~ / USB / SBIN / usbmgr-hotplug

Haut de page

Contacter crabs

Date de génération : 22/09/2011 21:48