Fixed

Surface Pro 8 touchscreen: ithc driver missing from RakuOS / akmods

Reported by noway42 · assigned to Tohur
Report
October 29, 2026 7:31 AM

Environment

  • Device: Microsoft Surface Pro 8
  • OS: RakuOS GNOME 44, Fedora-based bootc
  • Kernel: 7.3.0-rakuos.2.v4.fc44.x86_64
  • Secure Boot: Enabled
  • Hardware: Intel Touch Host ControllerPCI ID: 8086:a0d0HID device ID: 045E:0C37

Problem

The touchscreen on the Surface Pro 8 does not work out of the box on RakuOS because the ithc kernel module is not available for the installed kernel.

The driver is available as an external community project: https://github.com/quo/ithc-linux

Workaround

I was able to restore touchscreen functionality by manually building the ithc module for the running kernel, signing it with a custom Machine Owner Key (MOK), and loading it with Secure Boot enabled.

The following configuration is required on my device:

  • Build the ithc module for the current kernel.
  • Sign the module with an enrolled custom MOK.
  • Load the module at boot using /etc/modules-load.d/ithc.conf.
  • Enable polling mode with options ithc poll=1 in /etc/modprobe.d/ithc.conf.
  • Install and run iptsd to handle touchscreen input.

Polling mode is necessary on my system because the default interrupt handling causes an interrupt-remapping source-ID verification error, preventing the device from initializing correctly.

After applying this workaround:

  • The ithc module loads successfully.
  • The Intel Touch Host Controller is detected by HID.
  • iptsd recognizes the device as an IPTS touchscreen.
  • Touchscreen functionality is restored.

Expected behavior

The Surface Pro 8 touchscreen should work out of the box on supported RakuOS kernels, without requiring users to manually compile and sign an external kernel module.

Request

Could RakuOS consider packaging or integrating the ithc driver through the appropriate akmods or kernel-module mechanism?

Ideally, the solution would:

  • Build or provide the driver for supported kernels.
  • Handle kernel updates without requiring manual recompilation.
  • Support Secure Boot through an appropriate module-signing workflow.
  • Document any required polling-mode configuration and iptsd dependency.

I understand that the driver is maintained externally, so coordination with the upstream project may be necessary.

Thank you!


Reply
October 29, 2026 7:32 AM · edited

Thanks will get this added to our signed-kmods and should show in our kmods packages soon on the Driver page of the RakuOS System App

Reply
October 29, 2026 8:08 AM · edited

Alright have this packaging on staging now and have it also so when terra is on it will install iptsd for multi touch etc will be on the driver page on the RakuOS System App once it hits stable

Reply
November 1, 2026 10:41 AM

Thanks for the quick response!

The official rakuos-kmod-ithc package now reached my system and is working as expected on my Surface Pro 8.

Tested successfully with:

  • RakuOS GNOME 44
  • Kernel 7.3.0-rakuos.5.v4.fc44.x86_64
  • Secure Boot enabled
  • Official RakuOS-signed ithc kernel module
  • iptsd automatically detecting and starting for the touchscreen device

The touchscreen works correctly, including after reboot.

I also removed my previously enrolled custom MOK key. The EAC Linux v2 readiness check now passes all requirements checked by RakuOS.

Thanks for adding the driver to the official repository!

Reply
November 2, 2026 5:47 AM · edited
noway42 wrote:
Thanks for the quick response!

The official rakuos-kmod-ithc package now reached my system and is working as expected on my Surface Pro 8.

Tested successfully with:

- RakuOS GNOME 44

- Kernel 7.3.0-rakuos.5.v4.fc44.x86_64

- Secure Boot enabled

- Official RakuOS-signed ithc kernel module

- iptsd automatically detecting and starting for the touchscreen device

The touchscreen works correctly, including after reboot.

I also removed my previously enrolled custom MOK key. The EAC Linux v2 readiness check now passes all requirements checked by RakuOS.

Thanks for adding the driver to the official repository!

No problem! I am now marking this as fixed :)

Reply