Green shoots!

Astoundingly, I have begun to make some progress bringing the dev board fleet back on its feet.

I bought a decent little ethernet hub ages ago, and now a few days ago a set of little U/FTP flat ethernet cables (I had some S/FTP which were way too inflexible, because about half the dev boards have their ethernet sockets one way up, the others the other way up), and I’ve hooked up all the cabling and – now the difficult bit – I need to bring each dev board back to life.

My first problem was getting an IP to the dev board. Setting up a static IP on a headless dev board is a huge pain in the ass, because although configuring /etc/interfaces is trivial turning off DHCP when you can’t boot the sdcard is problematic, far as I know.

In the end I finally understood why the recommended method to configure static IP is to use a DHCP server to do it – the boards can all be configured with DHCP, and then they’ll work if they go into a router or into a local subnet hanging off your laptop.

My setup is that my laptop runs a Tor proxy and blocks all outbound access except that through the proxy. So I run a DHCP server now, on the ethernet port, which hooks to the hub, and the five dev boards are plugged into that, the dev boards IP from the DHCP server, and they’re all configured to proxy via the Tor proxy on my machine – beautiful. Nice and secure – the dev boards don’t even *know* my public IP, let alone have an ability to access the internetwebs (except via Tor proxy, which is fine for apt, but wget didn’t want to work first time so I need to look at that).

That’s the plan anyway – and right now I’ve got almost all of it working for the old Raspberry Pi 3. I only need to set up the static DHCP address – everything else is fine.

There is an enormous cost to this though.

Only more modern apts can proxy via socks, so I needed to move from I think it was Jessie (it’s been a while!) to the latest, Buster (and, tragically, Raspbian is now called Raspios – those whom the Gods would destroy, first they make mad).

This means all the GCCs I built natively on the devices will no longer run, because the clib has changed. I spent many month building as many GCC versions as I could – and it could take days to build a single GCC.