MSTAR648方案遥控器配置

以遥控器头码为0x6121 power键值为0X00为例子:
1、PM中配置头码和power键
/vendor/mstar/pm/zenonia/Project/Source/ir/IR_MSTAR_DTV.h  修改头码键值
#define IR_HEADER_CODE0         0x61    // Custom 0     //0x04
#define IR_HEADER_CODE1         0x21    // Custom 1     //0xFB
IRKEY_POWER             = 0x00, //0x46,

编译pm代码生成STR_PM.bin
将STR_PM.bin放置在
\supernova\projects/board/mooney/bin/prebuilt/pm51/ 
\supernova\projects\board\INI\misc_XX\             ps:XX代表客制化的客户 例如 misc_EDU
 

2、kl中配置头码和power键
/kernel/linaro/mstar2/drv/ir/IR_MSTAR_CUS21SH.h
#define IR_HEADER_CODE0         0x61UL    // Custom 0     //0x04
#define IR_HEADER_CODE1         0x21UL    // Custom 1     //0xFB

配置键值(如果不知道按键的键值是多少的话可以先配置好头码然后通过shell getevent来获得对应的按键值)
/kernel/linaro/drivers/media/rc/keymaps/rc-mstar-tv.c

编译kl 生成mdrv-ir.ko、 rc-mstar-tv.ko
复制到keylayout
\device\mstar\cv6a648_base\preinstall\CustomerConfig\XX\XXMODEL\keylayout\
将mdrv-ir.ko、 rc-mstar-tv.ko 复制到\device\mstar\cv6a648_base\preinstall\CustomerConfig\XX\XXMODEL\keylayout\
将rc-mstar-tv.ko重命名为rc-cultraview-tv-baseline.ko
 

3、sup设置中配置头码和power键
\supernova\projects\board\mooney\buildsettings\build_BASE_CV648H-I-10-DEMO_DTMB_FHD_2G_DDR_FXC_V450HJ1-Q01_CTVMODEL_I_xx.sh
sed -i 's/IR_HEADER_CODE0 =.*/IR_HEADER_CODE0 = 0x61/g' ${COMMON_FEATURE_MK_FILE}
sed -i 's/IR_HEADER_CODE1 =.*/IR_HEADER_CODE1 = 0x21/g' ${COMMON_FEATURE_MK_FILE}
sed -i 's/IR_POWER_KEY =.*/IR_POWER_KEY = 0x00/g' ${COMMON_FEATURE_MK_FILE}
 

4、jbn中配置头码和power键
/device/mstar/cv6a648_base/preinstall/CustomerConfig/XX/XXMODEL/scripts/set_config   修改头码
setenv power_key 0x00
setenv ir_header_code0 0x61
setenv ir_header_code1 0x21 
 

以上就是完整的配置遥控器的过程,
PS:当power的码值为0X00时,这里会有一个坑,不管怎么设置会发现当设备关机后,在不断电重新上电的情况下,power无法唤醒设备 这是由于vendor\mstar\supernova\projects\msrv\control\src/MSrv_Control_common.cpp 中有这么两句代码
    if(powerkey == 0x00)  //if not set in config
       powerkey = 0xFF;
当powerkey值为0X00时,系统默认为没有设置。所以只要注释掉这两行代码就可以了,当初踩这个坑花了不少时间。

发布了14 篇原创文章 · 获赞 16 · 访问量 3433

猜你喜欢

转载自blog.csdn.net/weixin_35649059/article/details/94396251