I'm debating if I should put dkms on production machines along with all the build tools it requires. Seems like there might be security issues, or at the least added bloat when provisioning a new machine.

I don't know if there's a way to use a CI system to make the modules, then deploy them to a machine running the target kernel. Are there commands or configuration built into dkms to help facilitate this usage?


Yes, dkms supports this scenario. You need to have the appropriate kernel and headers installed on the CI system; then install the dkms module you want to ship, and run

dkms mktarball

with the appropriate module and version. Copy the resulting tarball to the target systems, and load it with

dkms ldtarball /path/to/dkmstarball

This will install the binary modules and make them available.

For Debian specifically, you can also create a Debian package containing pre-built modules, using

dkms mkdeb

with the appropriate module and version. See the dkms manpage and HOWTO for details.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.