Gru*_*bel 7 linux webcam ubuntu
有时可能需要重置 USB 设备,有没有办法在软件中执行重置,而无需拔下设备本身然后重新插入?
更具体地说,我有一个网络摄像头,在玩太多设置时会感到困惑guvcapture
,然后需要重置才能回到正轨。
小智 9
您可以尝试使用Benjamin Close 的resetusb
程序来重置所有设备——没有可用的二进制文件,但编译它相当容易。将源代码另存为resetusb.c
,然后运行:
gcc -lusb resetusb.c -o resetusb
Run Code Online (Sandbox Code Playgroud)
您现在可以将工具作为resetusb
. 或者,@unhammer 指向Alan Stern 的单设备版本(以及有关如何使用它的一些提示)。
有些人也很幸运,只是删除和modprobe
-ing 相关模块:
modprobe -vr ehci_hcd
modprobe -v ehci_hcd
Run Code Online (Sandbox Code Playgroud)
(你当然可以写这个)
一些发行版也可能有自己的工具来重新启动 USB 子系统;曼德拉草显然有/etc/init.d/usb
。
假设我想重置/dev/sdc
。
# udevadm info -q all /dev/sdc | grep DEVPATH
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1.4/2-1.4:1.0/host2/target2:0:0/2:0:0:0/block/sdc
Run Code Online (Sandbox Code Playgroud)
我接受2-1.4
上述(您的可能只是2-1
- 我的设备已插入集线器)并执行以下操作:
# echo 2-1.4 > /sys/bus/usb/drivers/usb/unbind
# echo 2-1.4 > /sys/bus/usb/drivers/usb/bind
Run Code Online (Sandbox Code Playgroud)
usbutils包括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
Run Code Online (Sandbox Code Playgroud)
这允许重置各个设备,这比重置整个总线的某些答案有所改进。它可能无法解决中间集线器/总线问题,但仅重置所需设备的破坏性要小得多。
归档时间: |
|
查看次数: |
75717 次 |
最近记录: |