使用btmgmt设置LE 2M PHY遇参数错误,求正确配置方法
解决btmgmt配置LE 2M PHY时的"Invalid Parameters"错误
问题情况
执行以下命令时触发参数错误:
btmgmt phy LE2MTX LE2MRX
错误提示:
Could not set PHY Configuration with status 0x0d (Invalid Parameters)
对应的btmon日志:
@ MGMT Open: btmgmt @ MGMT Command: Set PHY Configuration (0x0045) plen 4 Selected PHYs: 0x1800 LE 2M TX LE 2M RX @ MGMT Event: Command Status (0x0002) plen 3 Set PHY Configuration (0x0045) Status: Invalid Parameters (0x0d) @ MGMT Close: btmgmt
从btmgmt phy输出可见设备确实支持并可配置LE2MTX/LE2MRX:
Supported phys: BR1M1SLOT BR1M3SLOT BR1M5SLOT EDR2M1SLOT EDR2M3SLOT EDR2M5SLOT EDR3M1SLOT EDR3M3SLOT EDR3M5SLOT LE1MTX LE1MRX LE2MTX LE2MRX Configurable phys: BR1M3SLOT BR1M5SLOT EDR2M1SLOT EDR2M3SLOT EDR2M5SLOT EDR3M1SLOT EDR3M3SLOT EDR3M5SLOT LE2MTX LE2MRX Selected phys: BR1M1SLOT BR1M3SLOT BR1M5SLOT EDR2M1SLOT EDR2M3SLOT EDR2M5SLOT EDR3M1SLOT EDR3M3SLOT EDR3M5SLOT LE2MTX LE2MRX
错误原因
直接执行btmgmt phy LE2MTX LE2MRX会替换当前所有选中的PHY,但蓝牙配置有两个硬性规则:
- 不能完全移除BR/EDR类PHY(你的设备明显支持BR/EDR,不属于纯LE设备)
- LE 1M PHY是蓝牙规范强制要求的基础兼容选项,必须保留(你的设备支持LE1MTX/LE1MRX,且不在可配置列表中,说明是默认锁定状态)
仅指定LE2M相当于要清除所有其他PHY,违反了配置规则,因此触发参数无效错误。
正确配置方法
方法1:增量添加LE2M PHY(推荐)
无需替换全部配置,直接将LE2MTX和LE2MRX添加到现有选中的PHY集合中:
btmgmt phy --add LE2MTX LE2MRX
方法2:完整指定所有需要的PHY
如果要明确设置全量PHY列表,需带上当前已选中的BR/EDR配置,再加上LE2M:
btmgmt phy BR1M1SLOT BR1M3SLOT BR1M5SLOT EDR2M1SLOT EDR2M3SLOT EDR2M5SLOT EDR3M1SLOT EDR3M3SLOT EDR3M5SLOT LE2MTX LE2MRX
验证配置
执行以下命令确认配置生效:
btmgmt phy
只要Selected phys字段中包含LE2MTX和LE2MRX,即说明配置成功。
额外提示
- 配置LE2M后,蓝牙设备连接时会优先与支持LE2M的设备协商使用2M速率,不支持的设备会自动 fallback到LE1M,无需额外设置。
Configurable phys中没有LE1MTX/LE1MRX,说明这两个PHY为系统默认必须保留项,无法修改。
内容的提问来源于stack exchange,提问作者Kelvin Lee
相关产品推荐
相关产品推荐

