My aim is to disable usb port usage except a specific kind of usb. Every time a usb device is inserted a udev rule is called and it runs a program to handle the work.

I can't unload usb_storage module since it is needed for usage, so how can i remove usb dev link if it doesn't meet my case?

有帮助吗?

解决方案

unbind the device. Pass vendor id and product id to below script.

VENDOR=$1
PRODUCT=$2

if [ n$VENDOR = n ] || [ n$PRODUCT = n ]; then
        echo "Unbinding the first non-hub device..."

        ID=`grep -l "^0$" /sys/bus/usb/drivers/usb/*/maxchild | sed -e "s|/sys/bus/usb/drivers/usb/\(.*\)/maxchild|\1|" | head -n 1`

        VENDOR=`cat /sys/bus/usb/drivers/usb/$ID/idVendor`
        PRODUCT=`cat /sys/bus/usb/drivers/usb/$ID/idProduct`

        echo $ID > /sys/bus/usb/drivers/usb/unbind

        echo "Device found ($VENDOR:$PRODUCT), and unbound!"

        exit 0
fi

Regards,
Barun Parichha

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top