Meaning
External software modules are the device drivers maintained and compiled separately from the official source tree of the operating system kernel. Distributing out of tree drivers allows hardware manufacturers to release updates immediately without waiting for the upstream kernel acceptance process. It provides a mechanism for rapid prototyping and proprietary code deployment.
Kernel Compatibility
Because the internal kernel programming interfaces are unstable and change between versions, external drivers must be rebuilt for each kernel release. This dependency requires automated build systems to monitor kernel updates and recompile the driver accordingly. Discrepancies in the compiler version or configuration flags can prevent the module from loading.
Distribution Challenge
Users of these modules must compile them locally or rely on pre-built binaries provided for specific kernel revisions. When a system administrator updates the operating system, the lack of an integrated driver can leave the hardware inoperable until the module is updated. Development tools like Dynamic Kernel Module Support automate this compilation process during kernel installations, which reduces the manual effort required to keep the system running.
This arrangement still introduces risk compared to drivers that are mainlined and undergo peer review by the core community.
Integration Tradeoff
Keeping drivers separate from the main repository avoids the rigorous code style and license audits required for upstream inclusion. However, it isolates the code from global optimizations and automated refactoring performed by kernel maintainers. The driver must eventually be ported to the main tree to ensure long-term stability.