gpt4 book ai didi

android - Advanced Silicon CoolTouch USB 触摸屏不适用于 Android 4.0.4

转载 作者:太空宇宙 更新时间:2023-11-04 04:11:36 24 4
gpt4 key购买 nike

我正在使用 Congatech 的 BSP,它使用 Freescale Linux 内核 (linux-2.6-imx)。触摸屏来自 Fortrend,但其自称是 Advanced Silicon CoolTouch(供应商 ID 0x2619,设备 ID 0x5610)。

什么有效:

当您将触摸屏插入 USB 端口时,usbhid 驱动程序会将其连接到 Linux 事件系统。我可以看到/proc/sys/input/devices 中列出的设备,并且 getevent 向我显示它支持的事件,我可以从中监视实时事件。

但是,触摸屏对 Android 界面完全没有影响(例如运行指针定位工具)。

在我广泛的谷歌搜索中,我发现了一些解决方案,但没有一个有效。例如,建议设备需要由 hid-multitouch 驱动程序处理。

我所做的是使用 MT_CLS_DEFAULT 将此设备添加到 hid_device_id 列表中。我还修改了 hid-multitouch 驱动程序,以便它在驱动程序初始化和探测功能期间进行打印。探测函数永远不会被调用。

我发现更多信息表明 usbhid 驱动程序需要忽略该设备,以便 hid-multitouch 驱动程序才能看到它。因此,我将两个驱动程序构建为模块,这样我就可以像这样启动驱动程序:

insmod /system/lib/modules/usbhid.ko quirks=0x2619:0x5610:0x4
insmod /system/lib/modules/hid-multitouch.ko

现在,当您插入触摸屏时,usbhid 驱动程序会忽略触摸屏,但同样不会调用 hid-multitouch 驱动程序的探测函数。

我已经四重检查了我的 hid-multitouch 驱动程序更改中的供应商 ID 和设备 ID 是否正确。

// hid-ids.h
#define USB_VENDOR_ID_ADVANCEDSILICONSA 0x2619
#define USB_DEVICE_ID_ADVANCEDSILICONSA_5610 0x5610

// hid-multitouch.c
/* Advanced Silicon panels */
{ .driver_data = MT_CLS_DEFAULT,
HID_USB_DEVICE(USB_VENDOR_ID_ADVANCEDSILICONSA,
USB_DEVICE_ID_ADVANCEDSILICONSA_5610) },

我该去哪里?

最佳答案

你能告诉我它是多点触摸屏还是只是触摸板?如果它只是一个触摸板,则必须使用 hid-input.c 进行处理,因此您可能需要检查事件是否已处理。和触摸屏连接上的一些 dmesg(调试消息)在这里会很好。

关于android - Advanced Silicon CoolTouch USB 触摸屏不适用于 Android 4.0.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18835703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com