惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
美团技术团队
Recent Announcements
Recent Announcements
B
Blog
GbyAI
GbyAI
雷峰网
雷峰网
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
V
V2EX
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
宝玉的分享
宝玉的分享
A
About on SuperTechFans
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
aimingoo的专栏
aimingoo的专栏

Linux

libcr 项目发布高性能相册应用 crPhotos 1.7.0 , 新增 Android 相册同步功能 - V2EX 开源: Linux NVIDIA 虚拟显示器方案,无需 HDMI 欺骗器 - V2EX 高性能瀑布流相册应用 crPhotos 1.5.0 发布,新增图片中的文本识别和选择 - V2EX 高性能瀑布流相册应用 crPhotos 1.4.0 发布,新增照片和视频的人物自动分类 - V2EX libcr 项目组发布瀑布流模式照片应用 crPhotos 1.0.0 for Linux - V2EX crPhotos - 支持 Linux 的瀑布流模式的照片浏览器 - V2EX 旧的安卓手机变服务器 - V2EX 发现了一个 btrfs 的 bug,有没有 v 友一起来看下? - V2EX 求助:有没有无影响检查 /etc/fstab 的可靠方法? - V2EX 《铜豌豆 Linux 》12.15.1 版本发布 - V2EX Grok-Bot Linux 原生 0.20.0 版本 - V2EX 借助语音大模型,实现 Linux 下的语音输入,邀请 Linux 桌面用户试试 - V2EX RustDesk 现已支持 Wayland 无人值守远程访问 - V2EX 看到 AI 让 Linux 变得真正可用了帖子,想问下现在最推荐的是 Linux 发行版是哪个呢 - V2EX AI 让 Linux 变得真正可用了 - V2EX 给 Noctalia 做了一个 Mihomo / Clash 控制插件 - V2EX 用起来比较舒服的 Linux 桌面 Niri+DankMaterialShell - V2EX Linux 输入法求助 请问: Linux 系统下,有没有好用的 [查找重复文件] 的软件? [震惊] 用 Firefox 播放一个抖音视频,我的 Linux 系统立马死机 强烈推荐一款性价比极高的 Linux 本搞 vibe coding Linux 下有没有可能实现 Listary 的快速跳转 AI 能用来全自动化解决 Linux 系统问题吗? V2EX › 登录 大佬们, Linux kernel 漏洞频发需要升级的问题,你们是怎么处理的? 为啥 ubuntu 搞个 wayland 这种不兼容的玩意出来 Linux 上的游戏网络加速 太好了感动哭了 chrome149 修复了 wayland+nvidia 的硬件加速问题 debian+gnome 开机后可以不显示用户列表 只需要输入密码 像 mac 那样么?有什么插件实现么 升级后,发现 USB 相关的设备无法启用,可以查下有没有 usbguard 服务
北通手柄 Linux USB 断连排查与修复
675076143robin · 2026-07-23 · via Linux
🚀第一篇水贴

一开始只是想让 archlinux 能 2.4g 连上我的北通手柄

从硬件查到驱动,从 usb 查到 xpad

当我解决完并推送到 aur 仓库的时候,她说要去找个用 windows 的

fk Microsoft !

https://www.reddit.com/r/linuxsucks/comments/1k6e9th/i_lost_my_wife_because_of_linux

北通手柄 Linux USB 断连排查与修复

症状

北通 BTP-KP40A 手柄通过 2.4G 无线接收器连接 Linux 时,USB 设备每 ~1 秒断开重连一次。蓝牙模式正常,有线 USB 正常(识别为 Switch 手柄),Windows 上 2.4G 也正常。

排查过程

第一步:排除硬件

把接收器换到不同 USB 端口( 2.0/3.0 ,直连主板/Hub ),问题依旧。手柄在 Windows 上同端口正常工作,确认是 Linux 侧的问题。

第二步:排除驱动

  • 卸载 xpad 模块 — 仍然断连
  • 禁用 USB autosuspend — 无效
  • 尝试所有 usbcore.quirks 组合 — 无效
  • 安装 xboxdrv( libusb 绕过内核驱动) — 仍然断连

usbmon 抓包显示内核发送 SET_CONFIGURATION(0) → SET_CONFIGURATION(1) 序列,设备 ~770ms 后 USB 断开。这个模式看起来像 kernel 在重置设备,但实际原因是——固件自己在断开

第三步:Arch Wiki 线索

查到 Arch Wiki Gamepad 页 的 ShanWan 专节,提到类似问题。但所有已知 quirk 方案对我的 20bc:5127 无效。

真正原因

补丁作者 Zixing Liu 在 linux-input 邮件列表 中解释:

"This series of controllers will try to see if specific Xbox One packets were sent during the probing phase and will power-cycle themselves when they fail to see these packets."

北通/ShanWan 的固件在初始化阶段检测主机操作系统。它等待主机发送 Xbox One GIP ( Game Input Protocol )协议包( ACK + ANNOUNCE )。如果 ~1 秒内没收到,固件就断开 USB 重连,尝试下一次。超过 3 次后切换到下一个输入模式(比如 Switch 模式,即 20dd:5127 DONGLE 模式)。

Windows 上能工作是因为 Xbox 驱动会发这些包。Linux 的 xpad 驱动和 xboxdrv 都不会发,所以固件认为主机不是 Windows ,主动断开。

修复

Zixing Liu 提交了补丁,在 xpad 驱动中添加 FLAG_FORCE_INIT 标志。对 Beitong KP 系列设备,在探测阶段发送 4 个 GIP 初始化包:

ACK → ANNOUNCE → ACK → ACK

固件收到这些包后,确认主机是 Xbox/Windows 驱动,稳定工作在 XINPUT 模式,不再断连。

补丁安装

我已将它做成了 DKMS 包,AUR 可直接安装:

yay -S xpad-beitong-dkms

内核更新后 DKMS 会自动重建模块。

注意:这是临时方案。 补丁已由作者提交到 linux-input 邮件列表( v3 ,2026-07-17 ),review 通过后将合入主线。预计 Linux 7.3 或后续 rc 版本会包含此修复,届时 DKMS 包即可弃用,直接升级内核即可。

后记

这个问题的排查花了很长时间,因为一开始方向错了。usbmon 显示 USB 层 SET_CONFIGURATION 重配置,很容易以为是 USB xHCI 驱动的兼容性问题。但实际上 disconnect 是固件主动触发的,不是 USB 核心层的 bug 。

回头看,线索其实在 usbmon 数据里:断开前没有 USB 错误(没有 -71 EPROTO ),设备是自己"优雅"断开的。但当时没意识到这是固件的主动行为。

另一个教训是:Arch Wiki 虽然提到了 ShanWan 固件问题,但给的 quirk 方案针对的是其他型号。不同的 ShanWan 接收器行为差异很大,需要具体分析。

最后感谢 Zixing Liu 写的补丁,以及 linux-input 邮件列表上的讨论。

链接