聲明:本文基於A10方案,A10主板預設板載紅外線裝置轉載於(http://www.a10bbs.com/forum.php?mod=viewthread&tid=499#lastpost)
一、在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
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檔案修改其他索引值)
-
紅外設定檔.zip