#!/bin/sh # /root/bin/usb-attach # (C) 2013 Pavel Polyakov LOG="/tmp/usb.log" #TMP="/var/run/.usb.tmp" USBFILE="/var/run/usb-" NEWCOM_FLAG="/var/run/.usb-newcom" echo>> "$LOG" echo "$0 $@" >> "$LOG" EVENT="$1" # notify=X= attach WHAT="$2" # DEVFS.CDEV NAME="$3" shift 4 case "$EVENT" in notify=ereport*) exit 0 ;; esac brief=`echo "$@"|sed -E 's/[a-z-]+=( |$)//g; y/;&()*?/______/;'` if [ "$EVENT" != "cron" ]; then /usr/bin/logger -t usb-attach "$EVENT $WHAT $NAME : $brief" fi echo -n "HOST=`hostname` ">> "$LOG" date>> "$LOG" echo "$0 $EVENT $WHAT $NAME : $brief" >>"$LOG" #echo "$0 $@">> "$LOG" #env >> "$LOG" #eval 'export $brief' #echo "vendor=$vendor" FN="$USBFILE$NAME" case "$EVENT" in notify=CREATE*) case "$NAME" in cuaU*init|zzzttyU*init|u*init) #echo "$NAME">>$TMP echo "$EVENT $NAME : processing" >> "$LOG" /usr/sbin/chown -R pdc /dev/usb* /etc/rc.d/devfs start ;; esac ;; # case "$NAME" in # u3g*|ucom*|uplcom*|uchcom*|umodem*|uftdi*) echo "$NAME">>$NEWCOM_FLAG; "$0" cron ;; # chown -R pdc /dev/usb* # esac notify=DESTROY*) case "$WHAT" in DEVFS.CDEV) find /dev -lname "$NAME" -delete ;; esac ;; attach*) #mv -f "$TMP" "$FN" > /dev/null 2>&1 #echo "$EVENT $WHAT $NAME : $brief" >>"$FN" #echo "mv -f $TMP $FN" >>"$LOG" case "$NAME" in #u3g*|ucom*|uplcom*|uchcom*|umodem*|uftdi*) u3g*|u*com*|umodem*|uftdi*) echo "$NAME">>$NEWCOM_FLAG; "$0" cron echo "$EVENT $NAME : processing" >> "$LOG" /usr/sbin/chown -R pdc /dev/usb* /etc/rc.d/devfs start ;; esac ;; detach*) echo "$EVENT $WHAT $NAME : $brief" >>"$FN" mv -f "$FN" "$FN.removed" > /dev/null 2>&1 && echo "$FN.removed" echo "mv -f $FN $FN.removed ">>"$LOG" ;; cron) if [ -r "$NEWCOM_FLAG" ]; then rm "$NEWCOM_FLAG" /root/bin/cam-list fi esac exit 0 /root/bin/usb-attach notify=CREATE DEVFS.CDEV uhid0 : class= devclass= device= subdevice= interface= sernum= port= vendor= subvendor= man= prod= PATH=/sbin:/bin:/usr/sbin:/usr/bin PWD=/ HOME=vr0 RC_PID=93476 * * * * * /root/bin/usb-attach cron devinfo -v pnpinfo