summaryrefslogtreecommitdiff
path: root/package/base-files/src/lib/mdev/init
blob: f2b7125b8a156645e83bdfcc6e24c4f253b4fccb (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
37
38
39
40
41
42
#!/bin/sh
if [ "$SUBSYSTEM" == "firmware" ];then
        logger "Firmware load for $FIRMWARE requested"
        if [ "$ACTION" == "add" ];then
                if [ -e "/lib/firmware/$FIRMWARE" ];then
                        logger "Firmware loading ..."
                        echo 1 > /sys$DEVPATH/loading
                        cat "/lib/firmware/$FIRMWARE" > /sys$DEVPATH/data
                        echo 0 > /sys$DEVPATH/loading
                        logger "finished."
                else
                        logger "Firmware file $FIRMWARE not found"
                        echo -1 > /sys$DEVPATH/loading
                fi
        fi
fi
if [ "$SUBSYSTEM" == "pcmcia_socket" ];then
	logger "Setting up PCMCIA socket resource database"
	if [ "$ACTION" == "add" ];then
		/usr/sbin/pcmcia-socket-startup
	fi
fi
if [ "$SUBSYSTEM" == "usb" ];then
        if [ "$ACTION" == "add" ];then
                if [ "$DEVTYPE" == "usb_device" ];then
                        if [ "$PRODUCT" == "12d1/1003/0" ];then
				if [ ! -f /tmp/.huawei ];then
                        		logger "USB device added with: $PRODUCT"
					usbmods=$(lsmod|grep ^usbserial|awk '{ print $4 }'|sed -e 's/,/ /g')
					for i in $usbmods;do rmmod $i;done
					rmmod usbserial
					lsmod >> /tmp/debug
                                	test -x /sbin/huawei && /sbin/huawei >> /tmp/debug
					insmod /lib/modules/$(uname -r)/usbserial.ko product=0x1003 vendor=0x12d1
					for i in $usbmods;do insmod /lib/modules/$(uname -r)/$i.ko; done
					
					touch /tmp/.huawei
				fi
                        fi
                fi
        fi
fi