Android/Linux 系统添加对多点触摸屏的支持
? ? 含有 HID 多點觸摸控制器的觸摸屏、觸摸板在 Android 和 Linux 內核中都是由 "hid-multitouch" 驅動進行支持的。因此如果你的系統連接觸摸屏沒有反應,問題基本都出于驅動未加載或者與觸摸屏的 VID 與 PID 不適配。以下分情形討論:
1、系統中已存在“hid-multitouch”驅動
? ? 若“hid-multitouch”驅動是以內核模塊的方式存在于系統里面(相對靜態編譯進內核而言),那么可以嘗試執行如下命令。在 Linux 使用“終端”在其中輸入,若是 Android 需要用 ADB 方式連接然后輸入。命令為:
????若沒有報錯,則表示驅動已經加載成功了。若需要開機默認加載,將以上命令寫入系統的“/etc/rc.local”文件即可。
2、系統中不存在“hid-multitouch”驅動
? ? 此時,也有兩種途徑編譯加載該驅動,若你手上有該系統的內核源碼,也即對應你的電腦或產品的源代碼。那么按以下路徑選中驅動,重新編譯系統即可,將編譯好的內核固件重新燒錄即。具體的編譯驅動路徑為:
Device Drivers ---> HID Devices ---> Special HID Drivers ---> HID Multitouch panels? ? 如果你沒有該系統源碼,也可以在可編譯驅動模塊的主機上編譯源碼文件“hid-multitouch.c”,編譯成功會生成“hid-multitouch.ko”文件。然后拷貝至你的系統,命令行方式 insmod 或者 modprobe 該驅動即可。這里給出相關的源文件以及在Ubuntu、樹莓派等系統上進行操作的具體步驟:Mulitouch觸摸解決方案
? ? 若你做了以上操作仍無法支持觸摸屏,那么可能是由于你的系統內核版本較老,請檢查你的內核版本是否處于 3.4 系統及以下,若是則按以下步驟繼續進行。
1、在 hid-ids.h 中添加觸摸屏的 vid 與 pid,在 linux 下用 lsusb 命令查看,windows 設備管理器中查看“硬件ID”
#define USB_VENDOR_ID_MYSCREEN 0x1A86 #define USB_DEVICE_ID_MYSCREEN 0xE0302、在 hid-multitouch.c -> mt_devices[] 中加入
{ .driver_data = MT_CLS_DEFAULT, HID_USB_DEVICE(USB_VENDOR_ID_MYSCREEN, USB_DEVICE_ID_MYSCREEN) }? ? 以上步驟完成后重新編譯內核即可,或者選擇單獨編譯該驅動。記得一定要在內核中選中該驅動。
? ? 若遇到問題給我郵件或評論哦,覺得對你有幫助就點贊吧~:-)
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Android/Linux 系统添加对多点触摸屏的支持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则表达式:去掉数字(整数、小数)前面多
- 下一篇: Linux系统开机自动加载驱动modul