rk、allwinner、amlogic平台遥控器调试

0 阅读1分钟

rk平台首先连接otg或者无线连接adb到安卓设备,然后接入遥控器探头输入以下adb指令

adb shell

su

//开启红外遥控器的调试打印开关

echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print

//实时过滤并显示包含 "USERCODE" 的内核日志,同时显示匹配行的后2行内容

cat /dev/kmsg | grep USERCODE -A 2

然后按键遥控器,可以看到usercode的值

image.png

还可以看到按键的具体值

image.png

然后找到kernel-6.1/arch/arm64/boot/dts/rockchip/下面有对应型号的dtsi文件,这个下面有很多这种文件需要找到对应的型号,下面举例rk3576的型号

image.png

然后找到ir_key0的配置,把上面遥控器的usercode和按键值与需要的操作匹配上就可以

image.png

allwinner平台的操作和rk类似,但是遥控调试开关的位置不太一样,用

echo 8 > /proc/sys/kernel/printk

echo 2 > /sys/module/rc_core/parameters/debug

然后查看log日志可以看到遥控器输入信息

image.png

但是这个输出信息只有keycode的值没有usercode的值

这时候我们需要按下遥控,然后再控制台输入dmesg -c 打印出刚刚按键的信息

image.png

可以看到scancode的值,这是一个usercode和keycode合在一起的值,接下来我们只需要找到源码中的对照表,按照需求修改这个表就可以了

image.png

以allwinner133芯片为例,我们找到这个路径的文件

image.png

然后按照键值对信息把刚刚scancode的值输入就可以了

amlogic的平台接入遥控器之后按下按键然后控制台输入dmesg -c,就可以看到usercode和keycode的值