#!/bin/sh # part of usb_modeswitch 2.2.5 device_in() { if [ ! -e /var/lib/usb_modeswitch/$1 ]; then return 0 fi while read line do if [ $(expr "$line" : "$2:$3") != 0 ]; then return 1 fi done /dev/null) sleep 1 if [ ! -z "$dir" ]; then exit 0 fi set +e device_in "bind_list" $v_id $p_id if [ "$?" = "1" ]; then id_attr="/sys/bus/usb-serial/drivers/option1/new_id" if [ ! -e "$id_attr" ]; then modprobe option 2>/dev/null || true fi if [ -e "$id_attr" ]; then echo "$v_id $p_id ff" > $id_attr else modprobe -r usbserial 2>/dev/null modprobe usbserial "vendor=0x$v_id" "product=0x$p_id" 2>/dev/null fi fi ) & exit 0 ;; --symlink-name) device_in "link_list" $v_id $p_id if [ "$?" = "1" ]; then if [ -e "/usr/sbin/usb_modeswitch_dispatcher" ]; then exec usb_modeswitch_dispatcher $1 $2 2>>/dev/null fi fi exit 0 ;; esac ( IFS='/' read -r p1 p2 <