#!/bin/sh # watch USB state, by Thomas Tanner, requires coreutils-gnu t0=`date +%s` f=/tmp/usbst echo > $f while true; do sleep 0.05 st=`head -n2 /proc/driver/musb_hdrc` echo $st | cmp -s $f - && continue t=$((`date +%s`-t0)) echo change +$t @ `date +"%X %N"` echo $st > $f echo $st power=`echo "$st" | sed "s/.*Power=\(.*\),.*/0x\1/g;q"` decpwr= for flag in ensuspend suspendm remuse reset hsmode hsenab softconn isoupdate; do test $((power % 2)) = 1 && decpwr="$decpwr$flag " #decpwr="$decpwr$flag=$((power % 2)) " power=$((power/2)) done echo POWER: $decpwr devctl=`echo "$st" | sed "s/.*DevCtl=\(.*\)).*/0x\1/g;q"` decdev= for flag in session hr hm vbusshift vbus lsdev fsdev bdevice; do test $((devctl % 2)) = 1 && decdev="$decdev$flag " #decdev="$decdev$flag=$((devctl % 2)) " devctl=$((devctl/2)) done echo DEVCTL: $decdev echo done