Resetting USB Controllers After Error

I was doing my semi-regular backup of some core essential files onto USB sticks today, and hit an error writing to one of the sticks (I replaced it with a spare). However, the error left the USB on my main machine in a strange state: it still thought the bad USB stick was present on the bus, even though it had been removed. And also my USB audio interface stopped working (though thankfully not my mouse or keyboard). I found the “usbreset” utility program. Trying to reset the nonexistent device of course returned an error that it did not exist. It listed three USB hubs, and I thought if I reset the one that the stick had been connected to, that might work. I was able to reset two of the hubs, but it hung on the third one (very likely the source of the problem). And the problem remained unfixed. I thought I was going to have to reboot my machine. Then, after hunting around online, I found this little shell script <https://unix.stackexchange.com/questions/704341/how-to-reset-usb-controllers>, which finds all your USB controller interfaces and tells them to “unbind”, and then “rebind”, all devices attached to each. And that worked! I have my 5.1 USB audio working again! Of course, I can’t guarantee it’ll work for you, if you hit a similar problem, but I figure, how could it hurt to try? ;)
participants (1)
-
Lawrence D'Oliveiro