Kernel updates#
Thu 12 Nov 2026 10:03:46 PM UTC
As and when the opportunities - and the spoons - present themselves, I am slowly going through the devices in Liminix to upgrade their kernels, and thought I'd share this snippet from updating the GL-MT300A.
Note that my explanation of the OpenWrt behaviour is based on my own inspection and not official docs, and it may be I've misunderstood something ...
-
in OpenWrt 25.12, the kernel for ramips devices is 6.12.x and there are a Several of patches and a whole bunch of DTS files to make it work on devices that mainline doesn't run on
-
However, the wifi subsystem (mac80211) is based on 6.18.x, and the kernel backports framework is used so that the 6.18.x code can run on a 6.12.x kernel
In Liminix we don't do this, we just run 6.12.x with the openwrt patches. This is for historical-ish reasons: at the time I started working on it, on the device I was using they had the same version for kernel and mac80211 and I was able to say "haha, no need for backports, into the sun it goes" which let me tell you was a big relief after tangling with backports in NixWRT.
But right now ... not so much. There are also OpenWrt patches for mac80211 and they're often quite important to make the device performant or in some cases to work at all. But the 6.18.x mac80211 patches obviously don't apply unmolested to 6.12, so the ugly ugly workaround is to check out an earlier version of OpenWrt from back when their mac80211 was still using 6.12, and apply those.
For the GL-MT300A this is sufficient to boot the kernel, and load the
rt2800soc module, but not sufficient for any wlan interfaces to show
up - or even for any dmesg output from the module. This is because at some time
between older and newer OpenWrt, the compatible string in the DTS for
wmac@10180000 switched from "ralink,rt7620-wmac", "ralink,rt2880-wmac"
to "ralink,rt7620-wifi", "ralink,rt2880-wifi". Yay.
I know, I'll use "sed". I already had two problems.