在网上看了N多文献后还是不知道怎样让USB设备工作!

CPU/显卡/打印机/USB设备等硬件问题
回复
头像
rukh
帖子: 23
注册时间: 2007-09-07 22:31

在网上看了N多文献后还是不知道怎样让USB设备工作!

#1

帖子 rukh » 2009-02-25 20:42

原来用Ubuntu7.04的时候,插上U盘就可以用,可是现在用Ubuntu8.10,插上U盘什么反应也没有,连优盘的灯也不亮,其他的USB设备也一样没有反应。用USB Viewer也看不到任何USB设备。如果把优盘插上,在终端里输入lsusb则什么显示也没有。真是让人抓狂!请大家帮帮忙!

附件是dmesg的输出信息,请高手过目。

图片
附件
dmesg.zip
dmesg的输出信息
(10.87 KiB) 已下载 34 次
处理器 AMD Athlon 64 X2 3800+
芯片组 ATI Radeon Xpress 200
内存 1536 MB (PC3200 DDR SDRAM)
显示卡 ATI Radeon HD 4650
硬盘 ST3320613AS+ST380011A
Andiry
帖子: 8
注册时间: 2008-04-29 9:42

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#2

帖子 Andiry » 2009-02-25 23:09

ohci, ehci加载都很正常,设备也找到了,但是usb设备发出的中断(19)没人响应,到最后中断线19被关掉了,没有中断自然usb不能工作.
楼主第一把 /proc/interrupts 发上来看看;第二在boot option里加上 irqpoll 试试。
Andiry
帖子: 8
注册时间: 2008-04-29 9:42

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#3

帖子 Andiry » 2009-02-25 23:14

不好意思前面说错了点,这个问题并不出在usb驱动上,它的中断处理函数都注册成功了。是其他的某个设备跟usb共享中断,它的中断处理函数没有注册上去,设备却又发出中断,结果发出的中断全被丢弃,kernel会监视某条中断线上未处理的中断达到一定数目时就关掉整个中断线,于是usb被殃及池鱼了。
头像
rukh
帖子: 23
注册时间: 2007-09-07 22:31

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#4

帖子 rukh » 2009-02-26 0:26

看来真是遇到高手了!先多谢啦! :em01

不过我真是倒霉!刚才装了一下ATi Catalyst 9.2的驱动,结果GDM无法启动了! :em21
处理器 AMD Athlon 64 X2 3800+
芯片组 ATI Radeon Xpress 200
内存 1536 MB (PC3200 DDR SDRAM)
显示卡 ATI Radeon HD 4650
硬盘 ST3320613AS+ST380011A
头像
rukh
帖子: 23
注册时间: 2007-09-07 22:31

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#5

帖子 rukh » 2009-02-27 16:14

在Grub kernel 行里加上irqpoll后搞定。 :em11
处理器 AMD Athlon 64 X2 3800+
芯片组 ATI Radeon Xpress 200
内存 1536 MB (PC3200 DDR SDRAM)
显示卡 ATI Radeon HD 4650
硬盘 ST3320613AS+ST380011A
头像
kelen
帖子: 734
注册时间: 2008-05-02 19:50

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#6

帖子 kelen » 2009-02-27 18:56

楼主是不是用了无线网卡?
In a world without walls who needs Windows?
头像
kelen
帖子: 734
注册时间: 2008-05-02 19:50

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#7

帖子 kelen » 2009-02-27 19:07

我很早就遇到这样的问题了. 当时是在ubuntu的官方论坛(E文)上得到的解决.(与andiry的一样)
不过有一点不明白的是, 之前没有这样的情况. 自动用了无线才有.
另外, Andiry兄, 还有其它的解决办法吗?
In a world without walls who needs Windows?
Andiry
帖子: 8
注册时间: 2008-04-29 9:42

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#8

帖子 Andiry » 2009-02-27 19:40

irqpoll能解掉这个问题,但不是什么好方法,这个选项的意义是每次中断都去轮询当前中断线上的所有中断处理函数,影响系统性能。

我不知道楼主是不是用了无线网卡,但是楼上的明显是无线网卡的驱动bug导致的,跟usb共享了中断却又没把自己的中断处理函数挂上去。前面说过usb驱动是没问题的。

至于怎么解决,最简单的禁掉无线网卡或者不加载这个模块,肯定不会出问题了。如果要用这网卡我也不知道,要看那驱动具体怎么写的,问题出在哪里。我猜想是网卡物理层的初始化错误或者没有完成造成的,没有更进一步的信息我也没法分析。楼上可以把这个问题报到linux社区去,指明自己的系统环境和使用的无线网卡型号。
头像
kelen
帖子: 734
注册时间: 2008-05-02 19:50

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#9

