Auteur Archief

Nix-meetup Software Freedom Day

Op 21 September, Software Freedom Day, verwelkomden we de Nederlandse Nix Meetup bij Hack42: rond de 20 geïnteresseerden, zowel bekende gezichten uit de community als nieuwe

Het formele programma bestond uit een presentatie van raboof over hoe Nix mooi samengaat met software freedom, en van Adriel Matei over zijn framework om een neovim-configuratie te genereren vanuit Nix.

Een groep Nix-geinteresseerden in de lounge

Na de presentaties bleef het nog lang gezellig, en zijn er al allerlei plannen gesmeed voor de volgende meetup. We kijken ernaar uit!

#24

09 2024

WiFi-repeater met Liminix

In een vorig blog hebben we een seriële aansluiting gesoldeerd aan een WiFi-router om het boot-proces te kunnen volgen en beinvloeden. Het uiteindelijke doel is Liminix te installeren op deze router. Gelukkig is deze router al goed ondersteund onder OpenWRT, dus dat is een mooi beginpunt.

OpenWRT-upgrade

Liminix is qua kernel gebaseerd op OpenWRT. Helaas zat Liminix nog op een oude OpenWRT-snapshot met Linux 5.15.71, waaronder deze router nog niet goed ondersteund wordt. Daarom hebben we eerst de OpenWRT in Liminix geupdate naar v23.05.2 met kernel 5.15.137.

Image-configuratie in Liminix

Een device in Liminix wordt gedefineerd in “devices/<devicenaam>/default.nix”. We introduceren dus een “devices/tp-archer-ax23/default.nix“, grotendeels gebaseerd op een bestaand device. We gebruiken hierbij de OpenWRT-documentatie om de architectuur, geheugen-offsets e.d. goed te kiezen, en de OpenWRT-code om een kernel-configuratie te genereren.

Booten met TFTP

De image-configuratie is een boel trial-and-error, waarbij de seriële terminal die we vorige keer hebben aangesloten onmisbaar was: via die weg kun je de U-Boot terminal benaderen.

Met Liminix kun je de tftpboot-output bouwen, die bestaat uit een image, een Device Tree (dtb), en instructies hoe je image en dtb naar het geheugen van het device kunt kopiëren en starten. De dtb wordt daarbij zo aangepast dat tijdens het bootproces het stuk van het geheugen waar het image zelf staat netjes wordt vermeden.

Het was nogal verwarrend dat de Liminix-instructies een bootm-commando met 3 parameters opleverde: het locatie van het image, de locatie van de ramdisk (if any), en de locatie van de FTD/dtb.

Helaas heeft the AX23 nog een oudere U-Boot versie, waarbij het bootm-commando nog maar 2 parameters krijgt. Dit betekent dat de dtb niet op de bootm-commandline kan worden meegegeven, maar aan het image moet worden geplakt. Daarvoor kan de tftpboot-module van Liminix iets worden aangepast.

TP-Link safeloader image

Nu we een image kunnen maken dat via TFTP netjes boot, werd het tijd een image te maken dat permanenter op de machine geflashed kan worden. Blijkbaar heeft TP-Link de U-Boot zo aangepast dat deze werkt met hun eigen ‘safeloader’-imageformaat. Als ik het goed begrijp hebben ze met dit formaat wat safeguards toegevoegd zodat je niet meer zomaar een image kunt uploaden dat voor een ander device bedoeld is. Gelukkig zat er in de OpenWRT firmware-utils al een tplink-safeloader tool waarvoor we een Liminix-module hebben toegevoegd.

Inrichting als repeater

Het mooie van Liminix is dat je de configuratie van je device in een soort configuratiebestand kunt beschrijven, en dan een image genereren.

Het configuratiebestand dat ik gebruik vind je hier. Omdat ik de router als WiFi-extender wilde inzetten, is het relatief eenvoudig: een ‘bridge’ om zowel de LAN-poorten als de WLAN-poorten, een DHCP-client om de router van een IP-adres te voorzien, en hostapd-configuratie voor beide WLAN-interfaces. Dit werkte vrij vlot, maar haalde teleurstellende snelheden. Nadat ik de hostapd-configuratie van OpenWRT heb overgenomen ging het wel snel. Ik heb geen bijzonder snelle internetverbinding, maar het is wel leuk dat WiFi nu ook op kantoor niet meer de bottleneck is in de verbinding met het internet:

speedtest-output

Volgende stappen

Voorlopig ben ik tevreden met het resultaat.

