|
发表于 2013-11-12 09:00:14
|
显示全部楼层
本帖最后由 freechinaren 于 2013-11-12 09:01 编辑
A10开发板增加红外驱动及android层红外按键修改介绍 (CubieBoard测试)
分类: A10_android4.0 2013-01-06 10:23 381人阅读 评论(0) 收藏 举报
声明:本文基于A10方案,A10主板默认板载红外设备
转载请注明出处!
by:xian
一、在linux内核中开启红外驱动编译
(1).内核配置。
默认情况下,linux内核并未开启编译红外驱动,因此需手动修改配置以开启红外驱动。首先需进入linux内核目录运行make ARCH=arm menuconfig,并进入 Device Drivers-->Input device support -->Keyboards -->sun4i IR support (M) 开启内核编译配置界面,显示如下
若以*勾选则编译到内核中,系统启动时将自动载入该驱动。若以M方式勾选则将编译成 内核模块*.ko文件。这里以M方式动态编译为例.
(2).编译
在lichee目录下执行./build.sh -p sun4i_crane -k 3.0 (这里是针对A10 linux3.0内核编译方式,linux2.3.4 需要去掉 -k 3.0)即可开始编译。编译结束后,将生成lichee/out/android/lib/modules/3.0.8/sun4i-ir.ko红外驱动模块
(3).拷贝模块
android2.3.4下需要修改 android2.3.4/device/softwinner/crane-evb/mkfs.sh 增加cp $DRV_DIR/sun4i-ir.ko $PRODUCT_ROOT/drv/sun4i-ir.ko即可在编译时自动打包到系统固件中
android4.0以后的版本只需在android目录下执行extract-bsp即可将内核模块全部拷贝至对应文件目录下
(4).修改android系统以支持开机启动红外驱动
对于android2.3版本,需要在android2.3.4/device/softwinner/crane-evb/init.sun4i.rc 中增加insmod /drv/sun4i-ir.ko
对于android4.0版本,需要在android4.0/device/softwinner/crane-evb/init.sun4i.rc 中增加insmod /system/vendor/modules/sun4i-ir.ko
经过以上的修改,android系统就支持驱动红外设备了
二、在android系统中修改红外配置文件以支持任意红外遥控器
(1)遥控器按键值查询
首先需了解使用adb命令,将开发板通过usb线连接pc后,在命令行下输入adb shell接口进入android系统命令行。
输入getevent即可显示输入设备信息,如:
其中 "sun4i-ir"为红外设备
此时将红外遥控器对准板载 红外接口头 按键即会显示对应键值,如:
/dev/input/event3: 0001 00af 00000001 表示按下 af为键值(16进制)
/dev/input/event3: 0000 0000 00000000
/dev/input/event3: 0001 00af 00000000 表示弹起
/dev/input/event3: 0000 0000 00000000
(2)键值修改
根据该信息修改android系统中如下两个文件即可(注意以下两个文件必须都修改,否则不会生效)
/system/usr/idc/sun4i-ir.kl (本人测试发现,不需要)
/system/usr/keylayout/sun4i-ir.kl
或者android4.0\device\softwinner\crane-evb-v13\sun4i-ir.kl
sun4i-ir.kl(可以以文本文档方式打开)实例内容如下
假设我们 “+”号键 的键值为d,转换为10进制为13,假设我们要将该键设置为音量+,可以在sun4i-ir.kl文件加入如下内容
key 13 VOLUME_UP WAKE_DROPPED
(3)将文件推送至android系统
推送时需了解 adb push 使用方法
假设需将c:\sun4i-ir.kl覆盖至android系统/system/usr/keylayout/sun4i-ir.kl下 命令如下:
adb push c:\sun4i-ir.kl /system/usr/keylayout/sun4i-ir.kl
注意/system/usr/idc/sun4i-ir.kl也需覆盖,本人测试可以不需要。
(提示:用户可以参考附件中Generic.kl sun4i-ir.kl文件修改其他键值)
|
|