USB 插槽不时突然停止工作

31 mouse keyboard usb-drive usb

在我的笔记本电脑上重新安装 Lubuntu 12.04 系统后,一个较旧的问题在几天后重新出现并安装了不同的程序:没有明显原因,外部鼠标和有时其他 USB 连接设备(包括硬盘)停止工作。硬盘显示它有张力,因为那里有灯,插入时外接鼠标闪烁一秒钟。

我之前发布过这个问题的不同版本。我现在保留它作为那里两个答案的示例。他们都没有在这里工作。

注销什么都不做,重新启动做。

该事件似乎完全是随机的,重启后它会在几天或几周后重新出现,或者很少在几个小时后重新出现。

我猜最后重要的是:

Nov 24 14:06:55 cprq-HP-Compaq-nx8220-PY518EA-ABB kernel: [29953.822962] usb 3-1: USB disconnect, device number 3
Nov 24 14:06:57 cprq-HP-Compaq-nx8220-PY518EA-ABB kernel: [29955.069427] uhci_hcd 0000:00:1d.0: host controller process error, something bad happened!
Nov 24 14:06:57 cprq-HP-Compaq-nx8220-PY518EA-ABB kernel: [29955.069439] uhci_hcd 0000:00:1d.0: host controller halted, very bad!
Nov 24 14:06:57 cprq-HP-Compaq-nx8220-PY518EA-ABB kernel: [29955.069461] uhci_hcd 0000:00:1d.0: HC died; cleaning up
Nov 24 14:06:57 cprq-HP-Compaq-nx8220-PY518EA-ABB kernel: [29955.069492] usb 2-2: USB disconnect, device number 2
Run Code Online (Sandbox Code Playgroud)
  • 我注意到在大多数情况下,只有外接鼠标和键盘会受到影响,而不会影响外接硬盘。或者如果是,重新插入它可以解决问题

  • 我使用 WinXP 进行双启动:在 Windows 中这从未发生过,所以这不是硬件问题

  • 我使用过 Lubuntu Quantal 12.10,同样的问题也发生在那里。升级到那个不是解决方案

  • 在某些情况下,只需重新启动 2 次甚至 3 次即可解决。


将相同的 PC/硬件与 Linux Mint 14 (Quantal) Xfce 一起使用,问题几乎消失了(此后发生过一次)。我不确定这个“解决方案”是来自使用 Xfce 还是 Mint(我猜 Mint 14 Nadia 使用与 Lubuntu Quantal 相同的内核)。

fab*_*or4 11

USB 2.0 的电源问题

USB 2.0 的最大可用电流为 500mA,但应注意,多个端口上的 +5V 实际上可能位于同一总线上。例如在台式机上,机器正面的 USB 端口可能都在同一条总线上,而机器背面的端口通常是不同的总线,或者为每组完全独立的 +5V 电源USB 2.0 插座。

USB 2.0标准定义的低电流设备最多可消耗 100mA(1 个单位),而高电流设备最多可消耗 5 个单位(500mA)。没有外部电源的硬盘驱动器通常是高电流设备。

如果 +5V 线路低于 4.75V,设备应该停止工作,这就是为什么许多高功率设备会在某些计算机上导致问题的原因。

除此之外,如果设备汲取足够的电流以将 +5V 线路拉得太低,那么为每条总线提供 +5V 的电路可能会拒绝重新协商高功率能力。这就是为什么如果高功率设备由于电源问题而出现故障,需要在它们工作之前移除并重新连接,这也是为什么重新启动不允许它们在完全断电/通电循环时重新连接的原因可以这样做。

请注意,如果一个或多个低功率设备已插入 USB 总线,则可能没有足够的可用容量来运行高功率设备,例如外部硬盘驱动器。

因此需要计划使用高功率设备,如果存在问题,则需要在任何一条总线上单独使用该设备或提供单独的 +5V 电源。

虽然 USB 2.0 标准文档可能有点难以阅读,但维基百科页面中有一些关于 USB 2.0 主题的非常好的信息和解释

另请注意,插入许多低功率设备(例如通过外部 USB 集线器设备)也会导致总线电源线上的电压下降,从而导致部分或全部设备被禁用。

使用的电缆类型也可能影响高功率设备的可靠性。例如,通过常规长 USB 电缆插入的外部硬盘驱动器可能会在 500mA 处看到足够的电压降,以禁用自身以防止损坏其电路或驱动电机。这些设备通常配有一根特殊的短电缆,或插入两个 USB 端口的“Y”形电缆,以帮助解决电源问题。请注意,这只是与布线问题相关的问题的部分解决方案,实际上不允许提供超过 500mA 的电流,因为相邻的 USB 端口可能在计算机内部使用相同的 5V 500mA 电源。即使单独的总线用于“Y”电缆上的第二个插头,它也会“ 无法获得高电流供应,因为它没有数据连接来从 USB 总线请求它。只有一个端口将被启用为高电流电源。

