技术解析
今早日常稳定版更新,更新完后出现一个设备连接一个 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,谢谢