Comments (7)
@StollD that worked for me, thanks!! To clarify for anybody else that lands here, the full steps I did (for SP8 running Fedora 36) were:
- dnf install openssl
- git clone this ithc-linux repo
- in the project root,
sudo make dkms-install
- enroll the cert:
sudo mokutil --import /var/lib/dkms/mok.pub
- reboot, and at the MOK blue screen enroll the key using the password
surface
- modify the file
/etc/default/grub
and add the lineGRUB_CMDLINE_LINUX_DEFAULT="ithc.hid=1 intremap=nosid"
(ifGRUB_CMDLINE_LINUX_DEFAULT
is already defined in that file, just add the hid and intremap flags to the existing declaration) - update the boot config:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- reboot
By now, single touch should be working. But for the SP8 if we want multi-touch we need the "dft" changes in the iptsd repo (which haven't been released yet), so I followed the github actions script to build and install a new rpm:
- uninstall
iptsd
if you have it installed - git clone the linux-surface/iptsd repo
- go into the project root folder
- git checkout the
dft
branch - update repos:
dnf distro-sync
- install build deps:
dnf install rpmdevtools rpm-sign rpkg python3-setuptools 'dnf-command(builddep)'
- install package deps
dnf builddep *.spec
- make new folder for the rpm
mkdir rpm
- build the rpm
rpkg local --outdir $PWD/rpm
- install the new rpm
sudo dnf install rpm/x86_64/iptsd-0.5.1-1.fc36.x86_64.rpm
- reboot, and multi-touch should be working
from ithc-linux.
@Pairman did you figure out a fix?
from ithc-linux.
The fix is to install openssl. The error comes from DKMS not being able to generate a certificate for automatic secureboot signing. If you dont have secureboot enabled, the error wont have any impact.
from ithc-linux.
you're right, that did fix the issue. After doing dkms-uninstall
, then installing openssl
, then doing dkms-install
, there is no SSL error. However when I do sudo modprobe ithc
it gives me the error
modprobe: ERROR: could not insert 'ithc': Key was rejected by service
I'm currently secure booting and can confirm that I have the keys for both Fedora
and linux-surface
when I do mokutil --list-enrolled
. For reference, here was the output when I did dkms-install
the second time:
mkdir -p /usr/src/`sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`-`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf`
cp -r dkms.conf Makefile src /usr/src/`sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`-`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf`
dkms add `sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`/`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf`
Creating symlink /var/lib/dkms/ithc/0.1/source -> /usr/src/ithc-0.1
dkms build `sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`/`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf`
Sign command: /lib/modules/5.18.16-1.surface.fc36.x86_64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Certificate or key are missing, generating self signed certificate for MOK...
Building module:
Cleaning build area...
make -j8 KERNELRELEASE=5.18.16-1.surface.fc36.x86_64 KDIR=/lib/modules/5.18.16-1.surface.fc36.x86_64/build...
Signing module /var/lib/dkms/ithc/0.1/build/build/ithc.ko
Cleaning build area...
dkms install `sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`/`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf`
ithc.ko.xz:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/5.18.16-1.surface.fc36.x86_64/extra/
depmod....
sync
from ithc-linux.
The module is automatically signed but the cert is not automatically enrolled. Run sudo mokutil --import /var/lib/dkms/mok.pub
to do that.
from ithc-linux.
you're right, that did fix the issue. After doing
dkms-uninstall
, then installingopenssl
, then doingdkms-install
, there is no SSL error. However when I dosudo modprobe ithc
it gives me the errormodprobe: ERROR: could not insert 'ithc': Key was rejected by service
I'm currently secure booting and can confirm that I have the keys for both
Fedora
andlinux-surface
when I domokutil --list-enrolled
. For reference, here was the output when I diddkms-install
the second time:mkdir -p /usr/src/`sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`-`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf` cp -r dkms.conf Makefile src /usr/src/`sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`-`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf` dkms add `sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`/`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf` Creating symlink /var/lib/dkms/ithc/0.1/source -> /usr/src/ithc-0.1 dkms build `sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`/`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf` Sign command: /lib/modules/5.18.16-1.surface.fc36.x86_64/build/scripts/sign-file Signing key: /var/lib/dkms/mok.key Public certificate (MOK): /var/lib/dkms/mok.pub Certificate or key are missing, generating self signed certificate for MOK... Building module: Cleaning build area... make -j8 KERNELRELEASE=5.18.16-1.surface.fc36.x86_64 KDIR=/lib/modules/5.18.16-1.surface.fc36.x86_64/build... Signing module /var/lib/dkms/ithc/0.1/build/build/ithc.ko Cleaning build area... dkms install `sed -n '/^PACKAGE_NAME="\(.*\)"$/s//\1/p' dkms.conf`/`sed -n '/^PACKAGE_VERSION="\(.*\)"$/s//\1/p' dkms.conf` ithc.ko.xz: Running module version sanity check. - Original module - No original module exists within this kernel - Installation - Installing to /lib/modules/5.18.16-1.surface.fc36.x86_64/extra/ depmod.... sync
Installing openssl
solves the ssl problem. However, I didn't know StollD's module signing method before. I'm signed my modules via #6 (comment)
from ithc-linux.
4. git checkout the
dft
branch
The dft branch has been merged into master for some time, so that is what you should use, since further development and bugfixes will not end up in the dft branch.
You can also download built packages from github actions directly. (e.g. https://github.com/linux-surface/iptsd/actions/runs/2895236821)
ITHC is also running in HID mode by default now, so that doesnt need to be added to the kernel commandline.
from ithc-linux.
Related Issues (20)
- Surface Laptop Studio support HOT 6
- Driver stops working on suspend during pen activity HOT 4
- Weird behavior on Nixos and Sway HOT 10
- ithc in HID Mode fails when using pen HOT 12
- Seems the driver stopped working on kernel 5.19.x HOT 8
- Install issue HOT 2
- Hibernate cause driver/hw hang and unrecoverable by driver HOT 1
- device not available `ithc_probe: hid_add_device failed with -110` HOT 3
- Question about installation on SP8 HOT 25
- Installation - No rule to make target 'dkms-install' HOT 2
- Improvement on Reinstall HOT 2
- Touch screen not working after suspend :bug: HOT 24
- to stupid to install? HOT 4
- Module signing key is rejected HOT 1
- Failure to resume following suspend under X11 with Nvidia
- Driver fails to initialize when booting with EFISTUB (`invalid dma rx data`) HOT 14
- Should it be `PM_QOS_CPU_LATENCY_DEFAULT_VALUE` instead of `PM_QOS_DEFAULT_VALUE`? HOT 5
- Official Intel QuickSPI Linux driver
- SP8 dmesg errors HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ithc-linux.