Linux 6.12 and the 25.12 toolchain: why kernel modules must match
In one sentence
Section titled “In one sentence”25.12 moves every target from Linux 6.6 to 6.12 and updates the toolchain, so kernel modules built for 24.10 will not load on 25.12.
Versions side by side
Section titled “Versions side by side”| Component | 24.10.0 | 25.12.0 |
|---|---|---|
| Linux kernel | 6.6.73 | 6.12.71 |
| GCC | 13.3.0 | 14.3.0 |
| binutils | 2.42 | 2.44 |
| musl | 1.2.5 | 1.2.5 |
| glibc | 2.38 | 2.41 |
25.12.6 moves the kernel to 6.12.112. In 25.12.0 the wireless stack (cfg80211/mac80211) comes from kernel 6.18.7, alongside dnsmasq 2.91, dropbear 2025.89 and busybox 1.37.0.
Why it matters at home
Section titled “Why it matters at home”kmod-*packages are built for one exact kernel. The feed path contains the kernel hash, as intargets/<target>/kmods/<kernel-hash>/, and it has to match the running kernel.- A kmod from another release, another build or a mirror with a different hash will fail to install or to load. That is a common reason a package “will not install”.
- Third-party builds often ship their own kernel. Official kmods may not fit them at all.
See it on your router
Section titled “See it on your router”uname -rgrep -E 'RELEASE|TARGET' /etc/openwrt_releaseRelated guides
Section titled “Related guides”Sources
Router.Homes
Independent OpenWrt notes. Every page states the firmware, device, package manager and way back.
Icons: Solar by 480 Design, CC BY 4.0