由于 USB 键盘和鼠标的使用非常普遍,因此当它们都插入同一总线时有时会出现问题。上电时的峰值负载电流可能超过 USB 总线的设计规范,并导致其中一个或两个设备被禁用或出现故障。

这些问题的解决方案通常涉及只使用最少的低功率设备,只使用精心设计和制造的低功率设备,确保它们通过单独的 +5V 线路插入不同的总线,以及使用有源集线器的高功率设备帮助解决许多 USB 2.0 总线电源上的电源问题。如果无法使用有源集线器,则只有在计算机通电且低功率设备的电流消耗稳定后才应插入高功率设备。

此处还应注意,笔记本电脑和上网本等计算机可能在内部集成了低功率 USB 设备。内部读卡器、无线 3G 适配器和网络摄像头等硬件通常在内部连接到 USB 总线。这可能是一条具有自己+5V 电源的专用总线,也可能与一个或多个外部USB 端口共享。

  • 它不是鼠标本身,而是您插入 USB 端口的加密狗,它接收来自鼠标的移动数据。它可能无法与其他设备配合使用并导致它们出现问题。从你告诉我们的真正罪魁祸首的位置来看,目前还不清楚。硬盘驱动器可以正常通电,但由此产生的电压下降可能会导致其他设备出现故障。我发现最好打开计算机电源,然后在基本的低功率设备稳定后插入高功率设备。 (2认同)

nau*_*101 10

类似的事情发生在我身上。这篇博文提供了部分解决方案。

这对我有用:

sudo -s
cd /sys/bus/pci/drivers/xhci_hcd/
for file in ????:??:??.? ; do
 echo -n "$file" > unbind
 echo -n "$file" > bind
done
Run Code Online (Sandbox Code Playgroud)

正如该块帖子所述,不同的系统挂在不同的地方,因此如果上述方法不起作用,您可能想尝试替换/sys/bus/pci/drivers/xhci_hcd//sys/bus/pci/drivers/ehci_hcd/, 或/sys/bus/pci/drivers/uhci_hcd/,如果其中一个存在。


Ami*_*val 7

旧帖子和回复与 USB 3.0 无关。所以这里是如何重置停止提供数据的 3.0 总线:

su -
Run Code Online (Sandbox Code Playgroud)

并作为根:

echo -n "0000:06:00.0" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
echo -n "0000:06:00.0" | tee /sys/bus/pci/drivers/xhci_hcd/bind
Run Code Online (Sandbox Code Playgroud)

在此之后,USB 应该再次开始正常工作,就像重新启动后一样。


解释

如果您使用的是不同的驱动程序,这就是我找到的方法,请将其用作参考:

Alsusb -t将输出这个 - 记下xhci_hcd快速总线的驱动程序,它是 3.0 驱动程序名称:

$ lsusb -t
        /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
        /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
            |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=dvb_usb_it913x, 480M
        /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
            |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
            ...etc
Run Code Online (Sandbox Code Playgroud)

要查找的目录是 /sys/bus/pci/drivers/xhci_hcd

        drwxr-xr-x  2 root root    0   5 21:48 ./
        drwxr-xr-x 28 root root    0   1 00:21 ../
        lrwxrwxrwx  1 root root    0   6 00:29 0000:06:00.0 -> ../../../../devices/pci0000:00/0000:00:1c.3/0000:06:00.0/
        --w-------  1 root root 4096   5 22:33 bind
        lrwxrwxrwx  1 root root    0   5 22:32 module -> ../../../../module/xhci_hcd/
        --w-------  1 root root 4096   5 22:32 new_id
        --w-------  1 root root 4096   5 22:32 remove_id
        --w-------  1 root root 4096   5 22:32 uevent
        --w-------  1 root root 4096   5 22:33 unbind
Run Code Online (Sandbox Code Playgroud)

就我而言,我需要解除绑定"0000:06:00.0"

附:如果您需要重新绑定 USB 2.0 驱动程序,请按照上述说明操作,但带有ehci-pci,或查看此处(值得称赞)。


fos*_*dom 6

内核与硬件问题

如果您已经排除了可能的硬件问题,例如电压/电流问题、USB 端口/集线器故障,那么这可能是内核问题。

如果您对启动时可能出现的非启动问题/黑屏问题感到满意,您可以尝试安装 12.04 存储库中提供的 quantal 内核。

请记住 - 大多数黑屏问题是由于安装了专有图形驱动程序。在升级内核之前,您将最幸运地先删除这些。

安装量子内核:

sudo apt-get install linux-generic-lts-quantal
Run Code Online (Sandbox Code Playgroud)

请记住进行完整的系统备份,以便在新内核损坏的次数超过修复次数时进行恢复。