所以我遇到了一个奇怪的问题。我有一个比特币 USB 矿机 Bitfury,我正在使用 CGMiner 进行挖矿。
当我以 root 身份启动应用程序时,不会自动检测到 USB 设备。 CGMiner 仅在重新插入时检测棒(它检测热插拔事件,然后按预期工作)
我想设置一个无头迷你服务器,因此,我不想在每次服务器重新启动时站起来拔掉设备,然后重新插入设备,因为我太懒了,而且这有点困难当我不在家时。
那么,是否可以关闭 USB 系统并重新启动它呢?或者有更好的方法吗?
目前,我在 HP t5730 终端上运行 Fedora 20,但我在 Raspberry PI 上的 Raspbian 上遇到了问题,所以我认为这不是操作系统方面的问题。也许是设备本身的问题,或者是 CGMiner 的错,但我还无法找到有关该主题的任何内容。
答案1
卸载 USB HCI 内核模块(任何 *hci_hcd 和 *usb*)并重新加载它们。这是真正切断 USB 端口电源的唯一可靠方法。
还有其他不太严格的方法可以实现相同的目的,但不能保证它们能够工作,具体取决于您的设备发生故障的方式。
答案2
这个答案详细说明该实用程序的用法usbreset
。如果这有帮助,请投票。
这就是我“拔掉然后重新插入”我的 USB 无线适配器的方法,该适配器经常挂起。在找到这个脚本之前,我必须将其物理拔下然后重新插入才能重置。
$ 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/003 ID 046d:080a
Number 003/002 ID 045e:07a5 Microsoft® 2.4GHz Transceiver v9.0
Number 001/002 ID 0cf3:9271 USB2.0 WLAN
$ sudo usbreset 0cf3:9271
Resetting USB2.0 WLAN ... ok
如您所见,我在不带任何参数的情况下运行一次脚本来查看连接了哪些设备。然后,我使用 sudo 和产品/供应商 ID(在重新启动后保持一致)再次运行它,以虚拟地拔出并重新插入设备。