diary @ telent

N is for New Town#

Tue 31 Dec 2024 05:12:15 PM UTC

Topics: ride-report motorbike

 A sculpture consisting of four metal shapes each at the top of a tall stilt: they are red, yellow, blue and orange respectively. It represents the four main neighbourhood groups of Harlow with building representations on top Anyway, N is for New Town, which is a sculpture by Nicola Burrell, which is in Harlow, which is a New Town. The New Towns were a big postwar government project so that people in substandard or bombed-out accommodation in cities would have somewhere better to move to, so Harlow was previously a small village up until 1947, then quite suddenly a medium-sized town.

This last ride of 2024 was a milestone because it's the first time I have ever successfully overtaken a car on a single-carriageway (one lane in each direction) road. Waited for a straight bit, nothing coming, moved out into the opposing lane for a better view, dropped a gear and opened the throttle, and the car driver didn't decide to speed up as I went past - or if they did, didn't react quickly enough to stop me from getting past. So that was a nice confidence booster.

Better weather than Saturday, albeit quite windy (20mph gusting to 40). I'd been wondering for a while how much wind is OK for motorcycling - I'd have no qualms at all about riding on any of my much lighter pedal cycles in these conditions, but none of them are fully faired and none of them can go at 70 mph (at least, not with me riding). Turns out it was fine: I could tell the wind was there but it wasn't blowing me around and didn't feel unsafe.

https://artuk.org/discover/artworks/new-town-244275/view_as/grid/search/2024--makers:nicola-burrell-b1966/page/1

view from rider's perspective of a motorcycle on the wrong side of a long straight road, with a VW people carier in the left lane. The weather is grey and overcast Ahaha, I win at getting files from GoPro : it works with go-mtpfs when you use a different USB cable than the one you didn't know was dodgy.

Would like to point out that my speedo overreads slightly and this overtake was conducted entirely within the 60mph legal speed limit, officer.


dark red motorbike trike conversion and a yamaha mt07 Couple of rather cool vehicles pulled up alongside as I was waiting at the lights.

I didn't see the trike had L-plates until I looked at the photo just now. From the amount of noise it was making I'm quite surprised if it was a 125

BTW I use AArch(64)#

Sun 05 Jan 2025 01:33:33 PM UTC

Topics: liminix

Been a while since I did one of these, but I found some time during the Christmas holidays to advance the state of Liminix a bit by finishing off the port to Belkin RT3200. It turned out to be a lot closer to finished already than I remember it, which was gratifying.

ECCe hoc

The wrinkle with this device is that as shipped from the factory it has ECC errors in the flash chip image, which the "new SPI-NAND driver" fails on, which means that putting an up-to-date distro on it doesn't work at all well.

Happily the OpenWrt people have a solution for this already, in the shape of the owrt-ubi-installer which munges the flash layout to upgrade U-Boot and move almost all the important from-factory stuff (WiFi config data, U-boot environment etc) from fixed-offset MTD partitions into UBI volumes.

However :-) there's a complication. The device tree is coupled to the partition layout. Newer versions of the installer are able to move more of the factory data to UBI than the old ones did, which means that you have to use the correct DTS for the version of the installer you used. And this is not just a matter of copying it from the newer OpenWrt because there are other changes in the DTS made at the same time to make it compatible with newer versions of the kernel.

So, tl;dr you need to make sure to get the right version of the installer for the kernel of the OS distribution that you plan to use it with, and this is why the Release notes for the installer 1.1.3 say "Do not use this installer if you just want to run release 23.05.x or ealier. Use the v1.0.2 release instead for now.". To which I'd respond: do use this 1.1.3 installer if you want to run a Liminix version from about January 2025 with git sha 9fd9b8b or better. Because it uses kernel 6.6.67 just like the prerelease OpenWrt does.

If the boot fits

Like the Turris Omnia, the U-Boot on this device understands the filesystem and can load a kernel from it. This is ideal for Liminix because it means we can handle the kernel as (very nearly) "just another package" and so switch to some new/different kernel as part of running the updater script.

It doesn't use extlinux-compatible, which is a bit of a shame, but I added a second "bootloader" module such that if you set config.boot.loader.fit.enable = true the upshot is that you get a kernel+dtb+initramfs in /boot/fit. Then in U-Boot you redefine the boot_production variable to find it and boot from it:

