基於A10方案,A10主機板預設板載紅外裝置

2021-06-20 08:00:48 字數 2088 閱讀 3936

一、在android核心中開啟紅外驅動編譯

(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也需覆蓋,本人測試可以不需要。

對陣列a 10 的幾個理解

定義了乙個陣列 int a 10 於是有這些賦值 int p a int q 10 a 是合法的。那麼在c 引用上,有以下引用 int p a int q 10 a 但這個在c 編譯器上確實錯誤的。原因是,無論是陣列的a還是 a,它們的值都是常量,不能用非const引用來繫結。我們知道非const引...

A10 平板開發一硬體平台搭建

a10板子從原理圖設計 接外掛程式布局 pcb設計到物料採購以及貼片,最後除錯,花了不少時間,剛剛把屏點亮了,系統總算跑起來了。整個過程遇到不少問題,包括與外面工程師溝通 硬體測試 軟體除錯,還有很多問題有待解決,花了很多精力,但積累了不少經驗,現與大家分享。先上上幾張hdmi輸出顯示的圖 再來張h...

A10 三種DDoS緩解策略

之前我們討論了自動化如何在一次 ddos攻擊中幫助你節省寶貴的時間。因此,部署乙個自動化防禦系統是非常重要的。而與之同等重要的是,執行正確的策略,以確保合法使用者能持續應用服務。畢竟 ddos 攻擊本本性上就是非同步發生的,因此,你不能阻止攻擊者發起攻擊,但如果採用了正確的防禦策略,就可以有彈性地應...