- Compatible With
- Android-x86 x86_64 (64bit) from nougat+
Intel Precise Touch & Stylus
This is the userspace part of IPTS (Intel Precise Touch & Stylus) for Linux.
With IPTS the Intel Management Engine acts as an interface for a touch controller, returning raw capacitive touch data. This data is processed outside of the ME and then relayed into the HID / input subsystem of the OS.
This daemon relies on a kernel driver that can be found here: https://github.com/linux-surface/intel-precise-touch
The driver will establish and manage the connection to the IPTS hardware. It will also set up an API that can be used by userspace to read the touch data from IPTS.
The daemon will connect to the IPTS UAPI and start reading data. It will parse the data, and generate input events using uinput devices. The reason for doing this in userspace is that parsing the data requires floating points, which are not allowed in the kernel.
What is working?
NOTE: The multitouch code has not been tested on all devices. It is very likely that it will still need adjustments to run correctly on some devices. If you have a device with IPTS and want to test it, feel free to open an issue or join ##linux-surface on Freenode IRC and get in touch.
Read more : https://github.com/linux-surface/iptsd
This is the userspace part of IPTS (Intel Precise Touch & Stylus) for Linux.
With IPTS the Intel Management Engine acts as an interface for a touch controller, returning raw capacitive touch data. This data is processed outside of the ME and then relayed into the HID / input subsystem of the OS.
This daemon relies on a kernel driver that can be found here: https://github.com/linux-surface/intel-precise-touch
The driver will establish and manage the connection to the IPTS hardware. It will also set up an API that can be used by userspace to read the touch data from IPTS.
The daemon will connect to the IPTS UAPI and start reading data. It will parse the data, and generate input events using uinput devices. The reason for doing this in userspace is that parsing the data requires floating points, which are not allowed in the kernel.
What is working?
- MS Surface Gen 4-6:
- Stylus Input
- Multitouch Finger Input
- Contact area calculation
- MS Surface Gen 7:
- Singletouch Finger Input
- HP Spectre 13 x2 (only non-surface device to use IPTS)
- Entirely untested
- MS Surface Gen 7:
- Multitouch Input
- Stylus Input
- HP Spectre 13 x2
- Entirely untested
NOTE: The multitouch code has not been tested on all devices. It is very likely that it will still need adjustments to run correctly on some devices. If you have a device with IPTS and want to test it, feel free to open an issue or join ##linux-surface on Freenode IRC and get in touch.
Read more : https://github.com/linux-surface/iptsd