USB插槽有时会突然停止工作


30

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

我以前曾发布过此问题的其他版本。我现在将其保留为两个答案的示例。他们都不在这里工作。

注销不执行任何操作,重新启动不执行任何操作。

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

我猜最重要的是:

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
  • 我已经注意到,在大多数情况下,仅外部鼠标和键盘会受到影响,而外部HDD不会受到影响。或者,如果是,则重新插入即可解决问题

  • 我使用WinXP进行双重启动:在Windows中永远不会发生,因此这不是硬件问题

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

  • 在某些情况下,仅重新启动2次甚至3次即可解决该问题。


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


请发布的输出lsusb。我在Google上进行过搜索,host controller process error, something bad happened最早的搜索是在2002年出现的。然后,这些年来,这些信息会不时弹出。问题似乎是驱动程序和某些USB芯片组。
John Siu

@John Siu:paste.ubuntu.com/1472989-这是通过外部鼠标和外部键盘完成的。这个问题与他们有关。我使用过不同的鼠标并且遇到了相同的问题(很少,如我所说),但我只使用了此键盘:这可能是原因吗?

1
嗯,我实际上是在寻找类似“ Bus 001 Device 002:ID 8087:0024 Intel Corp. Integrated Rate Matching Hub”的线路。因为如果'nx8220'是正确的型号,则该盒子应该使用Intel 915PM芯片组。但是,您只有“ Linux Foundation ....”。我会回答,因为在这里以适当的格式提出建议太困难了。
约翰兆

1
如果XP永远不会发生,则它不应与硬件(键盘)相关。
约翰兆

2
需要注意的是-仅仅因为它在Windows中不会发生,并不意味着它不是硬件问题。Windows(甚至是硬件驱动程序)对硬件错误或故障的敏感度可能较低,或者反应更加优雅,这完全有可能。(例如,Windows上的Logitech软件可能会检测到断开连接,并采取必要的步骤来重新连接,而无需用户干预)。
Shauna 2013年

Answers:


6

内核与硬件问题

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

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

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

要安装量化内核:

sudo apt-get install linux-generic-lts-quantal

切记要进行完整的系统备份,以使您在新内核中断时无法恢复的情况下恢复。


只是,我在数量上也有类似的问题。我以为是因为我掉了HD几次了。它“单击”,然后消失。听起来有点熟?

@Mag:一点也不。即使现在我也意识到:1.在WinXP中,双引导中从未拥有过它,所以我想这不是硬件问题; 2.我也在数量上拥有它,因此升级将不是解决方案

1
@cipricus-跟踪中的错误确实使它看起来像一个内核问题。上游内核人员将对此感兴趣。但是,他们首先会要求您尝试最新的内核-我认为是3.8rc1。如果您走这条路,请先使用映像克隆备份系统。一种替代方法是备份系统(或双启动),安装raring(13.04)一周,然后查看问题是否再次出现。然后您可以返回到主系统。竞赛将使用v3.8内核-可能会在接下来的几周内实现。
fossfreedom

@ fossfreedom:是否可以将12.04并行创建新的13.04引导选项?问题是它最近很少发生。也许我应该等待13稳定版并升级?

1
是的(我在过去的11.10和12.04中同时完成了此操作)-从USB引导时,它将为您提供双引导而不是擦除的选项...但是,请-请(!)首先备份系统: )
fossfreedom

10

USB 2.0的电源问题

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

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

如果+ 5V线下降到4.75V以下,则设备应停止工作,这就是为什么许多大功率设备可能在某些计算机上引起问题的原因。

除此之外,如果设备汲取足够的电流将+ 5V线拉得过低,则向每条总线提供+ 5V的电路可能拒绝重新协商高功率能力。因此,如果高功率设备由于电源问题而出现故障,则必须先将其拆除并重新连接,然后它们才能工作,并且为什么在整个断电/上电周期内重新启动后,它们也不允许重新连接可以这样做。

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

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

虽然USB 2.0标准文档可能有点难以阅读,但是在Wikipedia页面上关于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端口共享。


1
出色的解释-这里的一些非常有用的信息。

2
插入鼠标的USB端口不是鼠标本身,而是从鼠标接收移动数据的加密狗。它可能无法在其他设备上正常运行并导致它们出现问题。从您告诉我们的真正罪魁祸首还不清楚。硬盘驱动器可以正常通电,但是由此产生的电压降可能导致其他设备发生故障。我发现最好打开计算机电源,然后在基本的低功耗设备稳定后再插入高功率设备。
fabricator4

1
发生问题后,请立即查看syslog的最后几行:“ cat / var / logs / syslog | tail”,以查看是否有提及。
fabricator4

我会在问题再次发生时立即更新问题……请关注

它做到了:pastebin.com/0qR8bhhX

8

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

这对我有用:

sudo -s
cd /sys/bus/pci/drivers/xhci_hcd/
for file in ????:??:??.? ; do
 echo -n "$file" > unbind
 echo -n "$file" > bind
done

