Hamradio/svxlink node/de
Eine vollständige, an die Hand nehmende Anleitung: von einer leeren microSD-Karte zu einem laufenden SvxLink-Knoten auf einem Raspberry Pi — das OS herunterladen, mit bereits gesetztem WLAN und SSH flashen, den Pi im Netzwerk finden, einloggen, SvxLink bauen, eine Konfig einspielen und ein Web-Dashboard hinzufügen. Keine Linux-Vorkenntnisse nötig. Zum Kopieren und Einfügen.
Was du brauchst
- Einen Raspberry Pi 3, 4 oder 5 (ein Pi Zero 2 W geht, kompiliert aber langsam).
- Eine microSD-Karte, 16 GB oder größer, und einen Kartenleser an deinem PC.
- Ein Audio-Interface für die Funkseite (USB-Soundkarte, ein Hat wie das WM8960 oder eine DRA-/Repeater-Platine) — nicht nötig, nur um die Software zum Laufen zu bringen.
- Dein Rufzeichen und ein Reflektor-Login (Host + AUTH_KEY) für den SVXReflector, dem du beitreten willst.
Teil 1 — Raspberry Pi OS herunterladen
Hol dir das 64-bit-Lite-Image von Raspberry Pi OS 13 (Trixie) — „Lite“ hat keinen Desktop, was du für einen Knoten willst.
- Am einfachsten: installiere den Raspberry Pi Imager (er lädt das OS für dich): https://www.raspberrypi.com/software/
- Der Imager läuft auf Windows, macOS und Linux.
Teil 2 — Die SD-Karte flashen (mit SSH + WLAN vorab)
Das ist der Schritt, der dir Tastatur und Monitor spart. Im Raspberry Pi Imager:
- Choose Device: dein Pi-Modell.
- Choose OS: Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit).
- Choose Storage: deine SD-Karte.
- Klicke Next → Edit Settings (Zahnrad / „would you like to apply OS customisation?“). Stelle ein:
| Einstellung | Was eintragen |
|---|---|
| Hostname | z. B. svxnode — du erreichst den Pi als svxnode.local.
|
| Enable SSH | Ja → „Use password authentication“ (am einfachsten). |
| Username / password | eigene wählen, z. B. Benutzer pi. Schreib sie auf.
|
| Configure wireless LAN | deine WLAN-SSID + Passwort und dein WLAN-Land (wichtig, sonst bleibt WLAN aus). |
| Locale / timezone / keyboard | dein Land. |
Speichern, dann Write. Wenn es fertig ist, wirf die Karte aus.
Teil 3 — Den Pi booten
Steck die Karte in den Pi, schließe die Funk-/Audio-Hardware an (falls vorhanden) und schalte ihn ein. Der erste Boot dauert ein bis zwei Minuten (er vergrößert das Dateisystem und tritt dem WLAN bei). Gib ihm Zeit, bevor du nach ihm suchst.
Teil 4 — Die IP-Adresse des Pi finden
Du brauchst die IP des Pi (oder seinen .local-Namen), um dich einzuloggen. Wähle, was funktioniert:
- Hostname (am einfachsten): nutze einfach
svxnode.local(der Hostname, den du gesetzt hast, +.local). Funktioniert in den meisten Heimnetzen. - Dein Router: öffne die Admin-Seite deines Routers → die Liste DHCP-Clients / verbundene Geräte → finde
svxnodeund notiere die IP (z. B.192.168.1.42). - Scanne das Netzwerk von deinem PC:
ping svxnode.local # oder das Subnetz scannen (Linux/Mac): nmap -sn 192.168.1.0/24
Teil 5 — Per SSH verbinden
Windows: lade PuTTY herunter und starte es — https://www.putty.org/ . Trage bei Host Name svxnode.local (oder die IP) ein, Port 22, Open. Akzeptiere die Schlüsselwarnung beim ersten Mal, dann logge dich mit dem gesetzten Benutzernamen/Passwort ein.
macOS / Linux: nutze einfach ein Terminal:
ssh pi@svxnode.local
Sobald du drin bist, bring das System auf den neuesten Stand:
sudo apt update && sudo apt full-upgrade -y
Teil 6 — SvxLink installieren
SvxLink ist nicht als aktueller Build in den Standard-Repos des Pi, also kompilierst du es (der Pi macht die Arbeit). Dieses eine Skript installiert die Build-Werkzeuge, holt den Quellcode von GitHub, baut und installiert ihn und lädt die schwedischen (sv_SE) und englischen (en_US) Sprachansagen herunter. Füge es in die SSH-Sitzung ein:
#!/bin/bash
set -e
cd ~
mkdir -p ./projects/svxlink
cd ./projects/svxlink
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
sudo apt update
sudo apt dist-upgrade -y
sudo apt autoremove -y
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
sudo apt install -y \
build-essential cmake git wget \
libgpiod3 libgpiod-dev \
alsa-utils \
libsigc++-2.0-dev libgsm1-dev libpopt-dev \
tcl8.6-dev \
libgcrypt20-dev libspeex-dev libasound2-dev libopus-dev librtlsdr-dev \
doxygen groff vorbis-tools curl \
qtbase5-dev qttools5-dev-tools qttools5-dev \
libjsoncpp-dev libcurl4-gnutls-dev libogg-dev \
sox
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# system user for svxlink (ignored if it already exists)
if ! id -u svxlink >/dev/null 2>&1; then
sudo useradd -r -G audio,plugdev,dialout svxlink
fi
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# fetch the source
if [ ! -d svxlink ]; then
git clone https://github.com/sm0svx/svxlink.git
fi
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
mkdir -p svxlink/src/build
cd svxlink/src/build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc \
-DLOCAL_STATE_DIR=/var -DWITH_SYSTEMD=yes ..
make -j"$(nproc)"
make doc
sudo make install
sudo ldconfig
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# voice prompts: Swedish + English
cd ~/projects/svxlink
cp svxlink/src/svxlink/scripts/filter_sounds.sh ./
cp svxlink/src/svxlink/scripts/play_sound.sh ./
[ -d svxlink-sounds-en_US-heather ] || git clone https://github.com/sm0svx/svxlink-sounds-en_US-heather.git
[ -d svxlink-sounds-sv_SE-elin ] || git clone https://github.com/sm0svx/svxlink-sounds-sv_SE-elin.git
sudo ./filter_sounds.sh svxlink-sounds-en_US-heather en_US
sudo ./filter_sounds.sh svxlink-sounds-sv_SE-elin sv_SE
cd /usr/share/svxlink/sounds
sudo tar xvjf ~/projects/svxlink/svxlink-sounds-en_US.tar.bz2
sudo tar xvjf ~/projects/svxlink/svxlink-sounds-sv_SE.tar.bz2
make -j"$(nproc)" baut auf allen CPU-Kernen. Auf einem Pi 3 kann der Build 20–40 Minuten dauern — das ist normal. Hol dir einen Kaffee; er arbeitet.
Teil 7 — svxlink.conf konfigurieren
Die Konfig liegt in /etc/svxlink/svxlink.conf. Bearbeite sie:
sudoedit /etc/svxlink/svxlink.conf
Die Teile, die du setzen musst, sind die Logic-Abschnitte. Der wichtigste ist die Reflektor-Verbindung — hier ist ein funktionierendes [ReflectorLogic] (Geheimnisse durch CHANGE_ME ersetzt):
[ReflectorLogic] TYPE=Reflector ID=9 HOSTS=svx.sa7aux.se ; your reflector's hostname CALLSIGN="MYCALL" ; your callsign AUTH_KEY="CHANGE_ME_long_random_secret" ; the key your reflector expects CERT_EMAIL=you@example.org ; for the auto TLS certificate DEFAULT_TG=0 MONITOR_TGS=9,240,24016,24020,24021 ; talkgroups you want to hear UDP_HEARTBEAT_INTERVAL=5 NODE_INFO_FILE=/etc/svxlink/node_info.json EVENT_HANDLER=/usr/share/svxlink/events.tcl
svxlink.conf, node_info.json, gpio.conf und die Modul-Dateien, alle Geheimnisse geleert: svxlink-config-example.zip. Entpacke sie nach /etc/svxlink/ und ändere Rufzeichen, Reflektor-Host, AUTH_KEY und Position auf deine eigenen.Andere Abschnitte zum Anschauen:
| Abschnitt | Wofür |
|---|---|
| [GLOBAL] | Welche Logics geladen werden (LOGICS=SimplexLogic,ReflectorLogic) und die Sprache der Ansagen — setze LANG=sv_SE oder LANG=en_US.
|
| [SimplexLogic] | Das eigene Rufzeichen-ID des Knotens, DTMF-Befehle und mit welcher Reflektor-Logic er verlinkt. |
| [Rx1] / [Tx1] | Die Audiogeräte und PTT/COS für dein Funk-Interface (ALSA-Gerät, Squelch, CTCSS). |
| [LocationInfo] | Optionale APRS-Bake (Position, Frequenz) — standardmäßig alles auskommentiert. |
AUTH_KEY, Passwörter oder deine E-Mail. Das Beispiel oben ist bewusst geleert. Trage deine eigenen Werte ein, halte die Datei nur für root lesbar und füge die echte Datei nicht in Foren oder Chats ein.
Teil 8 — Starten und prüfen
Aktiviere und starte den Knoten, dann beobachte das Log:
sudo systemctl enable --now svxlink sudo systemctl status svxlink sudo journalctl -u svxlink -f
Im Log solltest du sehen, wie er sich mit dem Reflektor verbindet und in deiner gewählten Sprache ansagt. Wenn jemand auf einer beobachteten Talkgroup spricht, hörst du es (und siehst es im Log). Strg-C beendet das Verfolgen des Logs (der Dienst läuft weiter).
svxreflector installiert — aktiviere diesen Dienst (sudo systemctl enable --now svxreflector) und konfiguriere /etc/svxlink/svxreflector.conf.
Das Web-Dashboard hinzufügen
Sobald der Knoten läuft, gönn dir eine Browser-Seite für Status und Talkgroup-Wechsel — installiere das SvxSpot Dashboard auf demselben Pi. Es liest dieselbe svxlink.conf und steuert den Knoten für dich.
Fehlerbehebung
| Symptom | Prüfen |
|---|---|
Erreiche svxnode.local nicht |
Nutze stattdessen die IP aus deinem Router. In manchen Netzen ist .local (mDNS) blockiert.
|
| SSH „connection refused“ | SSH wurde im Imager nicht aktiviert, oder der Pi ist noch nicht gebootet — warte, oder flashe neu mit angehaktem SSH. |
| Kein WLAN | Falsches WLAN-Land im Imager, oder falsche SSID/Passwort. Neu flashen, oder Ethernet nutzen. |
make schlägt fehl |
Meist ein fehlendes Build-Paket — führe die apt install-Zeile aus Teil 6 erneut aus, dann wieder make.
|
| Verbindet nicht zum Reflektor | Falsche HOSTS, CALLSIGN oder AUTH_KEY — frag den Reflektor-Betreiber. Beobachte journalctl -u svxlink -f.
|
| Kein Audio / keine Sprachansagen | Prüfe LANG in [GLOBAL] und dass die Sound-Tarballs nach /usr/share/svxlink/sounds entpackt wurden.
|
Siehe auch
- SvxSpot Dashboard — das Browser-Bedienfeld für diesen Knoten.
- chan_svx / chan_svx_sat — stattdessen einen AllStarLink-Knoten mit einem SVXReflector verbinden.
- Hamradio — der Rest der Digital-Voice-Anleitungen.
- Autor: SA7AUX <bjorne@sa7aux.se>. SvxLink © SM0SVX, GNU GPL.
