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 -
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
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.
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
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.