development

TFTP Server auf Einfach

TFTP ist das Trival File Transfer Protocol. Es wird bei Freifunk vor allem dazu verwendet, um dem Bootloader eines Routers Image-Dateien zu schicken, wenn man diese flashen möchte. Im Internet gibt es bereits einige Tutorials um einen TFTP-Server einzurichten. Diese sind meistens eher etwas älter und gehen davon aus, dass man dauerhaft einen TFTP-Server braucht. Ich fand diese Tutorials eher anstrengend, da sie meistens eine Menge Gebastel an irgendwelchen systemd-units enthielten.

Testing uci-defaults Scripts

Software-Testen ist immer so eine Sache bei Freifunk Berlin (und auch woanders): Man braucht Freiwillige, man sollte alle Eventualitäten mindestens einmal durchspielen und so weiter und so fort. Testen ist immer so eine Sache, weil man manchmal gar nicht weiß, wie man Dinge eigentlich genau testen soll. Dieser Blogpost beschreibt einen Workflow für das Testen von uci-defaults Skripten, wie ihn Perry mir mal vorgeschlagen hat: Router mit einer Firmware flashen. Es ist dabei eigentlich nicht soo genau wichtig, welche das ist.

Where is dat Server? – DNS-Resolver anzeigen

Falter nutzt den gleichen DNS-Resolver wie OpenWrt: dnsmasq. Das ist ein kleiner, ziemlich feiner Server, der gleichzeitig DNS, DHCP und noch ein paar nette Sachen mehr kann. (Allerdings ist die Version, die wir nutzen vermutlich ein wenig eingeschränkt, um die binary-size etwas zu drücken.) Ab und zu kommt es vor, dass man sich bei dnsmasq die konfigurierten DNS-Server anzeigen lassen möchte. Ich hatte das schonmal irgendwann probiert und damals war irgend-so-ein windiger Stackoverflow-Tipp, dass man dnsmasq ein SIGHUP senden könne und die Server dann im Log auftauchen.

SCP kaputt – Dateien kopieren mit aktuellen SSH

Neulich hatte ich von Fedora 35 auf Fedora 36 gewechselt. Jetzt kommt es bei den ganzen Freifunksachen häufiger mal vor, dass man eine Datei auf einen Freifunkrouter kopieren muss. Weil ich sehr gerne mit der Kommandozeile arbeite, mache ich das am liebsten über scp. Doch unter Fedora 36 hat das leider nicht mehr ohne Schwierigkeiten funktioniert: $ scp firmware.bin frei.funk:/tmp/ ash: /usr/libexec/sftp-server: not found scp: Connection closed Nach ein bisschen googlen habe ich zum Glück relativ schnell herausgefunden, warum das so ist: Seit OpenSSH-Version 9.

Einfacher Entwickeln: Remote Development mit SSHFS

LuCI-Apps zu entwickeln hat einen gewissen Reiz: Man kann mit relativ wenig Code Oberflächen gestalten, die echt nach etwas ausschauen. Ein bisschen nervig fand ich aber immer das Coden und Austesten der LuCI-Apps. Eigentlich gibt es nur zwei Möglichkeiten: Man schreibt den Code auf dem Zielsystem, wo er direkt ausführbar ist. Allerdings sind standardmäßig nur sehr minimale Editoren, wie vi, installiert. Das macht größere Editierungen teilweise umständlich. Man codet auf dem eigenen PC, wo man jede beliebige IDE/Editor nutzen kann.