I am using openSUSE MicroOS and DKMS-based kernel modules.
On Debian/Ubuntu (apt) and Rocky/Alma (dnf), DKMS modules are automatically built and installed for the new kernel during the package transaction itself (before apt/dnf exits). After rebooting into the new kernel, DKMS modules are already available.
On openSUSE (and especially MicroOS), the behavior seems different:
Kernel packages are installed into an offline snapshot via transactional-update
kernel-install hooks (e.g. 40-dkms.install) do not appear to run during the transaction
DKMS autoinstall is not triggered reliably during kernel updates
As a result, DKMS modules must be built manually after reboot
My questions:
Is there a supported way in openSUSE to trigger DKMS autoinstall automatically when a new kernel is installed?
Is this limitation inherent to transactional-update / MicroOS design, or is it possible to integrate DKMS more tightly into the kernel update workflow?
Are there recommended best practices for using DKMS modules on MicroOS?
For example, is running DKMS inside transactional-update shell the intended approach?
Or should DKMS generally be avoided on MicroOS in favor of KMP packages?
My use case is kernel-coupled modules (e.g. i915 SR-IOV DKMS), and rebuilding them manually after every kernel update is error-prone for unattended systems.
Thanks in advance for any guidance from the maintainers or experienced users.
Hi, AFAIK by design, perhaps look at using the openSUSE Build Service and build as a KMP. The shell command is only for debugging, normally use the run command instead.
@cola16 As in DKMS won’t work… if you want to rebuild the module manually use transaction-update run <some commands> don’t use the transactional-update shell command.
That’s why if you use the openSUSE Build Service to create the kernel module you can add/install from your $HOME repository. Else use Xe supported hardware to create your devices.
I still don’t know which part of my article you are judging that you used transactional-update shll…
It seems that the transactional-update shell is not important thing.
If I understand correctly, you are saying that microOS’s zypper does not provide the ability to automatically build dkms.