I've searched a lot for an answer to this, but the closest I can get to finding a solution is this, but it doesn't work for me.
Here's my system:
# uname -a
Linux vin 4.4.0-1-amd64 #1 SMP Debian 4.4.6-1 (2016-03-17) x86_64 GNU/Linux
The problem is this: one of my USB ports appears to be dead. Any program that tries to read "/sys/bus/usb/devices/usb1/descriptors" will cause the program to hang in an unkillable state.
Unfortunately, a lot of software seems to want to access USB1, including chrome and blender, which is why this is bugging me so much. When I invoke those programs with strace, they always hang at the moment they try to open "/sys/bus/usb/devices/usb1/descriptors".
I've tried things like "echo suspend > /sys/bus/usb/devices/usb1/power/level" but it's no good - the command simply hangs like the others.
I tried using the hubpower code mentioned in the post linked above, but it likewise seems to just hang like the others.
I tried powering down the whole system and opening up the computer itself to disconnect the USB port directly, but the whole collection of USB ports (there are a lot of them) seem very tightly integrated with the motherboard, and I couldn't see a way to unplug anything. Granted, I don't have tons of experience plugging wires into and out of motherboards. If the only hope is to do it that way, I could hopefully manage it.
I tried going into the BIOS and disabling all the USB ports except one; and then disabling all except the next; and the next; and so on, to see which one was the problem. But it didn't seem to have any effect - Linux still was able to recognize the ports well enough to use my USB mouse and keyboard. Linux didn't seem to care what the BIOS configuration was.
The thing that occurs to me is that there may be some way to tell the Linux kernel to ignore USB1, but to do so without actually attempting to interact with USB1 (since that seems to cause the unkillable hang). But I don't know how to do that.
sudo rm -rf /dev/bus/usb/001
Often you may recreate device files using MAKEDEV (man MAKEDEV
, e.gsudo MAKEDEV usb
, or if the kernel recreates their /dev space, by rebooting, or by noting their major/minor device numbers and usingmknod
directly)# rm -rf /sys/bus/usb/devices/usb1
gave "rm: cannot remove '/sys/bus/usb/devices/usb1': Operation not permitted"/sys/bus/usb/devices/usb1
file instead of your recommendation of the/dev/bus/usb/001
file. I tried the command you suggested and it worked! Thank you so much! So now the fix is simply to give that samerm
command whenever I boot up.