当 Debian 上的声音播放处于活动状态时,如何修复鼠标冻结问题?

当 Debian 上的声音播放处于活动状态时,如何修复鼠标冻结问题?

我的 Debian 机器遇到了一个相当令人沮丧的问题。问题是,当我开始通过耳机(也是 USB)播放声音后不久,我的 USB 鼠标指针就会冻结。

更详细地说:我正在运行当前内核

3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux

我的鼠标是标准的 Microsoft USB 鼠标。我的耳机是 Microsoft LifeChat LX-3000。输出如下lsusb

Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 045b:0210 Hitachi, Ltd 
Bus 004 Device 002: ID 045b:0210 Hitachi, Ltd 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 045e:070f Microsoft Corp. 
Bus 003 Device 004: ID 045e:077d Microsoft Corp. 
Bus 003 Device 002: ID 045b:0209 Hitachi, Ltd 
Bus 003 Device 003: ID 045b:0209 Hitachi, Ltd 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

总线 3,设备 4 是鼠标,设备 5 是耳机。还有一个集成的 Intel 声卡,输出arecord -l

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC898 Analog [ALC898 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC898 Digital [ALC898 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC898 Alt Analog [ALC898 Alt Analog]
  Subdevices: 2/2
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
card 2: LX3000 [Microsoft LifeChat LX-3000], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

生活很美好,直到我开始通过耳机播放声音。声音正常,但鼠标指针在一段时间后冻结 - 有时几乎立即冻结,有时在几秒钟后冻结,但持续时间不长。重新插入鼠标后,它又可以工作了,我一直在尝试使用USB 重置代码来自这里,这也有效 - 重置/dev/bus/usb/003/004可使鼠标恢复正常,直到几秒钟后再次冻结。当然,除非我停止播放声音,在这种情况下就没问题了。

我尝试禁用模块autosuspend的选项,usbcore但没有结果。当鼠标冻结时,没有消息添加到dmesg输出中,所以现在我觉得我已经没有好主意了。

答案1

尝试更深入地调试问题。首先,如果您没有收到任何与 HID 挂断相关的消息,则调试日志的详细程度似乎可以更高。

其次,尝试“回归”问题。尝试在“Debian 机器”和音频及鼠标设备之间使用 USB 2.0 集线器。尝试不同的树配置,例如,鼠标连接到根端口,但耳机位于集线器后面。反之亦然。或者两个设备都在集线器后面。

尝试不同的设备,例如使用 FS 型无线 Logitech 鼠标代替 LS 有线鼠标。或者使用不同品牌的耳机(通常是 FS 设备)。您使用的是哪种机器?它具有哪种类型/版本的 USB 控制器?

确定 USB 端口是否在链路上采用任何电源管理也很有用。这应该可以从日志中看到(应该有 WAKEUP 和 RESUME 消息以及相应的中断)。如果能从 USB 协议分析器跟踪故障链路,那就太好了。

相关内容