Repository navigation
pluto-tx 0.9.0 RC1 – Debian-Pakete (Ubuntu 26.04, Debian 13, amd64)
Pre-releaseErster vorgebauter Release-Kandidat von pluto-tx als Debian-Paket (Pre-Release, zum Testen), nach docs/RELEASE_PLAN.md.
Installation
| System | Datei |
|---|---|
| Ubuntu 26.04 LTS, amd64 | pluto-tx_0.9.0.rc1.ubuntu26.04_amd64.deb |
| Debian 13 (trixie), amd64 | pluto-tx_0.9.0.rc1.deb13_amd64.deb |
| Debian 13 / Raspberry Pi OS 64 Bit, arm64 — Testbuild, nicht final getestet | pluto-tx_0.9.0.dev20260930.g1f9fcfa+dirty.deb13_arm64.deb |
sudo apt install ./pluto-tx_0.9.0.rc1.ubuntu26.04_amd64.deb # Debian 13: pluto-tx_0.9.0.rc1.deb13_amd64.deb
pluto-tx-doctorAuf dem Ubuntu-Desktop geht auch ein Doppelklick auf das .deb (App Center). Die Abhängigkeiten, u. a. GNU Radio, installiert apt aus den Distributionsquellen. Compiler oder Node.js brauchst du nicht.
Warning
arm64 (Raspberry Pi) ist ein Testbuild und nicht final getestet. Gebaut auf einem Raspberry Pi 4 aus Commit 1f9fcfa (Programmcode und Komponenten wie rc1; geändert sind nur Build-Werkzeuge); daher die abweichende Versionsnummer 0.9.0~dev20260930.g1f9fcfa+dirty~deb13 (+dirty: ein Cache-Symlink im Build-Checkout, kein Code-Unterschied). Im frischen Container auf dem Pi bestanden: Installation, --version, M17/LoRa/FT8/RADE/JS8, pluto-tx-doctor, Web-TRX (Start, Login, Frontend). Die volle Testsuite ist dort nicht durchgelaufen (der Pi startete währenddessen neu), und auf Funk-Hardware ist es noch nicht erprobt. Benötigt Raspberry Pi OS 64 Bit auf Debian 13 (trixie); 32 Bit wird nicht unterstützt.
Kurzanleitung
Nach der Installation
pluto-tx-doctorausführen. Es zeigt, ob alle Komponenten gefunden werden und ob die SDRs erreichbar sind.- RTL-SDR: Ein RTL-SDR, das schon vor der Installation gesteckt war, einmal ab- und wieder anstecken, damit die Zugriffsrechte der udev-Regel greifen. Einen noch geladenen DVB-T-Treiber (
dvb_usb_rtl28xxu) löst librtlsdr beim Öffnen selbst ab; nach dem nächsten Neustart lädt er dank Sperrliste gar nicht mehr.
Raspberry Pi: Der Pi 4 liefert an allen USB-Ports zusammen nur etwa 1,2 A. Für HackRF plus weitere Geräte einen aktiven USB-Hub verwenden. - Eine vorhandene Git-Installation mit Startern in
~/.local/binverdeckt das Paket.pluto-tx-doctor --fix-launchersbenennt die alten Starter um; gelöscht wird nichts.
Programme
- Die Desktop-Apps findest du im Menü (Pluto TX, Pluto Advanced RX, Web-TRX) oder startest sie im Terminal mit
pluto-txbzw.pluto-advanced-rx. - Für die Kommandozeile ohne GUI gibt es
pluto-cli --help,pluto-cli tx --help,pluto-cli rx --helpundpluto-cli devices --help.
Web-TRX-Server von Hand starten und stoppen
web-trx start # startet den Server im Hintergrund und zeigt die Adressen
web-trx status # läuft er? (--json für Skripte)
web-trx log # Log live mitlesen (Strg+C beendet nur die Anzeige)
web-trx restart # nach Änderungen an den Einstellungen
web-trx stop # beenden; der Sender geht dabei in den sicheren Zustand
web-trx open # im Browser öffnen (nur auf einem Rechner mit Desktop)- Adresse:
https://<rechner>:8321, auf einem Pi z. B.https://192.168.178.65:8321. Das Zertifikat ist selbstsigniert, der Browser warnt einmal. Die Ausnahme musst du zulassen, denn das Mikrofon funktioniert im Browser nur über https. - Passwort: Es wird beim ersten Start erzeugt, angezeigt und in
~/.config/pluto-tx/web-trx.envgespeichert. Dort kannst du es ändern und dannweb-trx restartausführen. - Solange Web-TRX ein SDR geöffnet hat, können die Desktop-Apps dieses SDR nicht nutzen. Die Apps zeigen das in ihrer Web-TRX-Zeile an und können den Server dort auch starten und stoppen.
Einstellungen: ~/.config/pluto-tx/web-trx.env
WEB_TRX_PASSWORD=... # Login-Passwort
WEB_TRX_PORT=8321 # Port
WEB_TRX_HOST=0.0.0.0 # Adresse, auf der der Server lauscht (127.0.0.1 = nur lokal)
WEB_TRX_TLS=false # http statt https (dann kein Mikrofon im Browser, außer auf localhost)
WEB_TRX_STATION_CALL=N0CALL # eigenes Rufzeichen (FT8/JS8)
WEB_TRX_STATION_LOCATOR=AA00 # eigener Locator
WEB_TRX_BACKEND=sim # Simulation ohne Hardware, zum AusprobierenLaufzeitdaten wie Log, Zertifikat, Sitzungen, TX-Log und Einstellungen liegen in ~/.local/state/web-trx/.
Ohne Monitor (headless, z. B. Raspberry Pi), wenn du den Server von Hand startest: GNU Radio öffnet immer einen lokalen Audio-Ausgang, und auf dem Pi ist ALSA-default der HDMI-Ausgang. Ohne Monitor scheitert dann der RX mit audio_alsa_sink. Abhilfe: diese zwei Zeilen in web-trx.env eintragen, danach web-trx restart. Der Ton geht ohnehin an den Browser, und der Dienst setzt das schon selbst.
GR_CONF_AUDIO_ALSA_DEFAULT_OUTPUT_DEVICE=null
GR_CONF_AUDIO_ALSA_DEFAULT_INPUT_DEVICE=nullWeb-TRX als Dienst (headless, z. B. Raspberry Pi)
Mit dem Dienst startet der Server bei jedem Boot, auch ohne Anmeldung. Die Station kann dann senden, ohne dass jemand am Rechner angemeldet ist. Deshalb ist der Dienst nach der Installation aus und muss bewusst eingeschaltet werden:
web-trx service enable # als normaler Benutzer (nicht mit sudo); fragt selbst nach dem sudo-Passwort
web-trx service status # Zustand des Dienstes
web-trx service disable # Dienst ausschalten und entfernen- Der Dienst heißt
web-trx@<benutzer>.serviceund läuft als dein Benutzer, mit denselben Einstellungen und Daten wie oben. - Stoppen und Starten, ohne ihn auszuschalten:
sudo systemctl stop|start|restart web-trx@$USER. Einweb-trx stopbeendet einen laufenden Dienst ebenfalls, danach läuft er erst nach dem nächsten Boot wieder. - Log:
web-trx logoderjournalctl -u web-trx@$USER.
Deinstallieren
sudo apt remove pluto-tx # Programm entfernen
sudo apt purge pluto-tx # zusätzlich die Dienst-Einrichtung entfernenDeine Einstellungen und Daten in ~/.config/pluto-tx/ und ~/.local/state/web-trx/ bleiben erhalten. Wenn du sie nicht mehr brauchst, löschst du sie von Hand.
Weitere Doku
- Im Paket:
/usr/share/doc/pluto-tx/(README, README.web-trx.md, README.pluto-cli.md) man web-trx,man pluto-txusw. (noch knapp, siehe #3)
Inhalt
pluto-tx,pluto-advanced-rx,pluto-cli,web-trx,pluto-tx-doctor, mit Menüeinträgen- Alle optionalen Komponenten sind vorgebaut: M17 (gr-m17), LoRa/Meshtastic/MeshCore (gr-lora_sdr), RADE (rade_c), FT8 (ft8_lib), JS8 (js8ref und JSC-Wortlisten)
- Web-TRX mit fertigem Frontend und den FastAPI/Uvicorn-Paketen der Distribution, ohne eigene venv
- udev-Regel: HackRF und RTL-SDR sind für den angemeldeten Benutzer ohne Gruppe und ohne Neu-Anmeldung nutzbar
- Sperrliste für den DVB-T-Treiber (ab dem nächsten Neustart; bis dahin löst librtlsdr ihn selbst ab)
web-trx@.servicefür den Headless-Betrieb wird deaktiviert ausgeliefert und ist ein bewusster Schritt:web-trx service enable- Laufzeitdaten pro Benutzer:
~/.config/pluto-tx/,~/.local/state/web-trx/
Getestet
Gebaut aus c37bb59 (Branch release-packaging). In frischen Containern beider Ziele: Installation allein aus den Distributionsquellen, alle Komponenten, Web-TRX (Start, /health, Login, Stopp), die volle pluto-tx-Testsuite gegen das installierte Paket, remove/purge ohne Rückstände. Auf echter Funk-Hardware ist das Paket noch nicht abgenommen (Plan R5).
Bekannte Grenzen
- arm64 bzw. Raspberry Pi nur als ungetesteter Testbuild (siehe Hinweis oben); ein regulärer arm64-Build folgt in einem späteren RC.
- Noch keine APT-Quelle und kein
get.sh; Updates vorerst durch Installieren des neuen.deb. - Eine bestehende Git-Installation mit Startern in
~/.local/binverdeckt/usr/bin.pluto-tx-doctorzeigt das an,pluto-tx-doctor --fix-launchersbenennt die alten Starter um. - In einem von vier vollen Testläufen unter Ubuntu 26.04 stürzte der Testprozess einmal mit einem Segmentation Fault ab, in der Nähe der RADE-Tests. In den übrigen drei Läufen (zwei davon mit dem veröffentlichten Paket) trat er nicht auf. Die Ursache ist noch nicht geklärt.
- Lizenzhinweis gr-m17: Die Top-Level-
LICENSEvon gr-m17 und das Submodullibm17enthalten den GPL-2.0-Text ohne Versionsangabe; die Quellen von gr-m17 selbst sind GPL-3.0-or-later. Die Frage ist noch nicht geklärt, siehe/usr/share/doc/pluto-tx/copyright.
Quellen
sources-0.9.0.rc1.tar.xz enthält pluto-tx und alle gebündelten Komponenten zu den eingebauten Commits (packaging/components.lock). Die Lizenztexte liegen im Paket unter /usr/share/doc/pluto-tx/licenses/. Prüfsummen: SHA256SUMS (noch nicht signiert).