技术解析

Manjaro Gnome 10/8 稳定版更新后出现 USB 移除问题.
0
2021-06-29 12:18:51
idczone

今早日常稳定版更新,更新完后出现一个设备连接一个 USB 接口只能连一次的情况.
就是第一次连接正常,拔下后再插回到这个 USB,内核可以识别到这个设备,但是不能正常工作.
以 ip6 为例,第一次连接 OK 照片也能读取.再次连接连充电都不行.
用 USB 鼠标测试也是一样,第一次正常工作再次连接就没法工作了.

$ screenfetch

 ██████████████████  ████████     [email protected]
 ██████████████████  ████████     OS: Manjaro 17.0.2 Gellivara
 ██████████████████  ████████     Kernel: x86_64 Linux 4.9.40-1-MANJARO
 ██████████████████  ████████     Uptime: 6h 1m
 ████████            ████████     Packages: 1173
 ████████  ████████  ████████     Shell: bash
 ████████  ████████  ████████     Resolution: 1920x1080
 ████████  ████████  ████████     DE: GNOME 
 ████████  ████████  ████████     WM: GNOME Shell
 ████████  ████████  ████████     WM Theme: 
 ████████  ████████  ████████     GTK Theme: Adwaita [GTK2/3]
 ████████  ████████  ████████     Icon Theme: Moka
 ████████  ████████  ████████     Font: Noto Sans CJK JP 12
 ████████  ████████  ████████     CPU: Intel Core i7-3630QM @ 8x 3.4GHz [27.8°C]
                                  GPU: Unknown
                                  RAM: 2549MiB / 15941MiB

尝试过所有包重新安装,但是没有解决问题
观察 systemctl 发现重复在多个 USB 口链接 IP6,会留下多个 device 单元,不会消失.

UNIT                                                                                        LOAD   ACTIVE SUB       DESCRIPTION                                                                 
sys-devices-pci0000:00-0000:00:14.0-usb3-3\x2d1-3\x2d1:4.2-net-enp0s20u1c4i2.device         loaded active plugged   iPhone5/5C/5S/6                                                             
sys-devices-pci0000:00-0000:00:14.0-usb3-3\x2d1.device                                      loaded active plugged   iPhone5/5C/5S/6                                                             
sys-devices-pci0000:00-0000:00:14.0-usb3-3\x2d2-3\x2d2:4.2-net-enp0s20u2c4i2.device         loaded active plugged   iPhone5/5C/5S/6                                                             
sys-devices-pci0000:00-0000:00:14.0-usb3-3\x2d2.device                                      loaded active plugged   iPhone5/5C/5S/6                                                             

然后尝试

systemctl daemon-reload

systemctl 中滞留的 device 单元会清空
发现 USB 又能正常工作一次

观察 lsusb 识别信息又是正常的.

$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 027: ID 1a81:1011 Holtek Semiconductor, Inc. 
Bus 001 Device 017: ID 04ca:3006 Lite-On Technology Corp. 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 010: ID 05ac:12a8 Apple, Inc. iPhone5/5C/5S/6
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

/dev 里的描述符会在 USB 连接和拔出的时候正常出现消失,只不过计数一直在涨.

$ ls -lA /dev/bus/usb/003/
总用量 0
crw-rw-r--  1 root   root 189, 256 8 月  11 12:30 001
crw-rw-r--+ 1 usbmux root 189, 265 8 月  11 18:25 010

如果有需要其他信息请回复我,我很需要解决这个 BUG,谢谢


插一插

我之前装 Manjaro 的时候遇到一模一样的问题。没解决的情况下直接换了 Arch(Manjaro 的 debug 和 Arch 还是有巨大区别的)。考虑到我并没有解决你的问题,只能给几个建议了。第一,切换下内核版本。第二,重点关注下电源管理机制(曾经捣鼓 Arch on Macbook 的时候装了电源管理相关的包,具体忘了是那个了,但是类似于 acpi 之类的,出现过类似情况,所以算一个线索吧),Manjaro 并没有详细文档解释他预装了什么,所以我最终还是弃坑用 Arch 了。


emmmm.....内核版本我是打算换换看的.
不过电源管理的包我是没有装过,要有也是一开始就装了吧,跟我更新后出现问题这点稍微有点对不上.


更换了下 4.10 和 4.11 发现除了 IPhone 以外的 USB 设备好像恢复正常了
我还注意到另一个事情了,更新前拔插 USB 会有音效的,现在没有了,应该是除了内核还有什么包不正常.

如果有的话,卸载下 acpid 和 tlp 这两个包。这两个包是最近这段时间我想象的出跟电源管理有直接关系的包。


看了下 arch wiki.
acpid 应该是和 gnome 自身的电源管理有冲突的,但是我卸载了 acpid 和 tlp 包,没有修复上面的问题.
不过还是谢谢了

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服