Creta than the sum of its parts
Sun, 24 Nov 2019 17:01:18 +0000
The Creta (GL-AR750) travel router now boots NixWRT. Although, I hasten to add, I have not checked whether (and don't really expect that) any of its network interfaces work yet.
As alluded to previously, the snapshot release of OpenWRT for this
device uses the newer
ath79 target, not the older
ar71xx target -
in their words "it's
modernization under the hood, with the main goal to bring the code
into a form that is acceptable for Linux upstream, so that all (most)
of the whole ar71xx supported devices can be handled by an upstream,
unpatched Linux kernel". Which is, obviously, a good thing, and one
which I wanted to have in NixWRT instead of sticking with the rather
elderly kernel that comes with the vendor firmware.
So, a summary list of changes required
- upgrade the upstream (kernel.org) kernel to 4.19.latest
- upgrade the OpenWRT version we get our patches from, to a724095c6 (master, as of a week or so ago)
- OpenWRT have removed the kernel
that make patch-dtb work, which mean that we now need to use
catand the upstream
MIPS_RAW_APPENDED_DTBkernel config flag instead
- some wrestling with the kernel build process to add OpenSSL on the build machine. I am not actually sure why (or whether) we need OpenSSL to build the kernel we want to build, but it was easier to give in and add it than to figure out what required disabling.
I also lost a day or more because of an off-by-0 error. Which is to
say, off-by-factor-of-16, where I'd added a zero to the end of the
address I was loading the firmware into RAM and not added the same
zero to the address where I told it to look for the firmware. Because this workflow depends on
CONFIG_MTD_SPLIT_FIRMWARE which is now deprecated I made the unwarranted assumption that the problem was more complicated than it turned out to be
None of this is actually on Github right now, because of the strong likelihood (racing certainty) that it breaks the ramips target, but by tomorrow with a bit of luck it will probably at least be checked in on a branch.