Linux drivers must be built against the kernel for which they are to be used. As most drivers are part of the kernel, this normally isn't a problem. However, when using 3rd party drivers, the driver must be recompiled against each new kernel. This causes inconvenience for users who must rebuild the driver against each new kernel update. A kABI-tracking kmod is a kernel module (driver) that is compatible with a given kernel Application Binary Interface (kABI). A consistent kABI is a key feature of an Enterprise Linux distribution and, so long as upstream does not break the kABI, a kABI-tracking kmod driver will work across all kernels for a given Enterprise Linux distribution (eg, RHEL-9, Almalinux-9, Rocky Linux 9) without the need to recompile the driver for each kernel update. See also our blog and Red Hat's article.
Note that sometimes kmod packages will stop working after a point release kernel update. If this happens, please open a bug report and we will re-rebuild the package against the new kernel. See also RHEL-9 kABI Policy.
Dynamic Kernel Module Support (DKMS) is another packaging method for delivering automatic 3rd party kernel driver updates. The main disadvantage of DKMS for Enterprise Linux is that the driver is automatically recompiled (by the DKMS utility) for each new kernel meaning that the system must contain the appropriate development packages and compiler, something that is not always desirable on a production Enterprise Linux system.
Generally, no. If your hardware works with the distro supplied driver then you don't need to install updated drivers from ELRepo.
The vast majority of kmod drivers supplied by ELRepo contain backported support for additional hardware so if the distro driver works for you then that's all you need. If the distro version fails to detect (or properly work with) your hardware, then an updated kmod driver from ELRepo may solve the issue. If not, please contact us or file a bug against the package in question.
To select the correct driver package for your hardware, please follow the example below (shown for an Ethernet controller):
[user@elrepo]$ /sbin/lspci -nn | grep -i net 04:00.0 Ethernet controller [[0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [[10ec:8168] (rev 01)
Searching for the Vendor:Device ID pairing of 10ec:8168 on the DeviceIDs page will show that kmod-r8168 should work with this Ethernet controller.
You can use the following one-liner to obtain the Vendor:Device ID pairings for all your wired and wireless NICs:
[user@elrepo]$ for BUSID in $(/sbin/lspci | awk '{ IGNORECASE=1 } /net/ { print $1 }'); do /sbin/lspci -s $BUSID -m; /sbin/lspci -s $BUSID -n; done
By using the Vendor & Device numbers from an ID pairing, you can check to see if your system contains an appropriate driver module for that particular device:
[user@elrepo]$ grep -i VendorID /lib/modules/*/modules.alias | grep -i DeviceID
The command would list the driver module, if it exists, in the currently installed kernels. Please note that if you have installed the driver from other sources, its details would also appear in the output.
Please see the Override page for details.
You can use rsync to mirror the repository. Please see the Download page for examples.
A release tag that refers to a specific point release (e.g, el9_3) indicates that kmod package is built for that point release and may not be backward compatible with earlier point releases.