Recently, since I bought during my last computer’s upgrade an ASUS X470 board, I noticed first of all that drivers for the controller were not distributed nicely.
When thinking of the fun I had in the past with my ASUS T91’s graphics driver (Intel EMGD for GMA500), it looks like the chip manufacturers still don’t understand how to ship kernel drivers in a smart way.
Since the drivers have been distributed in their source code and the I/O API in the kernel changes from time to time, it needs a system within the operating system, which recompiles the kernel driver automatically. This is why DKMS has been developed. Since the kernel headers, which are needed during compilation it is possible to use one source code of a driver with some if-clauses across different kernel versions. That is due to the fact that the kernel’s version is included in the headers and during compilation time the version can be checked.
So I began to prepare such a DKMS package and together with other people on the internet, I keep the package up-to-date with patches and improvements.
Today I’m using the driver daily together with a RAID1 on two hard drives to feel a bit more sure that my important development files are (more) safe.