De meeste verbeteringen hebben we als PR aangeboden aan Liminix en zijn ondertussen geaccepteerd. Alleen de support voor U-Boot mboot prompts met maar 2 parameters zou eigenlijk nog een keer opgeschoond moeten worden zodat die ook kan worden aangeboden.

Wel moet ik nog steeds met ethernet-kabels aan de slag om nieuwe images te flashen. Het zou mooi zijn over het netwerk te kunnen updaten. Liminix heeft daar wel modules voor, daar moet ik me nog verder in verdiepen.

#03

04 2024

Verslag: I Love Free Software Day 2024

“I Love Free Software Day” is een leuke positieve campagne van de Free Software Foundation Europe (FSFE) om op valentijnsdag de mensen te bedanken die vrije software mogelijk maken. Met vele bijeenkomsten is het ook een goede gelegenheid om gezellig samen te komen. In Nederland was er een workshop in Den Haag en een bijeenkomst bij ons.

De bijeenkomst begon met een rondleiding voor iedereen die nog niet in de hackerspace was geweest. Toen konden we echt beginnen. Eerst een voorstelronde onder het genot van stukken pizza. Iedereen vertelde over persoonlijk ervaringen met vrije software en over de software en mensen die een bedankje verdienden.

Group picture of attendees (except for photographer)

Op deze manier maakten we kennis met veel verschillende software: webbrowsers Waterfox en Firefox, browser extensie Vimium, desktopomgeving KDE, muziekprogramma Audacity, tekstverwerker Vim (in memoriam Bram Moolenaar), foto importsoftware Rapid Photo Downloader, smartphone besturingssystemen CalyxOS en UBports, smartphone installer OpenAndroidInstaller, catalogussoftware Omeka, compiler Free Pascal, onafhankelijke cloudomgeving Nextcloud, documentverwerker LibreOffice en huisautomatiseringsoftware Home Assistant. Dat was een enorm inspirerende en leerzame rondgang. Opmerkelijk was dat voor vrijwel iedereen Firefox een van de eerste vrije software applicaties was.

Het schrijven van bedankjes begon vooral met wat emails en chatberichten omdat van veel projecten en ontwikkelaars geen postadres bekend is. Maar na wat zoeken kwamen er steeds meer handgeschreven I Love Free Software Day-briefkaarten op tafel te liggen, klaar om te versturen. Het was mooi om te zien hoe de samenwerking werd gezocht door elkaars kaarten te steunen met een ondertekening. Terwijl we bezig waren zagen we online op social media ook al de nodige bedankjes. Zo viel ons oog op de geanimeerde harten door Fedora.

Written I Love Free Software postcards

Het was een gezellige avond die echt de community bij elkaar heeft gebracht. Het was mooi om het enthousiasme te zien en de lieve woorden te horen. Hopelijk hebben de gestuurde bedankjes een grote impact.

Ik kijk nu al uit naar de liefdevolle bijeenkomst volgend jaar.

#28

03 2024

WiFi-router met aanhangsel

Om meer inzicht te krijgen in het boot-proces, en later aan de slag te gaan met custom firmware zoals OpenWrt en Liminix, wilden we graag toegang tot de seriele poort van deze WiFi-router:

TP-Link Archer AX23 with a serial-USB connector sticking out of it

Hiervoor hebben we eerst het doosje opengemaakt en zijn op zoek gegaan naar de juiste contacten. Dit was nog niet gedocumenteerd, maar de vier niet-aangesloten contacten op een rijtje waren een goede gok. Met de multimeter was goed te zien dat het tweede contact de GND was, de andere drie contacten allemaal zo rond de 3.3v zaten. Met de ‘frequency’-setting van de multimeter was goed te zien dat het laatste contact het meest ‘noisy’ was, waaraan we afleidden dat dat waarschijnlijk de TX was. Het derde contact had een net iets zwakkere stroom dan de eerste, dus RX.

We hadden een aantal USB-naar-serial-converters liggen. Aangezien we niet wilden riskeren e.e.a. te beschadigen maten we eerst de stroomsterkte van de converters. Eentje had een signaal van 3,7V, dus die hebben we voor de zekerheid opzij gelegd. Met “screen /dev/ttyUSB0 115200” konden we snel bevestigen dat we de juiste pins te pakken hadden: zowel output als input werkten direct. Voor later gebruik hebben we er wat Dupont-draadjes aangesoldeerd:

De printplaat van de AX23, met draadjes aan de seriele verbinding gesoldeerd en een USB-serial converter

Voor het nageslacht hebben we de foto met instructies ook aan de OpenWrt-documentatie toegevoegd op https://openwrt.org/toh/tp-link/archer_ax23_v1#serial

#30

01 2024