Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Portables Packet- Betriebsystem
#1
Hallo zusammen,

beim Erweitern der Packet Radio Tools bin ich auf ein Problem gestoßen, dessen Lösung etwas weiter ausgeholt hat als ursprünglich geplant. Daraus ist inzwischen aber ein recht umfangreiches und vor allem praktisches Projekt entstanden.

Das Problem:
Das Terminal-Tool sollte so erweitert werden, dass es neben WA8DED/TF-Hostmode auch direkt auf Linux-eigene AX.25-Ports zugreifen kann. Mit KISS war das grundsätzlich problemlos möglich.
Schwieriger wurde es beim klassischen Baycom-Modem über die baycom_ser_fdx-/ baycom_ser_hdx -Treiber:
Unter einem aktuellen 7.0.x-Kernel kam es auf meiner Hardware zu kompletten System-Freezes, sobald der TRX am Modem auch nur im RX aktiv wurde. In der darauffolgenden Kernelgeneration steht der bisherige AX.25-Kernelstack zudem nicht mehr wie gewohnt zur Verfügung.

Einen älteren Kernel möchte man aber ungern in seinem normalen Arbeitssystem einsetzen.
Also entstand die Idee:

Ein komplettes, portables Linux-System ausschließlich für AX.25 und Packet Radio – bootfähig vom USB-Stick.

Und das funktioniert inzwischen erstaunlich gut.
Das System wurde zunächst vollständig in einer VM aufgebaut und anschließend als Image auf einen USB-Stick übertragen.

Aktueller Aufbau:
  • Debian 12
  • Kernel 6.1.0-53
  • APT als Paketmanager
  • Xorg
  • IceWM
  • PCManFM
  • Firefox
  • die gängigen AX.25-Tools
  • meine Packet-Radio-Tools
  • grafisches AX.25 Control Center (Konfiguration der Axports, Baycom Modem etc.) 

           

Die AX.25-Konfiguration lässt sich vollständig grafisch einrichten. Gerade ein Baycom-Modem kann damit mit wenigen Klicks konfiguriert und gestartet werden.
Alle Anwendungen werden über einen eigenen Vollbild-Launcher gestartet.

Das Ziel ist:

USB-Stick einstecken → booten → Packet Radio.

Der Stick ist vollständig beschreibbar. Einstellungen, Downloads, Updates und nachinstallierte Pakete bleiben also erhalten. Er verhält sich im Prinzip wie ein normales installiertes Linux-System.
Das fertige Image kann anschließend einfach mit dd auf einen USB-Stick geschrieben werden. Nach dem ersten Start wird die Dateisystemmgröße auf den gesamten Stick erweitert.
Der Stick ist sowohl auf Legacy-BIOS- als auch auf UEFI-Systemen bootfähig. Secure Boot wird aber nicht unterstützt.
Das Projekt befindet sich aktuell noch in der Testphase.
Sobald die Tests abgeschlossen, die Dokumentation fertig und die Imagegröße auf einem vertretbaren Stand ist, stelle ich das System gern zum Testen zur Verfügung.

Bis dahin, 

73 Marco
Zitieren
#2
Hallo zusammen,

ein kleines technisches Update zum AX25 Packet OS.

Im ersten Beitrag hatte ich beschrieben, dass das System zunächst komplett in einer VM aufgebaut und anschließend als fertiges Image auf USB übertragen wurde. Inzwischen ist das Projekt einen Schritt weiter: Der finale Stand wird nicht mehr „von Hand“ als Master-System gepflegt, sondern über einen eigenen AX25 Packet OS Builder vollständig neu erzeugt.
Die eigentliche Buildlogik steckt bewusst in normalen Shellskripten. Die grafische Builder-GUI ist im Prinzip nur die komfortable Bedienoberfläche darüber. Damit lässt sich das Root-Dateisystem erzeugen, daraus das bootfähige RAW-Image bauen und dieses anschließend kontrolliert auf ein USB-Medium schreiben.
Beim Rootfs-Build wird mit mmdebstrap ein frisches Debian 12 Bookworm aufgebaut. Wichtig für die Reproduzierbarkeit ist dabei, dass nicht einfach der jeweils aktuelle Debian-Paketstand verwendet wird, sondern ein fest definierter Debian-Snapshot. Auch der für die AX.25-/Baycom-Hardware getestete Kernel 6.1.0-53-amd64 ist versionsgenau festgelegt. Der Builder kontrolliert außerdem, ob die zusätzlich benötigten Module für genau diesen Kernel vorhanden sind.
Danach wird das projektspezifische Overlay eingespielt, also Launcher, Konfigurationen, eigene Hilfsprogramme, Desktop-Konfiguration usw. 

Anschließend baut ein zweiter Schritt daraus ein 5-GiB-GPT-RAW-Image mit BIOS-Bootpartition, EFI-Partition und einem normalen beschreibbaren ext4-Root-Dateisystem. GRUB wird dabei sowohl für Legacy-BIOS als auch für UEFI installiert.
Das Ergebnis ist also weiterhin eine normale Linux Installation (auf einem externen Medium). 
Wird das Image auf einen größeren Stick oder eine SSD geschrieben, erweitert das System beim Booten seine Root-Partition automatisch auf den verfügbaren Platz.

Ein wichtiger Grund für diese Builder-Lösung ist neben der Wartbarkeit auch die Reproduzierbarkeit.
Die Builder-Lösung vereinfacht außerdem die Verteilung und Lizenzpflege erheblich.
Der Builder selbst enthält keine Debian-DEB-Pakete, kein fertiges Debian-Rootfs und kein komplettes Debian-Systemimage. 
Die Debian-Pakete, der Kernel und weitere Fremdsoftware werden erst beim Build direkt aus den vorgesehenen Paketquellen heruntergeladen und behalten dabei selbstverständlich ihre jeweiligen Lizenzen.
Damit muss nicht für jeden Release ein komplettes fertiges Linux-System mit allen darin enthaltenen Binärpaketen weiterverteilt werden. Stattdessen kann der vergleichsweise kleine Builder veröffentlicht werden, während Debian und andere Fremdkomponenten aus ihren ursprünglichen Quellen bezogen werden. 
Das macht die Lizenzzuordnung und Pflege beim Verteilen wesentlich übersichtlicher.
Die eigenen, eindeutig zugeordneten Projektbestandteile stehen im finalen Stand unter GPL-2.0-only. Fremdprojekte und einzelne Assets behalten ausdrücklich ihre vorhandenen Lizenzen.

   

Außerdem wurden für dieses Projekt die Packet Radio Tools "Terminal" und "Nodeserver" angepasst. Diese unterstützen neben dem Hostmode jetzt  auch Linux eigene AX.25 Ports.
Das Control Center ist in der v1.9 auch enthalten. Mit diesem Tool lassen sich verschiedene Axports anlegen und verwalten. 
Getestet wurden hier bereits erfolgreich: Baycom Modem, KISS TNC sowie 6Pack TNC.
Benötigte Programme wie z.B. die axtools oder auch Direwolf installiert das Control Center bei Bedarf über apt automatisch nach.

             

Der Builder selbst wurde unter Linux Mint 22.3 x64 getestet und ist für x86_64/amd64-Systeme der Debian-Familie mit APT ausgelegt. 
Debian, Ubuntu und Linux Mint werden vom Builder als unterstützte Hosts erkannt.


73
Marco
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste