yocto 3.03 linux 5.4.24 weston 8.0 qt触摸屏问题

yocto 3.03 linux 5.4.24 weston 8.0

weston.log 相关错误描述,

可能你用的不是这个驱动,不要紧大意一样就可以按照这个修改;
触摸屏触电对应值的最大和最小设置的一样。均为0;导致不能触摸屏幕,所有在weston.ini 中设置的input无效!

[03:40:44.075] event0  - ADS7846 Touchscreen: is tagged by udev as: Touchscreen
[03:40:44.075] event0  - ADS7846 Touchscreen: kernel bug: device has min == max on ABS_PRESSURE
[03:40:44.076] event0  - ADS7846 Touchscreen: was rejected
[03:40:44.076] event0  - not using input device '/dev/input/event0'

相关解决方案

sec_touchscreen: kernel bug
event3 - sec_touchscreen: kernel bug: device has min == max on ABS_MT_PRESSURE from libinput debug-events

This message, which can be found in libinput debug-events indicates that the touchscreen driver in the kernel is misbehaving and that libinput won't accept the input.
In this case, solving the issue means patching the touchscreen driver, which will require you to modify your kernel code. While the device is running, figure out which driver is being used, perhaps by running find /sys -name "input*" or find /sys -name "event*", use grep in your kernel source to find the line line that contains input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, 0);, and comment it out. Rebuild the kernel and try again. See our patching guide for more information about how to make these changes correctly.

译后

sec_touchscreen:内核错误event3-sec_touchscreen:内核错误:设备的libinput调试事件在ABS_MT_PRESSURE上具有min == max
可以在中找到此消息,libinput debug-events指示内核中的触摸屏驱动程序行为异常,并且libinput将不接受输入。在这种情况下,解决此问题意味着修补触摸屏驱动程序,这将需要您修改内核代码。当设备运行时,弄清楚是哪个驱动程序正在使用,也许通过运行find /sys -name "input*"或者find /sys -name "event*",用grep在你的内核源代码,找到行包含线input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, 0);,并且其注释掉。重建内核,然后重试。有关如何正确进行这些更改的更多信息,请参见我们的补丁程序指南。

对应的驱动代码:

input_set_abs_params(data->input_dev, ABS_MT_POSITION_X,	 0, data->pdata->max_x - 1, 0, 0);	
input_set_abs_params(data->input_dev, ABS_MT_POSITION_Y,	 0, data->pdata->max_y - 1, 0, 0);	
input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, data->pdata->max_w, 0, 0);
#if IST30XX_JIG_MODE
	input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, 0, 0, 0);
#endif

未完,待续。。。

猜你喜欢

转载自blog.csdn.net/u013921164/article/details/110109453