How To Reset The USB Subsystem?

Home » CentOS » How To Reset The USB Subsystem?
CentOS 15 Comments

Hi,

my USB connected printer goes into deep space from time to time probably due to a HW problem on the MoBo.

Is there a way how to reset the USB subsystem the same way one can restart networking or X without the necessity to reboot?

Thanks Frank

15 thoughts on - How To Reset The USB Subsystem?

  • from a non-expert (me):

    possibly figure out what happens when the device is plugged/unplugged and doing that by hand. if you can find the udev file(s) that manage the port(s) that get hung you may be able to figure out what those steps would be.

    or you could try, when hung, plugging it into a different USB port… some motherboards have multiple USB controllers, so even if one gets wedged tight, the other one(s) shouldn’t be.

    Good Luck!

    Fred

  • So what can happen is that the USB device is seeing a lot of noise from the interface and shutdown the interface for a period of time. If you are extremely lucky, it will even send some sort of message to the computer bus it is doing this. In most other cases, the only fix is to reboot or temporarily unplug the devices connected to that particular USB controller
    (a computer may have multiple USB controllers since USB is a hubbed network and collisions and conflicts are expected for short periods.). [It used to be that you could cause a USB reset by removing the modules from the kernel and add them but that was a long time ago when a PS/2 keyboard was a real device and not an emulated PS/2 connected to the USB hub. ]

  • A few months ago I reported that I could not get a Logitech C922 ProStream video camera working on my Lenovo Thinkstation running CentOS 7. The BIOS was updated and the motherboard was replaced to no avail.

    I could then confirm that the camera worked fine if I booted Ubuntu Live, hence no hardware issue with the computer, nor the camera which by the way worked fine on a laptop also running CentOS 7.

    Since the USB subsystem did not recognize the camera when plugged in I reported this as a kernel/USB subsystem bug to RedHat. For some reason they made the bug private and I have not heard any more about it being worked on…

    Howewer, two or so weeks ago I stumbled across https://zedt.eu/tech/linux/restarting-usb-subsystem-CentOS/ and used this procedure to reset the USB subsystem. This gets the camera working – most of the time…

    The OP may want to try the same thing.

  • Okay, here we go:

    $ wget https://github.com/gregkh/usbutils/raw/master/usbreset.c
    –2021-01-15 11:33:30–
    https://github.com/gregkh/usbutils/raw/master/usbreset.c Resolving proxy (proxy)… 192.168.1.10
    Connecting to proxy (proxy)|192.168.1.10|:8080… connected. Proxy request sent, awaiting response… 302 Found Location:
    https://raw.githubusercontent.com/gregkh/usbutils/master/usbreset.c
    [following]
    –2021-01-15 11:33:30–
    https://raw.githubusercontent.com/gregkh/usbutils/master/usbreset.c Connecting to proxy (proxy)|192.168.1.10|:8080… connected. Proxy request sent, awaiting response… 200 OK
    Length: 4084 (4.0K) [text/plain]
    Saving to: ‘usbreset.c’

    100%[======================================>] 4,084 –.-K/s in 0s

    2021-01-15 11:33:30 (51.0 MB/s) – ‘usbreset.c’ saved [4084/4084]

    $ gcc -o usbreset usbreset.c
    $ ./usbreset Usage:
    usbreset PPPP:VVVV – reset by product and vendor id
    usbreset BBB/DDD – reset by bus and device number
    usbreset “Product” – reset by product name

    Devices:
    Number 001/002 ID 04d9:1400
    Number 006/002 ID 090c:1000 Flash Drive FIT

  • 22 ProStream video camera working on my Lenovo Thinkstation running CentOS
    7. The BIOS was updated and the motherboard was replaced to no avail.

    Thanks a bunch. I’ll try this when the printer USB port goes dead again.

    Cheers Frank

  • Couple of cable ideas that may be of interest. I got all of these from Amazon.

    In my new car there is only one usb port to connect data deviced to.

    When I used my micro thumb drive to play music the car often “lost”
    the drive and it had to be pulled and reinserted. Not easy with the micro drives.

    A second problem was using the one port for music source or plugging in my phone for Android Auto. The cars usb system would not deal with a hub of any sort. Thus the nice credit card sized 4 port hub with individual on/off buttons for each port did not work.

    The lost thumb drive was solved with a cable having an on/off switch. Think of it as a 15 inch usb extension cable (M -> F) with a switch in the middle.

    Both problems were solved with a USB printer A/B switch. This is not a hub, but a switch intended to let you print to either of 2 different printers from a computer having a single USB port. In my case the music thumb drive and the phone are the “printers”.

    Jon