红外遥控

如何找到瑞芯微电视盒子遥控器的硬件ID

步骤1:连接设备并进入ADB调试

确保电视盒子已开启USB调试(在“设置-开发者选项”中开启),然后通过ADB连接设备:

adb connect 盒子IP地址  # 如:adb connect 192.168.1.100
adb root  # 获取root权限

步骤2:列出所有输入设备,定位遥控器

执行以下命令列出系统中所有输入设备及其硬件信息:

adb shell getevent -lp

在输出结果中,找到名称包含“remote”“IR”或“蓝牙”的设备(即遥控器对应的输入设备),记录其设备路径(如/dev/input/eventX)和硬件ID信息(VendorProduct字段)。

步骤3:确认硬件ID(Vendor/Product)

若需更精确的硬件ID,可针对遥控器设备执行:

adb shell getevent -i /dev/input/eventX  # 替换eventX为实际设备路径

输出中会明确显示vendor(厂商ID)和product(产品ID),例如:

add device 1: /dev/input/event0
  name:     "Rockchip IR Remote"
  vendor:   0x0e6f  # 瑞芯微常见厂商ID为0x0e6f
  product:  0x0001

补充:红外遥控器用户码获取(可选)

若需红外遥控器的用户码(用于协议匹配),可通过内核调试节点查看:

adb shell "echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print"
adb shell cat /proc/kmsg | grep "usercode"

按下遥控器按键后,日志中会输出用户码(如usercode=0xf601)。

故障排查流程

以下是采用步骤式流程图形式的故障排查指南,按“问题→排查步骤→结果判断”线性展开,更直观易懂:

ADB按键配置故障排查步骤图

故障类型1:按键按下后 getevent -l 无任何输出

┌─────────────────┐
│  开始排查       │
├─────────────────┤
│ 1. 检查硬件连接  │
│   - 蓝牙/红外遥控器重新配对   │
│   - 实体按键接线是否松动、供电是否正常 │
├─────────────────┤
│ 2. 确认设备是否被系统识别       │
│   执行:adb shell dumpsys input   │
│   → 查看输入设备列表中是否有目标设备(如“Bluetooth Remote”) │
├─────────────────┤
│ 3. 若设备未识别 → 检查驱动/设备树  │
│   - 确认设备驱动已加载(查看内核日志:dmesg | grep 设备名) │
│   - 检查设备树(DTS)中按键节点配置是否正确 │
├─────────────────┤
│ 4. 若设备已识别 → 排查系统拦截/硬件故障  │
│   - 执行:adb logcat | grep input(查看是否有“blocked”等拦截日志) │
│   - 用万用表测试按键引脚:按下时电平是否变化(判断硬件是否损坏) │
├─────────────────┤
│  问题解决/更换硬件  │
└─────────────────┘

故障类型2:找不到按键对应的 kl 文件

┌─────────────────┐
│  开始排查       │
├─────────────────┤
│ 1. 获取设备标识信息  │
│   - 从 `getevent -l` 中记录按键对应的 eventX(如event5) │
│   - 执行:adb shell ls /sys/class/input/event5/device/name → 获取设备名(如“IR Remote”) │
├─────────────────┤
│ 2. 提取厂商ID和产品ID  │
│   执行:adb shell dumpsys input → 搜索设备名,记录 vendor=0xXXXX、product=0xYYYY │
├─────────────────┤
│ 3. 查找对应 kl 文件  │
│   执行:adb shell ls /system/usr/keylayout/ → 搜索 Vendor_XXXX_Product_YYYY.kl │
├─────────────────┤
│ 4. 若找到文件 → 核对命名格式  │
│   - 确认XXXX、YYYY与厂商ID/产品ID完全一致(十六进制,小写) │
├─────────────────┤
│ 5. 若未找到文件 → 使用通用文件  │
│   - 推荐:Generic.kl(通用设备)、rk29-keypad.kl(瑞芯微平台) │
│   - 确保系统分区可写(执行:adb remount) │
├─────────────────┤
│  问题解决/使用通用文件配置  │
└─────────────────┘

故障类型3:kl 文件修改后功能仍无效

┌─────────────────┐
│  开始排查       │
├─────────────────┤
│ 1. 校验 kl 文件内容  │
│   - 扫描码格式:必须为十六进制(如0x18,而非十进制24) │
│   - 功能名正确:如POWER(电源)、VOLUME_UP(音量+) │
├─────────────────┤
│ 2. 确认文件路径与权限  │
│   - 推送路径:必须是 /system/usr/keylayout/(不可错放) │
│   - 修复权限:执行 adb shell chmod 644 /system/usr/keylayout/目标文件 │
├─────────────────┤
│ 3. 重启设备并验证  │
│   - 执行:adb reboot → 重启后测试按键功能 │
│   - 重新执行:getevent -l → 确认按键事件是否被正确识别(code匹配) │
├─────────────────┤
│ 4. 若事件未识别 → 重新获取扫描码  │
│   - 可能原扫描码记录错误,重新执行 getevent -l 捕捉 │
├─────────────────┤
│ 5. 若事件已识别 → 排查文件加载失败  │
│   执行:adb logcat | grep keylayout → 查看是否有“failed to load”等错误 │
├─────────────────┤
│  问题解决/重新配置 kl 文件  │
└─────────────────┘

故障类型4:input keyevent 模拟按键无响应

┌─────────────────┐
│  开始排查       │
├─────────────────┤
│ 1. 核对按键码与功能  │
│   - 确认按键码正确(如POWER=26、VOLUME_UP=24,参考Android官方按键码表) │
├─────────────────┤
│ 2. 检查设备权限  │
│   - 部分功能(如关机)需root权限:执行 adb root 后重试 │
├─────────────────┤
│ 3. 排查系统限制  │
│   - 执行:adb shell getprop → 查看是否有厂商定制限制(如“ro.secure=1”) │
│   - 关闭厂商按键管理应用(如“按键屏蔽”功能) │
├─────────────────┤
│ 4. 替换通用 kl 文件测试  │
│   - 用 Generic.kl 覆盖原文件,重启后重新配置并测试 │
├─────────────────┤
│  问题解决/适配系统限制  │
└─────────────────┘

ADB 遥控器按键映射配置(成功版)

核心目标

将 XING WEI 2.4G USB 遥控器按键(扫描码 0x00070051)映射为 POWER(关机)功能

关键前提

  • 设备:XING WEI 2.4G USB 复合设备(厂商ID 0x1915,产品ID 0x1025
  • 依赖文件:/system/usr/keylayout/Generic.kl(无专属kl文件,用通用文件)
  • 扫描码类型:HID 消费类扫描码(需用 usage 格式配置)

步骤(简洁版)

  1. 捕获扫描码:adb shell getevent -l → 记录目标按键扫描码 0x00070051
  2. 拉取文件:adb remount && adb pull /system/usr/keylayout/Generic.kl ./
  3. 编辑文件:删除无效配置,末尾添加 key usage 0x00070051 POWER
  4. 推送生效:adb push Generic.kl /system/usr/keylayout/ && adb chmod 644 目标路径 && adb reboot
  5. 验证:重启后按目标按键,确认关机功能生效

关键坑点&解决方案

  • 坑1:大数值扫描码用十进制配置 → 换 key usage 0x十六进制 格式(适配HID设备)
  • 坑2:文件权限错误 → 强制设置 chmod 644
  • 坑3:推送路径错误 → 确保目标路径为 /system/usr/keylayout/
posted @ 2025-11-09 16:23  Byron_Zora  阅读(14)  评论(0)    收藏  举报