CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 30999|回复: 23

来吐槽android下的红外遥控配置

[复制链接]
发表于 2013-7-8 12:51:10 | 显示全部楼层 |阅读模式
周末回家,准备使用cubieboard替换作为客厅主机的台式机
使用的系统是nand版本的android,媒体软件以xbmc为主,使用遥控操作
在修改遥控操作配置文件时遇到了麻烦

配置遥控,主要还是参考了网上的帖子
http://blog.csdn.net/a181622974/article/details/8017467
按贴子上描述的步骤,getevent获得按键码,又修改了sun4i-ir.kl文件,传回android系统
一切就绪开始使用遥控了,但是很失望,完全没有期望的结果,于是又复制了一份到/system/usr/idc/sun4i-ir.kl中
还是没有结果,将系统重新启动再按遥控,还是没有结果,网上能找到的资料真是太少了.
其间也有一些收获,我发现数字按键还是有反应的,只不过结果不正确而已,随后认真对比各键值的对应关系,没有找到问题,无论如何修改,遥控上的按键功能
都没有被改变,好像这个sun4i-ir.kl文件没有起作用,但是在修改之前有些按键也的确是有作用的,与文件中描述的是一致的,被修改后对应的功能也的确改变了,这又说明这个sun4i-ir.kl文件实实在在的起到作用了,那到底是有用还是无用?贴子里没有说明,只是说修改sun4i-ir.kl这个文件而已.

在尝试了各种配置后,发现有些按键始终不能改变其功能,由此猜测会不会这个按键的功能是在别的文件里说明的呢?
于是将所有/system/usr/keylayout/目录内的文件打包到本地后删除所有文件,重启系统后发现连键盘的输入功能也没有了,然后挨个恢复文件,首先恢复的是Generic.kl
文件,然后结束zygote进程(注:这个是android虚拟机进程,结束后会自动重新启动,这个进程重启后修改过的按键配置也会生效,不必重新启动整个系统)
发现键盘又恢复了功能,由此认定这个才是主要的配置文件,同时遥控按键也是能起到作用的,虽然不正确.
于是开始修改这个文件,但是改完后发现又没有效果了,连带键盘也不能使用,尝试了多次都没有找到真正的原因,后来只好恢复到原有状态.
不过这个时候已经找到之前那个问题的原因了,修改sun4i-ir.kl文件之所以部分有效,是因为Generic.kl文件与sun4i-ir.kl文件有相同键值的描述,因为冲突而没有效.所以在修改sun4i-ir.kl之前要确保Generic.kl中冲突的键值被屏蔽了.这点就好比是Generic.kl的优先级高于其他文件,如果有冲突则以这个文件为基准.
最后是屏蔽了Generic.kl文件中所有要用到的键值(而非直接添加),在sun4i-ir文件中再重新描述其功能,这样修改后遥控就能够使用了.
但是系统里面这样不区分键盘输入与红外遥控输入会存在问题,如果红外使用了正常的键盘值,那这样修改后会使用对应的键盘按键无效,例如ESC键对应的键值是1,那么修改后就不再是ESC了,这样直接使用扫描码映射还是不科学呀
最后要感谢也要吐槽:
1)在修改sun4i-ir.kl文件后有没有真正的使用过呢?
2)系统不区分键盘输入和红外遥控输入,会使得这两者不能共存
当然,我不知道其他的方法,也只好按我得出来的结果说事了.

另外:xbmc的节目插件很难找,好不容易找到一个,还有部分失效.pptv没有这个问题,毕竟是官方的,但是对按键支持的不好,必须用鼠标,这个问题让人头疼.
回复

使用道具 举报

发表于 2013-7-8 15:34:09 | 显示全部楼层
你说的键盘和红外遥控输入,这个我没有测试过!
不过,我就配置了home  menu  back   1~9  关机

字母没有配置,Generic.kl我一直都是当做用来查找关键字功能来用的!

不知道你有没有配置  睡眠   唤醒  
这两个功能,关键字是什么呢?比如  SLEEP?
回复 支持 反对

使用道具 举报

发表于 2013-7-8 16:32:52 | 显示全部楼层
Generic.kl 我这边是对USB键盘生效。LZ描述的ir和generic冲突我这边没有发现。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-9 09:58:55 | 显示全部楼层
从原有的sun4i-ir,kl文件看,可能用的是电信配的网络机顶盒用的遥控,我之前测试的时候也用过,所以一部分按键在Generic.kl中已经屏蔽了,而我的红外遥控,是随便找来的.
回复 支持 反对

使用道具 举报

发表于 2013-7-10 07:44:37 | 显示全部楼层
这问题我也遇到了,只不过没找到原因,我用投影仪遥控可以正常设置,换成pc遥控就不行了。后来干脆直接买了个飞鼠,也挺方便,呵呵。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-10 15:38:51 | 显示全部楼层
在linux下好像可以单独处理,android下我就不知道了,也因为时间关系没有再继续尝试,现在板子放在家里运行的还不错,只是网速是瓶颈,其他的都还可以.我自己本身有一个mini无线键属,搭配着用应该能满足基本操作
回复 支持 反对

使用道具 举报

发表于 2013-11-7 12:16:52 | 显示全部楼层
修改遥控器需要更改ir驱动的 地址码和sun4i-ir.kl 2个文件


注意 sun4i-ir.kl 使用的 是10进制,你getevent得到的是 16进制,需要转换一下的
回复 支持 反对

使用道具 举报

发表于 2013-11-7 12:19:12 | 显示全部楼层
官方文档 仅供参考:

2 配置自己的遥控器
2.1
2.1修改红外遥控的地址码:
在文件 lichee\linux-3.0\drivers\input\keyboard\ir-keymap.h 中,根据自己的遥控器的地址
码修改如下代码
#define IR_ADDR_CODE
(0x7f80)
譬如说,如果地址码为 0x7f80,则修改成
#define IR_ADDR_CODE
(0x7f80)
如果发现无效,则将两个字节的值交换一下位置,修改成
#define IR_ADDR_CODE
(0x807f)
2.2
2.2修改按键映射
在文件 android4.2\device\softwinner\sugar-ref001\sun7i-ir.kl 中,
重新建立按键扫描码与系
统中定义的按键名称的映射关系
按键扫描码可以通过在串口中输入 getevent,然后点击按键时看打印出来的键值来确定,
注意:扫描码不能重复,否则此文件将失效
回复 支持 反对

使用道具 举报

发表于 2013-11-8 16:05:15 | 显示全部楼层
正好。加上红外遥控,cb做个机顶盒。
回复 支持 反对

使用道具 举报

发表于 2013-11-8 17:03:24 | 显示全部楼层
我用arch,默认红外口就是开的,但是识别为一个键盘,不过没关系,只是路径放在keyboard而已,把event0(还有个1,忘了具体是哪个,当时我也是一个个试的)cat出来就对了,能读取信号就行,信号怎么解释自己编程解决
何必给自己找麻烦呢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-4-18 12:31 , Processed in 0.024017 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部