Got the power#
Mon, 18 Nov 2019 23:26:36 +0000
This is little more than a placeholder, really, to note that I am 98% of the way to a working NixWRT test system again.
I rebuilt the computer-controlled USB power cable from last summer,
because some time between then and now half the cables fell out and it
wasn't immediately obvious where to put them back. This time I dun it
on stripboard with soldered connections, but I connected it to a GPIO
pin on the Raspberry Pi instead of using an Arduino. Because I need
the Pi anyway and why needlessly multiply entities? That went pretty
well except for the bit where I killed the transistor by failing to
clip the legs until sometime after bending them to touch each other
and applying power. Lesson learned.
The thing you see it plugged into is a second GL-AR750, because the
first one is now serving my family's Internet needs (using OpenWRT, I
am not in a dogfood situation here) and can't really be unplugged just
so I can play with it (because that would be something closer to a
doghouse situation). One piece of good news
(maybe not actually new news, but I only noticed recently ) here is that the Linux kernel for said device
has now been ported from the ar71 subarchitecture to ath79, which
means it now uses device tree files instead of hardcoding where all
the hardware bits and bobs inside it are.
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
patches
that make patch-dtb work, which mean that we now need to use
cat
and the upstream MIPS_RAW_APPENDED_DTB
kernel 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.