光标不动:如何排查输入层故障
输入层的症状、原因与解决方法:光标不动、抖动、COM 端口消失、辅助连不上、透传导致真鼠标失灵、输入重复以及灵敏度不对。
简短回答
先确认你自己的鼠标能通过设备移动光标,再确认副机(第二台电脑)能打开链路。大多数输入故障都出在插错接口、缺少串口驱动、COM 端口或波特率不匹配,或者用了只能充电的线。
链路的哪一半出了问题?
输入层由两个相互独立的半边组成,而几乎没有人会分开测试它们,这就是为什么这类故障要花几个小时而不是几分钟。HID 半边是你的手:实体鼠标插进设备,设备接到游戏主机,光标移动。控制半边是辅助:副机通过串口或 IP 向设备发送指令,光标在没有手操作的情况下移动。一个问题就能判断是哪一半坏了:你自己的鼠标能移动光标吗?如果能,HID 半边没问题,剩下的所有问题都出在副机上的驱动、端口或配置。如果不能,就别再盯着辅助了,因为你遇到的是线缆或固件问题,任何软件设置都解决不了。
如何在五分钟内找到故障
按顺序执行下面的步骤,一步都不要跳。每一步都能排除一整类故障,而且顺序是把成本最低的测试放在前面。
- 确认实体鼠标插在设备的主机接口上、游戏主机的线插在设备的 HID 接口上,因为三个接口里通常有两个长得一模一样
- 移动你自己的鼠标。如果光标会动,说明 HID 半边正常,接游戏主机的线就不用再操心了
- 在游戏主机上打开设备管理器,确认你这套配置只列出了一个鼠标设备,并且没有黄色警告三角
- 在副机上打开设备管理器找到设备:串口设备对应一个 COM 端口,KMBox Net 对应一个网络适配器
- 把副机的线换成一根确认能传数据的线,并换到另一个后置 USB 口,因为只能充电的线失效时完全不会有任何提示
- 检查 COM 号是否与辅助中设置的一致,如果还不是一位数,就强制设成一位数
- 检查两边的波特率,因为不匹配时看起来连接正常,实际却什么都不做
- 运行辅助或厂商的移动测试,观察游戏主机上的光标。如果光标动了,整条链路就验证通过,剩下的都是瞄准配置的问题
常见故障及解决方法
这十种故障几乎涵盖了所有输入层相关的工单。找到你的症状,按解决方法逐项处理,在确实排除当前这一行之前,不要跳到下一行。
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 光标完全不动,手动和辅助都不行 | 插错了接口、设备没有供电,或者固件没有在运行 | 确认鼠标插在主机接口、游戏主机的线插在 HID 接口。把两根 USB 线都接上,因为有好几款设备必须接上控制线才能通电。检查状态指示灯,如果设备毫无反应,就重新刷写固件 |
| 你的鼠标能用,但辅助无法让光标移动 | 几乎总是波特率不匹配,或者辅助指向了错误的端口或 IP | 把设备和辅助设成相同的波特率,除非软件文档另有说明,否则就是 115200。如果是网络设备,打开辅助之前先 ping 盒子的 IP。端口能正常打开却什么都不动,就是这类故障的典型表现 |
| 光标能动,但抖动、有台阶感或卡顿 | 8 位描述符字段导致位移量被截断、控制链路饱和,或者副机 CPU 资源不足 | 使用报告描述符声明为 16 位相对坐标轴的固件。把辅助中的指令速率调低而不是调高,然后关闭副机上运行的其他程序,再测试一次 |
| 副机的设备管理器里看不到设备 | 缺少串口驱动、用的是只能充电的线,或者端口坏了 | 安装正确的驱动(MAKCU 用 CH343,KMBox B+ 用 CH340),然后用一根确认能传数据的线换一个后置 USB 口,再重启副机 |
| COM 端口消失,或者端口号总在变 | 驱动没有绑定,或者是原生 USB 的板子,每次复位都会重新枚举 | 在设备管理器中从厂商驱动文件夹手动更新驱动。然后打开“端口设置”→“高级”,强制指定一个固定的一位数 COM 号。拔下设备再重新插上,确认端口号保持不变 |
| 辅助提示无法连接到设备 | 端口或 IP 错误、有其他进程占用着端口,或者辅助需要管理员权限 | 关闭所有可能占用 COM 端口的工具,包括厂商测试工具和串口监视器,并以管理员身份运行辅助。如果是网络设备,检查副机的静态 IP 是否与盒子在同一网段,并且地址不相同 |
| 能用一段时间,然后在使用中途停止工作 | USB 节能功能让设备进入了挂起状态、线缆接触不良、过热,或者指令速率超出了设备能持续承受的范围 | 在设备管理器中打开每一个 USB 根集线器和 USB 控制器,进入“电源管理”,取消勾选允许计算机关闭此设备的选项。更换线缆,并调低指令速率,因为有些设备在文档中明确说明调用过于频繁会卡死 |
| 设备一插上,真鼠标就完全失灵 | 透传没有在运行:设备向游戏主机呈现了一只鼠标,但从不转发你手上的输入 | 给主机侧重新刷写当前版本的透传固件。如果是 DIY 板子,先用库自带的鼠标示例证明主机控制器正常工作,再去怀疑辅助 |
| 每一次移动和点击都被识别了两次 | 实体鼠标除了插在输入设备上,还同时插在了游戏主机上 | 把真鼠标从游戏主机上拔下来,它只应该插在输入设备的主机接口上。这样还能消除游戏主机 USB 总线上的重复身份,这本来就是你不想要的 |
| 瞄准灵敏度严重偏高或偏低,或者会随游戏内设置变化 | 鼠标 DPI、游戏内灵敏度和辅助自身的缩放是三个乘数,而辅助只知道其中一个 | 给鼠标设定一个明确的 DPI,记下来,并在辅助要求填写的地方填入同样的数值。关闭游戏内的鼠标加速和任何平滑选项,每次修改 DPI 或灵敏度后都重新调校,而不是和辅助的缩放较劲 |
问题出在配置的哪一部分
在任何地方发帖求助之前先对照这张表,因为把问题问错了层,得到的只会是一个信心满满的错误答案。
| 症状 | 所在层 | 不用去查 |
|---|---|---|
| 你自己的鼠标无法移动光标 | 输入设备的硬件或固件 | 辅助、DMA 卡、内存映射(MMAP)。它们都与此无关 |
| 你的鼠标能用,辅助连不上 | 副机的驱动和端口配置 | 焊接、游戏主机、描述符 |
| 辅助已连接,光标能动,但瞄准不对 | 辅助配置:DPI、灵敏度、平滑 | 线缆和驱动。整条链路已经验证过了 |
| 没有目标、没有方框,屏幕上什么都没有 | DMA 卡、固件或内存映射层 | 完全不用查输入设备。它根本不知道游戏里有什么 |
| 一切正常,游戏更新后就不行了 | 辅助和偏移量 | 硬件。游戏补丁不会改变你的 USB 接线 |
提交工单时要附上的信息
这六行信息能把两天的来回沟通变成一次回复就解决,所以请直接贴在你的第一条消息里。
- 设备和固件
- 准确的型号,以及当前运行的固件版本
- 链路类型和设置
- COM 号和波特率,或者 IP、端口以及 ping 是否有回复
- 哪一半正常
- 你自己的手能不能移动光标,能还是不能。这是整张工单里最有用的一行
- 鼠标
- 型号、有线还是接收器,以及 DPI 设置
- 接口
- 用文字说明设备的哪个接口插的是什么
- 改动了什么
- 出问题之前你最后改动的东西:驱动、刷写固件、Windows 更新、换了新线
每次都要先排除的问题
- 设备的两根 USB 线都接上了,而不只是接游戏主机的那一根
- 真鼠标没有同时插在游戏主机上
- 副机的线是数据线,插在后置接口上,中间没有集线器
- 辅助中的 COM 号与设备管理器一致,并且是一位数
- 两边的波特率一致
- 两台机器上各控制器的 USB 选择性暂停都已关闭
- 没有串口监视器或厂商测试工具仍然占用着端口
提示
值得养成的两个习惯
第一,在相信任何其他判断之前,先换线。一根给手机充电毫无问题的线,可能根本没有数据线芯,于是在它之上的每一层都会悄无声息地失败,所以准备一根验证过的线专门用来测试。第二,彻底断电重启:把设备从两台机器上都拔下来,等几秒钟,然后先接控制线,再接游戏主机。对于 USB 供电从未中断过的设备,软复位往往什么都改变不了,而很多故障在真正的冷启动之后就消失了。
故障排查常见问题
辅助显示已连接,但什么都没发生,这是怎么回事?
十有八九是波特率不匹配。无论两端的速率是否一致,串口都能成功打开,所以软件会报告连接成功,而它发送的每一个字节都被错误解读。把两边设成相同的速率,先从 115200 开始。
要不要把鼠标也插到游戏主机上作为备用?
不要。这会让你的输入翻倍,还会在游戏主机的总线上多出一台身份相同的设备,这与描述符克隆的目的正好相反。如果需要备用,就在抽屉里放一只不接的备用鼠标。
一台糟糕的输入设备会让我被封号吗?
它可能会增加可疑信号,因为 USB 总线上的默认开发板身份,或者明显不像人手的移动,都可能被拿出来审视。这里的任何一点都打不了包票,无论是会被封还是不会被封,也没有任何配置能让你安全。修正明显的异常,并诚实地面对你的瞄准看起来是什么样子。
为什么插副机前置 USB 口能用、后置不能用,或者反过来?
这些接口挂在不同的控制器上,供电和驱动行为也不同。测试时直接使用后置接口,并去掉路径上所有的集线器。如果只有某一个特定接口能用,说明你的链路本身处于临界状态,在使用中途还会再次出问题。
我刷了固件之后设备就没反应了,是变砖了吗?
通常不是。这类板子大多有通过硬件回到 bootloader 的办法,比如 Teensy 上的 Program 按钮,或者 MAKCU 上按住侧边按键的同时接通电源。在买新的之前,先去设备文档里查一下这个办法。
资料来源
没有任何公开文档列出过这些症状和解决方法,所以每一行都来自工单和我们自己的实测。
继续阅读
仍然没有解决?在 Discord 提交工单
全部指南