Chucko
Chucko

Reputation: 81

What is the latest driver for Goodix touchscreens under Linux?

I have a Winbook TW700 running Linux Mint 18.3-xfce updated with linux-firmware 1.157.19 and kernel 4.13.0-43.48-16.04.1. It embeds a Goodix touchscreen. Though the touch input works, the coordinates are reversed (touch at upper-left places the cursor at the lower-right.) Web searches reveal that this is an issue with Goodix touchscreens but most posts are years old and refer to older kernel versions. The code for the driver found at https://github.com/torvalds/linux/blob/master/drivers/input/touchscreen/goodix.c indicates that it addresses the coordinate transformation issue. On my system, “dmesg | grep Goodix” reports:

Goodix-TS i2c-GDIX1001:00: ID 911, version 1050
input: Goodix Capacitive Touchscreen as /devices/platform/80860F41:03/i2c-3/i2c-GDIX1001:00/input/input4

How can I discover what is the most current version of the driver, and, if the one I’m using is older, how can I get/install the correct driver?

Upvotes: 1

Views: 7149

Answers (1)

Chucko
Chucko

Reputation: 81

After lots more web searching and research, I managed to find an answer at https://askubuntu.com/questions/920051/how-to-rotate-touch-screen-input-on-ubuntu-16-04#936241 that worked for me.

I edited usr/share/X11/xorg.conf.d/10-evdev.conf and added the following lines to the "Section InputClass" for the "evdev touchscreen catchall" Identifier:

Option "InvertX" "true"
Option "InvertY" "true"

so that it looked like this:

Section InputCLass
   Identifier "evdev touchscreen catchall"
   MatchIsTouchscreen "on"
   MatchDevicePath 'dev'input/event*"
   Driver "evdev"
   Option "InvertX" "true"
   Option "InvertY" "true"
EndSection

The after logging out and back in to restart the X-session, the touchscreen behaved as desired.

By the way: Not sure the touchscreen driver integrated in the kernel is coded to recognize my system configuration. The source code I reference above appears to me to do a test for "Winbook TW700" AND "X86" but I think that test will fail when running the 64-bit kernel (as I am running) and the 32-bit ISO doesn't support UEFI booting.

Cheers! Thanks all for help in pointing me to this answer.

Upvotes: 2

Related Questions