帖子 kelen » 2009-02-28 14:38

andiry兄, 这个问题老外很早就提交bug了, 只是奇怪的是, 只有某些usb会失效. 比如: 我的本子(T61)有三个usb口, 左两右一. 右边这个一直插着鼠标... 问题描述:开机后一段时间后(10分钟~20分钟) 才出现这样的问题, 导致左边的两个不能用. 而右边的usb却正常使用. 目前我也没有用修改boot的参数的方式来解决这个问题. 我的解决办法是当usb口无效时, 直接

代码: 全选

sudo modprobe -r --force ehci_hcd
这样再插入usb设备, 就会自动再加裁一次这个模块. (只要不关机, 之后就不会出现这样的问题了). 问题得到解决.

付上dmesg, 麻烦andiry兄帮忙看看有没完美的解决办法.

代码: 全选

[   80.531775] wlan0: Initial auth_alg=0
[   80.531781] wlan0: authenticate with AP 00:74:04:ef:c2:3b
[   80.533425] wlan0: RX authentication from 00:74:04:ef:c2:3b (alg=0 transaction=2 status=0)
[   80.533429] wlan0: authenticated
[   80.533431] wlan0: associate with AP 00:74:04:ef:c2:3b
[   80.535706] wlan0: RX AssocResp from 00:74:04:ef:c2:3b (capab=0x441 status=0 aid=1)
[   80.535709] wlan0: associated
[   80.543727] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   80.545397] /dev/vmnet: open called by PID 5404 (vmnet-bridge)
[   80.545406] /dev/vmnet: hub 0 does not exist, allocating memory.
[   80.545414] /dev/vmnet: port on hub 0 successfully opened
[   80.545421] bridge-wlan0: is a Wireless Adapter
[   80.545425] bridge-wlan0: up
[   80.545427] bridge-wlan0: attached
[   94.582337] wlan0: no IPv6 routers present
[ 1207.223395] irq 23: nobody cared (try booting with the "irqpoll" option)
[ 1207.223406] Pid: 0, comm: swapper Tainted: P        2.6.24-23-generic #1
[ 1207.223436]  [<c0169214>] __report_bad_irq+0x24/0x80
[ 1207.223456]  [<c01694eb>] note_interrupt+0x27b/0x2c0
[ 1207.223475]  [<f8893ccb>] usb_hcd_irq+0x2b/0x60 [usbcore]
[ 1207.223514]  [<c0168710>] handle_IRQ_event+0x30/0x60
[ 1207.223530]  [<c0169ea6>] handle_fasteoi_irq+0x86/0xe0
[ 1207.223544]  [<c0106f0b>] do_IRQ+0x3b/0x70
[ 1207.223562]  [<c0105403>] common_interrupt+0x23/0x30
[ 1207.223582]  [<c012007b>] __is_prefetch+0x3b/0x240
[ 1207.223589]  [<f8887440>] acpi_idle_enter_bm+0x25b/0x2ce [processor]
[ 1207.223608]  [<c029584c>] cpuidle_idle_call+0x7c/0xb0
[ 1207.223616]  [<c0102695>] cpu_idle+0x45/0xd0
[ 1207.223639]  =======================
[ 1207.223640] handlers:
[ 1207.223641] [<f8893ca0>] (usb_hcd_irq+0x0/0x60 [usbcore])
[ 1207.223657] Disabling IRQ #23
再付上interrupts

代码: 全选

           CPU0       CPU1       
  0:     155220     162359   IO-APIC-edge      timer
  1:       2401       2764   IO-APIC-edge      i8042
  8:          3          4   IO-APIC-edge      rtc
  9:       1525       1540   IO-APIC-fasteoi   acpi
 12:      18686      19082   IO-APIC-edge      i8042
 14:      12585      12561   IO-APIC-edge      libata
 15:          0          0   IO-APIC-edge      libata
 16:       1100       1186   IO-APIC-fasteoi   uhci_hcd:usb3, yenta, nvidia
 17:     116540     111442   IO-APIC-fasteoi   uhci_hcd:usb1
 18:      21563      22768   IO-APIC-fasteoi   uhci_hcd:usb2
 19:          1          3   IO-APIC-fasteoi   ehci_hcd:usb6
 21:        298        386   IO-APIC-fasteoi   uhci_hcd:usb4, ohci1394, HDA Intel
 22:          0          0   IO-APIC-fasteoi   uhci_hcd:usb5, sdhci:slot0
 23:     102972      97029   IO-APIC-fasteoi   ehci_hcd:usb7
