In-Tree vs Out-of-Tree Linux Drivers: A Decision That Shapes Years of Maintenance
When a Linux driver is written for custom hardware, developers must decide whether to merge it into the mainline kernel or maintain it in a separate repository — a choice that determines long-term maintenance burden rather than just packaging. Out-of-tree drivers offer flexibility, faster iteration, and confidentiality for unreleased hardware, but require manual fixes on every kernel rebase since internal kernel interfaces are not stable for external modules. In-tree drivers benefit from community upkeep and interface compatibility guarantees, but demand GPL-compatible licensing and public disclosure of hardware details through device tree bindings. Key factors influencing the decision include the product's lifespan, whether a vendor-modified SoC kernel is in use, licensing constraints, and how soon the hardware will be publicly announced. The general guidance is to target mainline for hardware intended for long-term production, while keeping drivers out-of-tree only when hardware is unannounced, interfaces are still changing, or GPL-compatible licensing is not possible.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in