#!/bin/sh if [ "$(pidof $(basename $0))" != "$$" ]; then echo "handing previous event, sleep 2" > /dev/console sleep 2 fi old_usbdisknum=$(cat /tmp/usbdisknum) usb1num=$(cat /tmp/usb1num) usb3num=$(cat /tmp/usb3num) new_usbdisknum=$(grep "Driver=usb-storage" /proc/bus/usb/devices | wc -l) old_printer1num=$(cat /tmp/printer1num) old_printer3num=$(cat /tmp/printer3num) new_printer1num=$(grep "product" /proc/NetUSB/0/device | wc -l) new_printer3num=$(grep "product" /proc/NetUSB/1/device | wc -l) if [ "x$old_usbdisknum" = "x" ]; then old_usbdisknum=0 fi if [ "x$usb1num" = "x" ]; then usb1num=0 fi if [ "x$usb3num" = "x" ]; then usb3num=0 fi if [ "x$old_printer1num" = "x" ]; then old_printer1num=0 fi if [ "x$old_printer3num" = "x" ]; then old_printer3num=0 fi if [ $new_usbdisknum -eq $old_usbdisknum ]; then #eSATA disk recognized. #cd /sys/block/sdc; ls -l #device -> ../../devices/platform/msm_sata.0/ahci.0/ata1/host0/target0:0:0/0:0:0:0 #To get ata1 when mounted ls -l /sys/block | grep sd | awk '{print $9}' > /tmp/disk_event while read LINE do sata_port=$(ls -l /sys/block/$LINE | grep ata | awk '{print $11}' | awk -F/ '{print $7}') if [ "$sata_port" = "ata1" ]; then echo "SATA disk mounted!!!" ledcontrol -n sata_blink -c green -s on echo "$LINE" > /tmp/sata_partition echo "1" > /tmp/satadisknum fi done /tmp/satadisknum fi fi #USB printer add /proc/NetUSB/0/device /proc/NetUSB/1/device if [ $new_printer1num -ge 1 -a $new_printer1num -gt $old_printer1num ]; then ledcontrol -n usb1_blink -c green -s on elif [ $new_printer1num -eq 0 -a $usb1num -eq 0 ]; then ledcontrol -n usb1 -c green -s off fi if [ $new_printer3num -ge 1 -a $new_printer3num -gt $old_printer3num ]; then ledcontrol -n usb3_blink -c green -s on elif [ $new_printer3num -eq 0 -a $usb3num -eq 0 ]; then ledcontrol -n usb3 -c green -s off fi elif [ $new_usbdisknum -ge 1 -a $new_usbdisknum -gt $old_usbdisknum ]; then if [ $(($new_usbdisknum - $old_usbdisknum)) -ge 2 ]; then echo "plug two usb disk at same time, sleep 1" > /dev/console sleep 1 fi echo "New USB disk mounted!!!" > /dev/console ls -l /sys/block | grep sd | awk '{print $9}' > /tmp/disk_event while read LINE do #cd /sys/block/sda; ls -l #../../devices/platform/ipq-dwc3.0/dwc3.0/xhci-hcd.0/usb1/1-1/1-1:1.0/host4/target4:0:0/4:0:0:0 #../../devices/platform/ipq-dwc3.1/dwc3.1/xhci-hcd.1/usb3/4-1/4-1:1.0/host3/target3:0:0/3:0:0:0 # To get usb1 or usb3 usb_port=$(ls -l /sys/block/$LINE | grep usb | awk '{print $11}' | awk -F/ '{print $8}') #usb_name=`echo $usb_port | sed 's/[0-9]//g'` #usb_num=`echo $usb_port | cut -c 4-` usb_interface=$(ls -l /sys/block/$LINE | grep usb | awk '{print $11}' | awk -F/ '{print $6}') echo "usb_port= $usb_port" > /dev/console echo "usb_interface =$usb_interface" > /dev/console if [ "$usb_interface" = "dwc3.0" ]; then if [ $usb1num -eq 0 ]; then ledcontrol -n usb1_blink -c green -s on echo 1 > /tmp/usb1num else #For USB hub case for i in `df | grep sd | awk '{print $1}' | awk -F/ '{print $3}' | sed 's/[0-9]//g'` do if [ "$i" = "$LINE" ]; then usb1_flag=1 break; else usb1_flag=0 fi done if [ $usb1_flag -eq 0 ]; then ledcontrol -n usb1_blink -c green -s on echo 1 > /tmp/usb1num fi fi elif [ "$usb_interface" = "dwc3.1" ]; then if [ $usb3num -eq 0 ]; then ledcontrol -n usb3_blink -c green -s on echo 1 > /tmp/usb3num else #For USB hub case for j in `df | grep sd | awk '{print $1}' | awk -F/ '{print $3}' | sed 's/[0-9]//g'` do if [ "$j" = "$LINE" ]; then usb3_flag=1 break; else usb3_flag=0 fi done if [ $usb3_flag -eq 0 ]; then ledcontrol -n usb3_blink -c green -s on echo 1 > /tmp/usb3num fi fi fi done /tmp/disk_left disk_left=$(cat /tmp/disk_left) if [ "x$disk_left" = "x" ]; then #if user plug off disk during the LED still blink, we should turn off blink firstly then do turn off led if [ $usb1num -eq 1 ]; then ledcontrol -n usb1_blink -c green -s off fi if [ $usb3num -eq 1 ]; then ledcontrol -n usb3_blink -c green -s off fi echo "No USB disk mounted!!!" > /dev/console ledcontrol -n usb1 -c green -s off ledcontrol -n usb3 -c green -s off echo 0 > /tmp/usb1num echo 0 > /tmp/usb3num else usb1_left_flag=0 usb3_left_flag=0 while read LINE do usb_left=$(ls -l /sys/block/$LINE | grep usb | awk '{print $11}' | awk -F/ '{print $6}') if [ "$usb_left" = "dwc3.0" ]; then usb1_left_flag=1 elif [ "$usb_left" = "dwc3.1" ]; then usb3_left_flag=1 fi done /tmp/usb1num fi if [ $usb3_left_flag -eq 0 ]; then ledcontrol -n usb3_blink -c green -s off ledcontrol -n usb3 -c green -s off echo 0 > /tmp/usb3num fi fi fi echo $new_usbdisknum > /tmp/usbdisknum echo $new_printer1num > /tmp/printer1num echo $new_printer3num > /tmp/printer3num satadisknum=$(cat /tmp/satadisknum) if [ "x$satadisknum" = "x" ]; then echo "0" > /tmp/satadisknum fi