linuxbashusbreal-timepci

How to disable a specific usb port permanently in linux?


Is it possible to permanently disable a usb port in linux?

I have already figured out how to disable it:

echo -n "0000:00:12.0" > /sys/bus/pci/drivers/ohci_hcd/unbind

BUT after restart it is enabled.

I have placed this script :

#!/bin/sh
case "$1" in
    resume|thaw)
            echo -n "0000:00:12.0" > /sys/bus/pci/drivers/ohci_hcd/unbind
            ;;
esac

in /etc/pm/sleep.d/0_disable_usb2

But again without success. I also thought that i could disable it through bios but as i could see i can disable the whole pci.

Is there any way of doing this?

.. My Operating system is Debian 7.7 64bit. The reason i want to do this is I am trying to configure my system for realtime capabilities and my usb soundcard sharing the same IRQ with this port.


Solution

  • First of all you should find your USB number of your device, Simply by using lsusb.

    And in Linux everything is a file, So you can manage all of your hardware using the files.

    As it describes Here if your kernel is > 2.6.38 you should use this keywords:

    echo "0" > "/sys/bus/usb/devices/usb2/power/autosuspend_delay_ms"
    Then:

    echo "auto" > "/sys/bus/usb/devices/usb1/power/control"