DKMS Driver Installations

This post is prefaced by my admission that the problem I am seeking help with is somewhat beyond my present Linux expertise, and that my use of relevant terminology may be lacking as the result of having stepped away from this issue and SUSE for a few months.

My Librem 14 requires an ACPI driver that isn’t included in the SUSE kernel or repositories; without it, there are issues with charging and running the laptop from an outlet. I tried building it from source and loading it into the kernel via DKMS, but it ultimately won’t work due to being unsigned in some respect. I can enable DKMS and install the driver, but the driver itself will not function, likely not because it wasn’t compiled properly.

Any pointers or a guide would be helpful, as would openSUSE adding it as built/signed to the repository. If anyone can provide some guidance on the latter, that would be great - I don’t know how to go about making that sort of request apart from a forum post.

Check your BIOS settings for Secure Boot related items and disable Secure Boot. If you do not know how to do it, you can try to disable validation from within Linux

mokutil --disable-validation

you will be asked for a password, enter whatever you like, then reboot. After reboot you will be greeted with blue screen of MokManager and will need to confirm the action by entering the same password (in the old versions you were asked for specific characters from this password). MokManager has rather short timeout (10 - 15 seconds), do not miss it.

Is it possible to sign the driver rather than disable secure boot/validation? The security features of openSUSE are a primary incentive for running it.

I will give that another shot, thanks.

Possibly openSUSE devs can create package for it. Create bug report to inform devs.

It’s highly unlikely that any developer is going to package anything, if it isn’t something that they need to use. If this is something that a user finds beneficial, you’re going to have a heck of alot better chance of getting it into the openSUSE official repositories, if you package it yourself, and submit it for inclusion.

1 Like

Installation seems to have worked this time around by following the GitHub guide. That said, there are still issues with the functionality of the driver. Here is the output of “sudo systemctl status dkms”:

dkms.service - Builds and install new kernel modules through DKMS
Loaded: loaded (/usr/lib/systemd/system/dkms.service; enabled; preset: disabled)
Active: active (exited) since Tue 2023-12-19 04:30:47 GMT; 1h 8min ago
Docs: man:dkms(8)
Main PID: 1744 (code=exited, status=0/SUCCESS)
CPU: 278ms

Dec 19 04:30:47 localhost systemd[1]: Starting Builds and install new kernel modules through DKMS…
Dec 19 04:30:47 localhost dkms[1944]: /var/lib/dkms/librem_ec_acpi/1.0/source/dkms.conf: line 1: librem_ec_acpi: command not found
Dec 19 04:30:47 localhost dkms[2061]: Deprecated feature: REMAKE_INITRD (/var/lib/dkms/lkrg/0.9.7/source/dkms.conf)
Dec 19 04:30:47 localhost systemd[1]: Finished Builds and install new kernel modules through DKMS.

Which is completely useless without access to the source of your driver. If you want someone to look into it, post link to your driver.

And it is now past generic DKMS question and specific to your driver, so it would make more sense to start new topic with the suitable subject.

You can build your driver to the updates directory in your kernel.

Next Update of the kernel, the driver will get automatically into the weak-updates directory.

If the API has not changed, the driver will work, otherwise you have to patch and build new.
But that is the same as with dkms.

Svyatko posted the link to the driver’s source, or an older version of it. I was concerned about the deficiency mentioned at the end of the systemctl line for the driver, if there was some general wisdom as to a cause for that entry.

Thanks for the tip about the kernel updates directory.