有时家里的NAS一些USB设备因为莫名的原因工作不正常,需要插拔一下,但是你又不在家同时又找不到人帮忙怎么办呢?
今天刚好因为这个原因,上网搜了一下,果然有大神帮你想好了,做过了小工具给你断电重置某个USB接口,相当于插拔一次。
我的是PVE系统,基于Debian的,按理所有Linux版本应该都没问题,步骤如下:
$ mkdir usbreset
$ cd usbreset
$ wget $ https://raw.githubusercontent.com/jkulesza/usbreset/master/usbreset.c
$ cc usbreset.c -o usbreset
$ chmod +x usbreset
上面执行完毕就编译好了自己的工具了,接下来就是重置USB设备电源了。
@pve:~/usbreset# lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 008: ID 8087:0a2b Intel Corp. Bus 001 Device 003: ID 03f0:e111 HP, Inc Bus 001 Device 002: ID 0665:5161 Cypress Semiconductor USB to Serial Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
运行了$ lsusb命令,就看到了插在电脑上的USB设备情况,这里我需要重置下Bus 001 Device 008: ID 8087:0a2b Intel Corp.,这个是我的无线网卡的蓝牙模块。接着运行如下命令就可以热插拔一次了。
@pve:~/usbreset# ./usbreset /dev/bus/usb/001/008 Resetting USB device /dev/bus/usb/001/008 Reset successful
这里001对应的是BUS001,008对应的是Device 008。如果需要热插拔其他设备,根据lsusb结果选自己需要的这样子就可以了。
参考资料如下:https://olimex.wordpress.com/2020/07/17/linux-tip-how-to-reset-device-connected-to-usb-port/