215:        585        555   PCI-MSI-edge      eth0
216:      15065      15992   PCI-MSI-edge      iwlagn
217:       8950       9676   PCI-MSI-edge      ahci
NMI:          0          0   Non-maskable interrupts
LOC:     124573     114370   Local timer interrupts
RES:     284015     278747   Rescheduling interrupts
CAL:        320        245   function call interrupts
TLB:        966       1017   TLB shootdowns
TRM:          0          0   Thermal event interrupts
SPU:          0          0   Spurious interrupts
ERR:          0
MIS:          0
上次由 kelen 在 2009-02-28 15:21,总共编辑 1 次。
In a world without walls who needs Windows?
头像
kelen
帖子: 734
注册时间: 2008-05-02 19:50

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#10

帖子 kelen » 2009-02-28 15:05

貌似从interrupts上面看不出有什么端倪来. 还请andiry兄指点.. :em42
In a world without walls who needs Windows?
头像
rukh
帖子: 23
注册时间: 2007-09-07 22:31

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#11

帖子 rukh » 2009-02-28 19:50

我没用无线网卡,但是有一个无线路由器,家里另一台电脑用无线网卡。
处理器 AMD Athlon 64 X2 3800+
芯片组 ATI Radeon Xpress 200
内存 1536 MB (PC3200 DDR SDRAM)
显示卡 ATI Radeon HD 4650
硬盘 ST3320613AS+ST380011A
Andiry
帖子: 8
注册时间: 2008-04-29 9:42

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#12

帖子 Andiry » 2009-02-28 23:00

这个问题还是很清楚的。注意看dmesg后半段,无人处理中断导致最后被关掉的中断线是IRQ23,/proc/interrupts里面23对应的是ehci_hcd。下面解释一下你的疑问。

为什么只有某些usb会失效:从中断16开始到中断23,你的机器上有五个uhci_hcd,两个ehci_hcd。uhci_hcd是Intel的usb1.1的主控制器,ehci_hcd是usb2.0的主控制器。楼主的机器里面usb1.1的主控制器叫做ohci_hcd,那是因为他的机器是AMD的。为什么要这么多uhci_hcd和ehci_hcd,那是因为现在主板上usb端口多,一般每个ehci_hcd各负责一部分端口。你的右边那个端口可以正常用,那是因为你的鼠标是个usb1.1的设备,不走这条中断线。左边那两个端口正好是23这个ehci_hcd控制的端口,所以挂了。下次左边的usb口挂掉以后你把鼠标插上去,看看能不能正常工作。

为什么过了一段时间才挂:按照kernel的定义,某条中断线上未处理中断数目达到一定数量时才关掉整个中断线。这个数量我记得是99000。你的网卡发出的未处理中断到达这一数目时整条中断线就挂了。这个时间在你的机器上就是十多分钟。但我也碰到过很快就挂的,不同设备产生中断的频率不同。

你的这条命令是强行卸掉整个ehci_hcd模块,然后重新加载。重新加载就要重新初始化,重新申请中断,于是IRQ23又被打开,usb设备也就可以用了。而你的网卡模块没有重新加载过,中断线被关掉再打开以后它也不会继续在IRQ23上发出中断,直到关机也不会出问题。当然下次开机问题又会出现。

要我说完美的解决办法就是找出网卡驱动的问题,这个才是根本的解决办法。usb驱动没有任何问题,它只是单纯的受害者。任何针对usb驱动部分动脑筋的都是治标不治本的方法,像是你用的那个命令。至于怎么解,我也不知道啊 :em06
头像
kelen
帖子: 734
注册时间: 2008-05-02 19:50

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#13

帖子 kelen » 2009-03-01 0:12

感谢andiry兄的精辟回答.
正如andiry兄所说, 此办法也是治标不治本. 但网上貌似也一直没有一个更好的办法呀. 不过我个人更倾向于强制挂掉ehci_hcd的做法, 至少不会影响到系统的性能之嫌.
无赖4965的无线网卡太新, 如andiry兄所说, 很大程度上可能是其驱动有BUG. 只能期望有能者尽快完善BUG.
In a world without walls who needs Windows?
头像
rukh
帖子: 23
注册时间: 2007-09-07 22:31

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#14

帖子 rukh » 2009-03-01 0:37

看来Andiry是高手,多谢指教了。希望以后多交流。
处理器 AMD Athlon 64 X2 3800+
芯片组 ATI Radeon Xpress 200
内存 1536 MB (PC3200 DDR SDRAM)
显示卡 ATI Radeon HD 4650
硬盘 ST3320613AS+ST380011A
yhui1286
帖子: 25
注册时间: 2008-03-20 21:46

Re: 在网上看了N多文献后还是不知道怎样让USB设备工作!

#15

帖子 yhui1286 » 2009-05-16 12:54

ubuntu插上u盘不显示。
附件
dmesg.txt.tar.gz
我的dmesg信息,希望高手来看看
(11.51 KiB) 已下载 14 次
回复