aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/busybox/files/usb.sh
blob: ec1247da2482e7c9a6bfe93e31843759a57ccd7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/sh

case "$ACTION" in
  add|"")
    for uevent in /sys/class/usb_device/usbdev?.*/*/uevent; do
      . $uevent
      if [ ! -e /dev/bus/usb/$BUSNUM/$DEVNUM ]; then
        mkdir -p /dev/bus/usb/$BUSNUM
        mknod /dev/bus/usb/$BUSNUM/$DEVNUM c 189 $MINOR
      fi
    done
    ;;
  remove)
    for device in /dev/bus/usb/*/*; do
      REMOVED=1
      dev=`basename $device`
      bus=`basename $(dirname $device)`
      for uevent in /sys/class/usb_device/usbdev?.*/*/uevent; do
        . $uevent
        if [ $dev -eq $DEVNUM ] && [ $bus -eq $BUSNUM ]; then
          REMOVED=0
          break;
        fi
      done
      if [ $REMOVED -eq 1 ]; then
        rm /dev/bus/usb/$bus/$dev
        if [ -z $(ls /dev/bus/usb/$bus/) ]; then
          rmdir /dev/bus/usb/$bus/
        fi
      fi
    done
    ;;
esac
-- 
1.6.3.3