uboot> fw_setenv boot_production 'led $bootled_pwr on ; ubifsmount ubi0:liminix && ubifsload ${loadaddr} boot/fit && bootm ${loadaddr}'

Updater updated

Previously unreported except in the NEWS file, liminix-rebuild is deprecated and possibly even defunct. The way we now do an in-place upgrade on a device that supports them is by building the outputs.updater target and then running result/bin/update.sh. This is mostly because it was 93% impossible (for me, anyway) to remember how to invoke liminix-rebuild with its gnarly nix-shell wrapper and this means I have more consistency between my updatable devices and my needs-reflashing-every-time devices.

Yule log

This is mostly unrelated, but also happened. By default, logs in Liminix are written to /run/log/current (and then rotated to datestamped files in /run/log), which is an ephemeral filesystem.

This is good, because who wants to wear out their flash cycles on storing a million copies of

@40000000677a7bdb326105f4 rotuer klogd <4>DENIED CHAIN=input-ip4 IN=ppp0 OUT= MAC= SRC=203.0.113.123 DST=192.0.2.10 LEN=60 TOS=0x00 PREC=0x00 TTL=51 ID=0 DF PROTO=TCP SPT=29405 DPT=2s WINDOW=65535 RES=0x00 SYN URGP=0

However: this is not good, because if the device crashes you don't know what went wrong. So. On devices that support it or that can be made to support it, we now have log persistence. You can set logging.persistent.enable = true and the last ~ kB of logs that were written before rebooting will be available after rebooting in /run/log/previous-boot. This works by the magic of CONFIG_PSTORE_PMSG.

This is device-specific in that there needs to be something in the device tree that says where the messages get stored. Typically this would be something like

reserved-memory {
		ramoops@03f00000 {
			compatible = "ramoops";
			reg = <0x03f00000 0x10000>;
			pmsg-size = <0x10000>;   # <- this line is important
		};
	};
};

(your memory map may vary)

and no device I've looked at yet has this enabled by default. So I've also made it a little easier to "patch" the device tree at build time so that you can add a suitable config to any device you so choose.

Is that all?

Yes, or at least that's it as far as I can still remember. Anyway, I am dogfooding this router at home, and granted it's only been running since lunchtime but so far it works just fine.

With the aid of my notes-to-self file I have the following things on my radar for attention next. Please note the HTML markup is semantic: this is an unordered list :-)

In other "forthcoming" news, open PR for Openwrt One device support

O is for Octagonal council house#

Sat 18 Jan 2025 06:42:48 PM UTC

Topics: ride-report motorbike

I have an hours chinmount GoPro footage of today's ride and to a first approximation it's all really really dull to watch. It has demonstrated though just how much time I spend looking down at my phone/gps while riding, which is a bit scary. Kurviger seems to have stopped doing voice directions into my helmet and I can't see why (all the options that say it should do are enabled, and the headset works fine for music so it's not a hardware or a bluetooth issue). Looking down at the map is ... a poor substitute

I might have another look through it later and see if there's anything worth keeping

a small octagonal single-story house with cream-coloured walls and a thatched roof with a chimney i the middle. It has a green door with a plaque above that says 1621 O is for Octagonal. This is the "Dutch House" in Rayleigh, said to be the oldest council house in England (although it's not been in council ownership all that time). I had to park a few minutes walk away and come back to it, so I didn't spend long here. Plus it was starting to get dark by the time I arrived.

A ford in the road, with water flowoing across it.  Picture taken from the perspective of someone sitting on a stationary motorbike it took longer to get there than Kurviger said it would, but I feel I have a reasonable excuse for at least one of the delays. I was far too risk-averse (cowardly) to go through this when I didn't know how deep it was, it seemed like a bad place to potentially break down

The same ford, closer up My motorbike, parked at the side of the road with a headlight on I went a bit closer on foot, and then I said a rude word and pushed my motorbike round through 180° and went back the way I came

Once home, I asked about the voice prompt on the Kurviger forum and then found the problem myself. Classic example of rubber duck debugging.

https://forum.kurviger.com/t/voice-prompts-have-stopped-working-3-5-4/20222