YouDuck.ai

手柄绑定后反复掉线,报 PIN or Key Missing (0x06)

报错信息

Encryption Change: PIN or Key Missing (0x06)

现象

手柄能配对成功,但随即不断掉线重连,dmesg 或蓝牙日志里反复出现 Encryption Change: PIN or Key Missing (0x06)始终创建不出输入设备——也就是说 padd 永远拿不到摇杆数据。

从表现上看很像手柄坏了或者板子的蓝牙芯片有问题。

原因

这通常是配置过度导致的,不是硬件故障。

Microduck 在处理 aic8800 无线芯片的绑定问题时有两级方案:

方案 做什么 适用
--pause-btd-on-pair 配对时暂停 btd、给适配器断电重启 大多数受影响的板子
--weird-ble 包含上面的暂停,并额外设置 Privacy = device 少数连暂停也不够的板子

官方文档对这个报错有明确说明:

在只需要暂停的板子上设 Privacy = device 会产生比不加任何参数更糟的失败:手柄能绑定上,然后不断掉线并报 Encryption Change: PIN or Key Missing (0x06),永远创建不出输入设备。

也就是说,看到这个报错,说明你用了 --weird-ble,但这块板子其实只需要暂停。

解决

去掉 --weird-ble,改用 --pause-btd-on-pair 重新 provision:

./scripts/provision-board.sh --pause-btd-on-pair [email protected]

它会在 /var/lib/robot/weird-ble 留一个标记文件,除此之外不改任何东西。有这个标记的板子上,sudo robotctl pad pair 会自己完成剩下的流程——停 btd、给适配器断电重启、配对、重启 btd,并在过程中打印它在做什么。

在两种配置之间移动板子的完整命令表,在官方的 install-dev.md 里。

排查顺序

遇到手柄绑定问题时,从最轻的方案开始试

  1. 先确认手柄真的进了配对模式——Xbox 手柄要按顶部的 Sync 键到快闪,慢闪只是开机。
  2. 确认手柄的绑定槽位没被占用。Xbox 手柄只能保存一个主机绑定,一次失败的配对会让它留着一个本板子已经没有的密钥。把它配到笔记本上再删除,可以消耗并释放这个槽位——只切到配对模式做不到。
  3. --pause-btd-on-pair
  4. 只有在暂停也无效时才上 --weird-ble

备注

如果你实际遇到并复现了这个问题,欢迎补充具体的板子批次和 BlueZ 版本——用 pad-stack-report.sh--fingerprint 输出对比两块板子最有说服力。

相关内容