DKMS kernel headers not found

I recently aquired a genius MOusePen 1608X pen tablet and am working on getting the drivers for it on fedora 34 (workstation). So far the pen works, but the shortcuts on the tablet don’t, and I can’t seem to install v10 of the DIGImend kernel drivers, here is the code:

[root@localhost digimend-kernel-drivers-10]# make dkms_install
dkms add .

Creating symlink /var/lib/dkms/digimend/10/source →
/usr/src/digimend-10

DKMS: add completed.
dkms build digimend/10
Error! echo
Your kernel headers for kernel 5.11.15-300.fc34.x86_64 cannot be found at
/lib/modules/5.11.15-300.fc34.x86_64/build or /lib/modules/5.11.15-300.fc34.x86_64/source.
You can use the --kernelsourcedir option to tell DKMS where it’s located.
make: *** [Makefile:101: dkms_modules_install] Error 1
[root@localhost digimend-kernel-drivers-10]#

If I am missing any information you need, let me know, and thank you for your time/effort.

The articles I’ve scoured through don’t seem to match my exact situation (although I’m not very tech-savvy), and I believe I simply can’t figure out how to properly tell fedora that the kernel drivers are in “/usr/src/kernels/5.11.16-300.fc34.x86_64/include”

dkms --kernelsourcedir = /usr/src/kernels/5.11.16-300.fc34.x86_64/include

is the package kernel-headers installed? (sudo dnf install kernel-devel kernel-headers)

kernel-headers are sometimes a pain in Fedora because not every kernel has matching kernel-headers. They are only build if they change, not for each kernel build:

https://koji.fedoraproject.org/koji/packageinfo?packageID=27325

So you want to boot a kernel that has matching kernel-headers when attempting the driver install.

1 Like

I see, it does say both are already installed (not sure if I need 2), how would I boot a kernel the way you suggest?

rpm -qa kernel-headers

tells you what version you have installed. From the boot menu, boot the corresponding kernel.

1 Like

You might find this article insightful: Thorsten Leemhuis: Package names can be false friends, too, as (linux|kernel)-headers show

4 Likes

Odd, I tought I had multiple, yet:

[Epeon@localhost ~]$ rpm -qa kernel-headers
kernel-headers-5.11.16-300.fc34.x86_64

and that’s it.

Install all system updates and reboot with the latest kernel.
If the issue persists, check the output:

uname -a; rpm -qa kernel\* | sort

I would try uninstalling and re-installing DKMS linux and linux headers. I have had the header file corrupt with kernel updates or improper shutdowns. DKMS is nice but it should create a hash of the header and check at startup. If corrupt use a .bak file to restore a corrupt header.

https://wiki.archlinux.org/title/Dynamic_Kernel_Module_Support

the arch wiki has some nice tips for building out DKMS tree that kind of helps it run better across upgrades but I have still had issues with corrupt headers so make backups of them to restore when upgrading or installing new drivers.

So sorry for the wait. While making sure the kernel updates properly, I’ve run into a problem with updating org.fedoraproject.Platform in flatpak. the error is this:

[root@localhost Epeon]# flatpak update
Looking for updates…


        ID                                   Branch          Op          Remote          Download
 1.     org.fedoraproject.Platform           f34             u           fedora          < 659.1 MB

Proceed with these changes to the system installation? [Y/n]: y
error: Error receiving data: Connection reset by peer
[root@localhost Epeon]#

DKMS does not look for or use “kernel-headers” the package, those are for building userspace programs. DKMS is actuallly looking for the kernel development headers which are a part of the “kernel-devel” package.

2 Likes

I see, what do you propose?

Install the kernel-devel package

Just kernel-devel, or kernel-devel kernel headers?