您的位置:首页 > 移动开发 > Android开发

A10开发板增加红外驱动及android层红外按键修改介绍

2013-01-06 10:23 295 查看
声明:本文基于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文件修改其他键值)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: