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

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

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

登录没有任何作用,重启确实没有。

事件看起来完全是随机的,重新启动后它将在数天或数周之后重新出现,或者很少在几小时之后重新出现。

  • 新发生后的var/log/syslog http://pastebin.com/0qR8bhhX ( 仅使用外部有线鼠标和键盘

最重要的是我猜:

 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 
  • 我注意到在大多数情况下只有外接鼠标和键盘受到影响,但外接硬盘不受影响。 或者如果是,重新插入它解决了问题

  • 我有一个使用WinXP的双启动: 在Windows中这种情况永远不会发生,因此它不是硬件问题

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

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


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

内核与硬件问题

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

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

  • 我的电脑启动到黑屏,我有什么选择来解决它?

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

要安装量子内核:

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

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

  • 备份工具的比较

USB 2.0的电源问题

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

USB 2.0 标准定义的低电流设备可以提供高达100mA(1个单位)的电流,而高电流设备可以提取高达5个单位(500mA)。 没有外部电源的硬盘通常是高电流设备。

如果+ 5V线路降至4.75V以下,器件应停止工作,这就是为什么许多高功率器件可能会导致某些计算机出现问题的原因。

除此之外,如果器件吸收的电流足以将+ 5V线拉得太低,那么为每条总线提供+ 5V的电路可能会拒绝重新协商高功率能力。 这就是为什么高功率设备在由于电源问题而失败之前需要被移除和重新连接的原因,以及为什么重启不允许它们在完全断电/上电循环时重新连接的原因可能会这样做。

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

因此,需要使用高功率器件进行规划,如果存在问题,则需要在任何一条总线上使用器件,或者使用单独的+ 5V电源。

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

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

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

由于USB键盘和鼠标的普遍使用,当这些键盘插入同一总线时,有时会出现问题。 上电时的峰值负载电流可能超过USB总线的设计规范,导致一个或两个器件被禁用或发生故障。

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

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

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

这对我有用:

 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/xhci_hcd/ /sys/bus/pci/drivers/ehci_hcd/ ,或/sys/bus/pci/drivers/uhci_hcd/ ,如果存在其中一个。

旧post和回复与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应该再次开始正常工作,就像重启后一样。


说明

如果你使用不同的驱动程序,这就是我发现该怎么做的方法,用它作为参考:

一个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 ,或者在这里查看 (值得信赖)。

基于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.0 USB版本。 如果鼠标和键盘现在在1.1 ,请尝试将它们移动到2.0端口,或者反过来。

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

FWIW – 如果由于冲突或电源问题导致ubuntu出现USB问题,请省去一些麻烦并获得有源USB扩展器 – 这些是插入USB端口并将其转换为5或10或其他任何需要的便宜设备购买并拥有独立的电源,并在亚马逊上购买约30美元。

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

干杯

一个至少在我的情况下起作用的快速解决方案 (Linux Mint KDE,在Lenovo Yoga 3 Pro笔记本电脑上):

打开笔记本电脑,只需按下电源按钮约30秒 ,然后关闭并在此之后按下一会儿。 拔掉充电器时,我做到了。 打开笔记本电脑后,USB端口再次工作。