module-assistant
has been the de-facto method of compiling and building binary Debian packages containing kernel modules for a while now. More recently a comparable utility has appeared - dkms
.
If anyone has experience using both, please do a compare and constrast on the advantages and disadvantages of using one versus the other.
One item to address in an answer is whether dkms
builds binary Debian packages for kernel modules too, and if so, how, and if so, what the differences between the packages built by m-a
and dkms
are, if any.
I have personally never used dkms
, but I have used module-assistant
sporadically over many years, and it has been a good experience. I don't have immediate plans to experiment with dkms
, so I don't think I am the right person to write an answer.
Random googling found a discussion here, also this.
Needless to say, any answer should be based on first hand experience, not copying from web forums. A worked example using both would be nice. Possibly nvidia-kernel
, since that is quite commonly used. Yes, I know it is a proprietary kernel module. :-(
UPDATE: Thanks to jordanm for his answer. I'd like something that goes into a little more detail about what is going on under the hood, for both m-a
and dkms
, though I did not initially mention this. Also, it sounds like most of the time dkms
will work transparently and automatically. But what are the failure modes of dkms
. How do they both cope with manually compiled/installed kernels? Either installed from a binary package or a local install.
m-a
anddkms
are considered comparable.