diary at Telent Netowrks

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

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.