截至该块文章中指出,不同的系统获得在不同的地方挂了,所以如果上面没有做的工作,你可能想尝试更换/sys/bus/pci/drivers/xhci_hcd//sys/bus/pci/drivers/ehci_hcd/,或/sys/bus/pci/drivers/uhci_hcd/,如果其中的一个存在。


1
debian 9.5:/ sys / bus / pci / drivers / ehci-pci(请注意破折号“-”而不是“ _”)
eli

这不应该"$file"代替"$i"吗?
尼古拉·普罗科申科

大概吧。固定。
naught101 '18

6

旧帖子和回复与USB 3.0不相关。因此,以下是重置已停止提供数据的3.0总线的方法:

su -

并以root身份:

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

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


说明

如果您使用的是其他驱动程序,这就是我的解决方法,请使用它作为参考:

A lsusb -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

要查找的目录是 /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

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

ps。如果您需要重新绑定USB 2.0驱动程序,请按照上述说明进行操作,但带有ehci-pci在此处查看(值得一提)。


1
我感激不尽。这是唯一对我有用的解决方案,即使蓝牙现在也在起作用!无需重新启动。对我来说,使用Ubuntu 14.04和Asus VivoBook是“ 0000:00:14.0”。
卡里姆·桑博

乐意!看来我不小心将回复设为“社区Wiki”,所以投票否定了我的信誉。(@ThomasWard,请您向非社区维基提供帮助吗?)
阿米尔·乌瓦尔

1
但是有一个问题,我今天尝试了此错误,但出现此错误:tee:/ sys / bus / pci / dhcd / unbind:没有这样的文件或目录tee:/ sys / bus / pci / dhcd / bind:没有这样的文件或目录文件或目录
Karim Sonbol '16

@KarimSonbol是不是/ sys / bus / pci / drivers / ...?
阿米尔·乌瓦尔

是的,对不起我的错误
Karim Sonbol '16

3

基于 lsusb

#lsusb
Bus 002 Device 002: ID 04f3:0230 Elan Microelectronics Corp. 3D Optical Mouse
Bus 003 Device 002: ID 04f3:0103 Elan Microelectronics Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

lsusb -t,输出将采用以下格式

$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
        |__ Port 6: Dev 3, If 0, Class=HID, Driver=usbhid, 1.5M

注意两个输出中的Bus 00X编号和1.1/ 2.0USB版本。如果1.1现在打开了鼠标和键盘,请尝试将它们移至2.0端口,或者反过来。

这不能解决驱动程序问题,但是可以解决(如果可行)。


您能说得更清楚吗?我该怎么办?将结果lsusblsusb -t?进行比较 我应该在那里找什么?您是说更喜欢2.0总线?我通常将其用于外部硬盘。在您的评论中,您说“因为如果'nx8220'是正确的型号,则该盒子应该使用Intel 915PM芯片组。但是您只有'Linux Foundation'-这是否意味着我缺少正确的驱动程序?什么是要做?的结果lsusb -tpaste.ubuntu.com/1482285

1
(1)是,请尝试使用USB 2.0总线。如果只有一个2.0端口,请查看是否可以找到一个外部USB集线器并将其插入。(2)我选中了其他一些框,它们也仅显示Linux Foundation,所以这不是错误。(3)lsusb -t是用于识别更容易USB装置和总线它们插件英寸
约翰兆

1
@cipricus有多种可能性,我不确定。据我所知,我将列出最可能的原因:(1)纯软件:Linux驱动程序无法正确处理此芯片组的1.1端口。这将是最可能的原因。(2)部分硬件:USB端口对静电敏感,并且会随着时间的流逝而退化/消失,尤其是对于较旧的主板和芯片组。您的1.1端口可能会降级并且不能很好地工作,Linux驱动程序无法处理那些特殊情况(例如电压波动),而XP驱动程序知道如何处理(或容忍)它们。

1
@cipricus USB 1.1规格对于键盘和鼠标来说足够快(并且可以跳过)。我真的怀疑是否有人能做到最大。用普通的键盘(用人的手)可以达到这样的速度。
萧晨

谢谢!我同意,这种类型的问题必须根据具体情况根据症状来确定。新年快乐!!
约翰兆

2

FWIW-如果由于冲突或电源问题而在ubuntu上遇到USB问题,请为自己省些麻烦,并获得带电的USB扩展器-这些廉价设备可插入您的USB端口并将其变成5或10,或您需要的任何设备购买并拥有一个单独的电源,然后在亚马逊上花费约30美元。

当我添加USB设备时,键盘和/或鼠标出现了很多问题,这使我所有的问题都消失了。

干杯


0

一个快速的解决方案至少对我而言有效(Lenovo Yoga 3 Pro笔记本电脑上的Linux Mint KDE):

在笔记本电脑开启的情况下,只需按下电源按钮约30秒钟,该按钮将关闭,并在此之后仍然按下一会儿。我是在拔下充电器的情况下完成的。打开笔记本电脑后,USB端口将再次工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.