[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RFC: DKMS - Dynamic Kernel Module Support

Hello *,
some time ago I filed a RFS [1] for DKMS [2], and Daniel Baumann <daniel> asked
me what advantages it had over module-assistant.
After some talking with upstream, here I have the answer.

(quoting mail from Mario Limonciello <mario_limonciello@dell.com>, CCed)

If you have AUTOINSTALL set to yes in a DKMS control file:

1) It includes a kernel postinstall hook. This means that, the moment kernel
headers get installed, your modules are automatically rebuilt.

2) It includes a boot time service to add modules for a running kernel provided
headers are available.

*Usability & Maintainability*

3) You don't need to know much about what you are doing in order to install a
package that uses DKMS.  If you look at the kqemu-source package in Ubuntu, the
moment you install it, it builds modules for your running kernel. As soon as
you install a new kernel, it will build modules for that kernel too. Any old
kernels that you have, modules will be built as soon as you boot into the
Compare this to module-assistant. You have to install kqemu-source, and then
manually run module assistant for every single kernel you need modules for.

4) Churning out binary packages with prebuilt modules is time consuming for
maintainers. At least in Ubuntu, we have ABI bumps that happen every couple of
months. Previously, we would need to do new source packages uploads to get
binary modules for kernels or indicate to people to use module-assistant to
take care of these things manually in the interim.


5) Interoperability with different distributions. DKMS tarballs can be used on
RHEL, SuSE, Ubuntu, or Debian. If there are different kernels, patches can be
included in the DKMS tarball to enable support on different kernel releases.

6) Acceptance in enterprise solutions. Both Redhat & Novell support DKMS as a
solution for OEMs to provide kernel modules that won't be maintained in the
upstream tree for the foreseeable future.

I see great advantages in point 3 mainly: once I was a ndiswrapper user,
and if I didn't remember to rebuild the binary package when changing (or
upgrading) kernel... well, I had no connectivity ;)
Also point 1 seems great: just install the headers and you'll have all your
modules (well, those using the dkms framework) rebuilt against those...

This mail is being sent to see what Debian developers (and users) think about
this framework: it's useless if no package uses it :)

Btw, there's an "old" (a few months -- please don't blame me for its status,
it should be ok since I sent a RFS, but who knows what I did months ago...)
package on mentors.debian.net, but if there's interest in the package, I'll
promptly upgrade it and send a new RFS to debian-mentors.

Thanks for your attention,

[1] http://lists.debian.org/debian-mentors/2008/06/msg00066.html
[2] http://linux.dell.com/projects.shtml#dkms

 . ''`.  Debian maintainer | http://wiki.debian.org/DavidPaleino
 : :'  : Linuxer #334216 --|-- http://www.hanskalabs.net/
 `. `'`  GPG: 1392B174 ----|---- http://snipr.com/qa_page
   `-   2BAB C625 4E66 E7B8 450A C3E1 E6AA 9017 1392 B174

Attachment: signature.asc
Description: PGP signature

Reply to: