{"id":18519284,"url":"https://github.com/linux-surface/intel-precise-touch","last_synced_at":"2025-04-09T08:32:14.417Z","repository":{"id":38829554,"uuid":"229266353","full_name":"linux-surface/intel-precise-touch","owner":"linux-surface","description":"Linux kernel driver for Intel Precise Touch \u0026 Stylus","archived":false,"fork":false,"pushed_at":"2024-04-16T09:42:57.000Z","size":677,"stargazers_count":51,"open_issues_count":16,"forks_count":11,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-24T04:06:22.030Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linux-surface.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-12-20T13:04:33.000Z","updated_at":"2025-02-28T07:16:47.000Z","dependencies_parsed_at":"2024-02-27T23:27:54.449Z","dependency_job_id":"95fccceb-b97b-4794-a060-b51a20307a55","html_url":"https://github.com/linux-surface/intel-precise-touch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-surface%2Fintel-precise-touch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-surface%2Fintel-precise-touch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-surface%2Fintel-precise-touch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-surface%2Fintel-precise-touch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linux-surface","download_url":"https://codeload.github.com/linux-surface/intel-precise-touch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248003320,"owners_count":21031770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T17:15:54.814Z","updated_at":"2025-04-09T08:32:14.072Z","avatar_url":"https://github.com/linux-surface.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Intel Precise Touch \u0026 Stylus\n\nThis is the Linux driver for IPTS (Intel Precise Touch and Stylus).\n\nWith IPTS the Intel Management Engine acts as an interface for a touch controller.\nThis module provides a HID transport driver that forwards the data into the userspace.\n\nIPTS devices can return raw capacitive heatmap data instead of HID reports. This data is\nwrapped in a HID report and forwarded to userspace too, where it needs to be processed by\na separate program and then passed back to the kernel using uinput.\n\nThe userspace daemon for Microsoft Surface devices can be found here:\nhttps://github.com/linux-surface/iptsd\n\n### Building (in-tree)\n* Apply the patches from `patches/` to your kernel\n* Copy the folder `src` to `drivers/hid/ipts`\n* Add `source \"drivers/hid/ipts/Kconfig\"` to `drivers/hid/Kconfig`\n* Add `obj-y += ipts/` to `drivers/hid/Makefile`\n* Enable the driver by setting `CONFIG_HID_IPTS=m` in the kernel config\n\n### Building (out-of-tree)\n* Make sure you applied the patches from `patches/` to your kernel (if you are not using linux-surface builds)\n* Run `make`\n* Run `sudo insmod src/ipts.ko`\n\n### Building (DKMS)\n* Make sure you applied the patches from `patches/` to your kernel (if you are not using linux-surface builds)\n* Run `sudo make dkms-install`\n* Reboot\n\n### Original IPTS driver\nThe original driver for IPTS was released by Intel in late 2016 (https://github.com/ipts-linux-org/ipts-linux-new).\nIt uses GuC submission to process raw touch input data on the GPU, using firmware blobs extracted from Windows.\n\nWith linux 5.3 the ability to use GuC submission was removed from the i915 graphics driver, rendering the old driver\nunusable. This lead to this new driver being written, without using GuC submission. It is loosely based on the original\ndriver, but has undergone significant refactoring and cleanup.\n\nAn updated version of the driver can be found here for reference purposes:\nhttps://github.com/linux-surface/kernel/tree/v4.19-surface-devel/drivers/misc/ipts\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-surface%2Fintel-precise-touch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinux-surface%2Fintel-precise-touch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-surface%2Fintel-precise-touch/lists"}