usbdev-hotplug.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #!/bin/sh
  2. ################################################################################
  3. # Create By Czy
  4. ################################################################################
  5. #
  6. # usb device event:
  7. #
  8. # ACTION=add
  9. # DEVNAME=/dev/usbdev1.13
  10. # DEVTYPE=
  11. # DEVPATH=/devices/platform/hiusb-ehci.0/usb1/1-2/1-2.4/usb_device/usbdev1.13
  12. # SUBSYSTEM=usb_device
  13. # SEQNUM=555
  14. # UDEVD_EVENT=1
  15. #
  16. ################################################################################
  17. USB_PREFIX=usbdev
  18. CONSOLE=/dev/ttyS000
  19. ################################################################################
  20. show_env ()
  21. {
  22. local RED="\033[31m"
  23. local NORMAL="\033[00m"
  24. {
  25. echo -e ${RED}"ACTION=$ACTION" ${NORMAL}
  26. echo -e ${RED}"DEVNAME=$DEVNAME" ${NORMAL}
  27. echo -e ${RED}"DEVTYPE=$DEVTYPE" ${NORMAL}
  28. echo -e ${RED}"DEVPATH=$DEVPATH" ${NORMAL}
  29. echo -e ${RED}"SUBSYSTEM=$SUBSYSTEM" ${NORMAL}
  30. echo -e ${RED}"SEQNUM=$SEQNUM" ${NORMAL}
  31. echo -e ${RED}"UDEVD_EVENT=$UDEVD_EVENT" ${NORMAL}
  32. } > ${CONSOLE}
  33. }
  34. ################################################################################
  35. # new_name orgin_name
  36. add_usb ()
  37. {
  38. local NEW_NAME=$1
  39. local ORG_NAME=$2
  40. if [ -e ${ORG_NAME} ]; then
  41. cd /dev/; ln -sf ${ORG_NAME} ${NEW_NAME}; cd -
  42. echo "${NEW_NAME} -> ${ORG_NAME}" > ${CONSOLE}
  43. fi
  44. }
  45. ################################################################################
  46. # new_name
  47. remove_usb ()
  48. {
  49. local NEW_NAME=${1}
  50. if [ -L /dev/${NEW_NAME} ]; then
  51. rm -f /dev/${NEW_NAME}
  52. fi
  53. }
  54. ################################################################################
  55. hotplug_usb ()
  56. {
  57. if [ ss"$SUBSYSTEM" != ss"usb_device" ]; then
  58. return 1
  59. fi
  60. if [ ss"$(echo $DEVPATH | grep -r "usb")" = ss"" ]; then
  61. return 1
  62. fi
  63. TMP=$(echo ${DEVPATH:36} | sed -e 's/\/usb_device.*//')
  64. NEW_NAME=${USB_PREFIX}$(echo ${TMP##*/} | sed -e 's/[-.usbdev]//g')
  65. case "$ACTION" in
  66. "add" )
  67. add_usb "${NEW_NAME}" "${DEVNAME}"
  68. ;;
  69. "remove" )
  70. remove_usb "${NEW_NAME}"
  71. ;;
  72. * )
  73. echo "Not recognise ACTION:${ACTION}" > ${CONSOLE}
  74. ;;
  75. esac
  76. return 0
  77. }
  78. ################################################################################
  79. #show_env
  80. hotplug_usb