?含有 HID 多點(diǎn)觸摸控制器的觸摸屏、觸摸板在 Android Linux 內(nèi)核中都是由 "hid-multitouch" 驅(qū)動(dòng)進(jìn)行支持的。因此如果你的系統(tǒng)連接觸摸屏沒(méi)有反應(yīng),問(wèn)題基本都出于驅(qū)動(dòng)未加載或者與觸摸屏的 VID PID 不適配。以下分情形討論:

1、系統(tǒng)中已存在“hid-multitouch”驅(qū)動(dòng)

? ? “hid-multitouch”驅(qū)動(dòng)是以內(nèi)核模塊的方式存在于系統(tǒng)里面(相對(duì)靜態(tài)編譯進(jìn)內(nèi)核而言),那么可以嘗試執(zhí)行如下命令。在 Linux 使用終端在其中輸入,若是 Android 需要用 ADB 方式連接然后輸入。命令為:

modprobe hid-multitouch

????若沒(méi)有報(bào)錯(cuò),則表示驅(qū)動(dòng)已經(jīng)加載成功了。若需要開機(jī)默認(rèn)加載,將以上命令寫入系統(tǒng)的“/etc/rc.local”文件即可。

2、系統(tǒng)中不存在“hid-multitouch”驅(qū)動(dòng)

? ? 此時(shí),也有兩種途徑編譯加載該驅(qū)動(dòng),若你手上有該系統(tǒng)的內(nèi)核源碼,也即對(duì)應(yīng)你的電腦或產(chǎn)品的源代碼。那么按以下路徑選中驅(qū)動(dòng),重新編譯系統(tǒng)即可,將編譯好的內(nèi)核固件重新燒錄即。具體的編譯驅(qū)動(dòng)路徑為:

1.? Device Drivers --->

2.? HID Devices --->

3.? Special HID Drivers --->

4.? HID Multitouch panels

? ? 如果你沒(méi)有該系統(tǒng)源碼,也可以在可編譯驅(qū)動(dòng)模塊的主機(jī)上編譯源碼文件“hid-multitouch.c”,編譯成功會(huì)生成“hid-multitouch.ko”文件。然后拷貝至你的系統(tǒng),命令行方式 insmod 或者 modprobe 該驅(qū)動(dòng)即可。這里給出相關(guān)的源文件以及在Ubuntu、樹莓派等系統(tǒng)上進(jìn)行操作的具體步驟:

icon_rar.gifMultitouch-Solution.zip

? ? 若你做了以上操作仍無(wú)法支持觸摸屏,那么可能是由于你的系統(tǒng)內(nèi)核版本較老,請(qǐng)檢查你的內(nèi)核版本是否處于 3.4 系統(tǒng)及以下,若是則按以下步驟繼續(xù)進(jìn)行。

1、在 hid-ids.h 中添加觸摸屏的 vid pid,在 linux 下用 lsusb 命令查看,windows 設(shè)備管理器中查看硬件ID”

1.? #define USB_VENDOR_ID_MYSCREEN 0x1A86

2.? #define USB_DEVICE_ID_MYSCREEN 0xE030

2、在 hid-multitouch.c -> mt_devices[] 中加入

1.? { .driver_data = MT_CLS_DEFAULT,

2.? HID_USB_DEVICE(USB_VENDOR_ID_MYSCREEN,

3.? USB_DEVICE_ID_MYSCREEN) }

? ? 以上步驟完成后重新編譯內(nèi)核即可,或者選擇單獨(dú)編譯該驅(qū)動(dòng)。記得一定要在內(nèi)核中選中該驅(qū)動(dòng)。

?