Jump to content

Hamradio/svxlink node/pl

From MediaWiki For Hamradio Analog/Digital and Debian v13 software/Raspberry PI v3/4/5 howto
This page is a translated version of the page Hamradio/svxlink node and the translation is 79% complete.

Kompletny przewodnik krok po kroku: od pustej karty microSD do działającego węzła SvxLink na Raspberry Pi — pobranie systemu, wgranie go z gotowym Wi-Fi i SSH, znalezienie Pi w sieci, zalogowanie, kompilacja SvxLink, wklejenie konfiguracji i dodanie panelu webowego. Nie trzeba znać Linuksa. Do skopiowania i wklejenia.

💡 Co uzyskasz na końcu: Raspberry Pi z SvxLink, połączone z SVXReflectorem, z zapowiedziami głosowymi po szwedzku i angielsku, które widzisz i którymi sterujesz z przeglądarki. Licz około godziny (głównie Pi kompiluje samo).
Eight steps: download Raspberry Pi OS, flash with Pi Imager (hostname/SSH/Wi-Fi), boot, find IP, connect over SSH/PuTTY, install SvxLink, edit svxlink.conf, start it and add the dashboard.

Czego potrzebujesz

  • Raspberry Pi 3, 4 lub 5 (Pi Zero 2 W też się nada, ale kompiluje wolno).
  • Karta microSD, 16 GB lub więcej, i czytnik kart w komputerze.
  • Interfejs audio do strony radiowej (karta dźwiękowa USB, HAT typu WM8960, albo płytka DRA/przemiennikowa) — niepotrzebny tylko po to, by uruchomić sam program.
  • Twój znak oraz login do reflektora (host + AUTH_KEY) dla SVXReflectora, do którego chcesz dołączyć.

Część 1 — Pobierz Raspberry Pi OS

Weź obraz Lite 64-bit systemu Raspberry Pi OS 13 (Trixie) — „Lite” nie ma pulpitu, czego właśnie chcesz dla węzła.

Część 2 — Wgraj kartę SD (z gotowym SSH + Wi-Fi)

To krok, który oszczędza ci klawiatury i monitora. W Raspberry Pi Imager:

  1. Choose Device: twój model Pi.
  2. Choose OS: Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit).
  3. Choose Storage: twoja karta SD.
  4. Kliknij Next → Edit Settings (ikona koła zębatego / „would you like to apply OS customisation?”). Ustaw:
Ustawienie Co wpisać
Hostname np. svxnode — do Pi dotrzesz jako svxnode.local.
Enable SSH Tak → „Use password authentication” (najprościej).
Username / password wybierz własne, np. użytkownik pi. Zapisz je.
Configure wireless LAN twoja nazwa Wi-Fi (SSID) + hasło i twój kraj Wi-Fi (ważne, inaczej Wi-Fi zostanie wyłączone).
Locale / timezone / keyboard twój kraj.

Zapisz, potem Write. Gdy skończy, wysuń kartę.

⚠ Jeśli pominiesz personalizację Wi-Fi/SSH, Pi wystartuje bez możliwości zalogowania. Powtórz ten krok albo podłącz kabel Ethernet (SSH działa tylko, jeśli je zaznaczyłeś).

Część 3 — Uruchom Pi

Włóż kartę do Pi, podłącz sprzęt radiowy/audio jeśli go masz i włącz zasilanie. Pierwszy start trwa minutę lub dwie (rozszerza system plików i łączy się z Wi-Fi). Daj mu czas, zanim zaczniesz go szukać.

Część 4 — Znajdź adres IP Pi

Do zalogowania potrzebujesz IP Pi (lub jego nazwy .local). Wybierz, co działa:

  • Hostname (najłatwiej): po prostu użyj svxnode.local (nazwa hosta, którą ustawiłeś + .local). Działa w większości sieci domowych.
  • Twój router: otwórz stronę administracyjną routera → lista klientów DHCP / podłączonych urządzeń → znajdź svxnode i zapisz jego IP (np. 192.168.1.42).
  • Przeskanuj sieć z komputera:
ping svxnode.local
# albo przeskanuj podsieć (Linux/Mac):   nmap -sn 192.168.1.0/24

Część 5 — Połącz się przez SSH

Windows: pobierz i uruchom PuTTY — https://www.putty.org/ . W Host Name wpisz svxnode.local (lub IP), Port 22, Open. Zaakceptuj ostrzeżenie o kluczu za pierwszym razem, potem zaloguj się ustawionym użytkownikiem/hasłem.

macOS / Linux: po prostu użyj terminala:

ssh pi@svxnode.local

Po zalogowaniu zaktualizuj system:

sudo apt update && sudo apt full-upgrade -y

SvxLink nie występuje jako aktualna kompilacja w domyślnych repozytoriach Pi, więc kompilujesz go sam (pracę wykonuje Pi). Ten jeden skrypt instaluje narzędzia budowania, pobiera kod z GitHuba, kompiluje i instaluje oraz pobiera zapowiedzi głosowe po szwedzku (sv_SE) i angielsku (en_US). Wklej go do sesji SSH:

#!/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)" kompiluje na wszystkich rdzeniach CPU. Na Pi 3 kompilacja może trwać 20–40 minut — to normalne. Idź po kawę; pracuje.

Część 7 — Skonfiguruj svxlink.conf

Konfiguracja jest w /etc/svxlink/svxlink.conf. Edytuj ją:

sudoedit /etc/svxlink/svxlink.conf

Części, które musisz ustawić, to sekcje logic. Najważniejsza jest łączność z reflektorem — oto działający [ReflectorLogic] (sekrety zastąpione przez CHANGE_ME):

[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
📥 Chcesz kompletny plik? Pobierz pełny, oczyszczony zestaw przykładowych konfiguracji — svxlink.conf, node_info.json, gpio.conf i pliki modułów, ze wszystkimi sekretami wyzerowanymi: svxlink-config-example.zip. Rozpakuj do /etc/svxlink/ i zmień znak, host reflektora, AUTH_KEY i lokalizację na własne.

Inne sekcje, na które warto spojrzeć:

Sekcja Do czego służy
[GLOBAL] Które logic są ładowane (LOGICS=SimplexLogic,ReflectorLogic) i język zapowiedzi — ustaw LANG=sv_SE lub LANG=en_US.
[SimplexLogic] Znak-ID samego węzła, komendy DTMF i do której logic reflektora się podłącza.
[Rx1] / [Tx1] Urządzenia audio i PTT/COS dla twojego interfejsu radiowego (urządzenie ALSA, squelch, CTCSS).
[LocationInfo] Opcjonalny beacon APRS (pozycja, częstotliwość) — domyślnie całość zakomentowana.
⚠ Nigdy nie publikuj swojego prawdziwego AUTH_KEY, hasła ani e-maila. Przykład wyżej jest celowo pusty. Wstaw swoje wartości, trzymaj plik czytelny tylko dla roota i nie wklejaj prawdziwego pliku na forach ani czatach.

Część 8 — Uruchom i sprawdź

Włącz i uruchom węzeł, potem obserwuj log:

sudo systemctl enable --now svxlink
sudo systemctl status svxlink
sudo journalctl -u svxlink -f

W logu powinieneś zobaczyć, jak łączy się z reflektorem i zapowiada w wybranym języku. Jeśli ktoś mówi na monitorowanej talkgrupie, usłyszysz to (i zobaczysz w logu). Ctrl-C przerywa śledzenie logu (usługa działa dalej).

💡 Konfigurujesz reflektor zamiast węzła? Ta sama kompilacja zainstalowała też svxreflector — włącz tę usługę (sudo systemctl enable --now svxreflector) i skonfiguruj /etc/svxlink/svxreflector.conf.

Dodanie panelu webowego

Gdy węzeł działa, sprezentuj sobie stronę w przeglądarce do podglądu statusu i zmiany talkgrupy — zainstaluj SvxSpot Dashboard na tym samym Pi. Czyta ten sam svxlink.conf i steruje węzłem za ciebie.

Rozwiązywanie problemów

Objaw Sprawdź
Nie mogę dotrzeć do svxnode.local Użyj IP z routera. W niektórych sieciach .local (mDNS) jest zablokowane.
SSH „connection refused” SSH nie zostało włączone w Imagerze albo Pi jeszcze nie wystartowało — poczekaj lub wgraj ponownie z zaznaczonym SSH.
Brak Wi-Fi Zły kraj Wi-Fi w Imagerze albo złe SSID/hasło. Wgraj ponownie lub użyj Ethernetu.
make zawodzi Zwykle brakuje pakietu do budowania — uruchom ponownie linię apt install z Części 6, potem znów make.
Nie łączy się z reflektorem Złe HOSTS, CALLSIGN lub AUTH_KEY — zapytaj operatora reflektora. Obserwuj journalctl -u svxlink -f.
Brak audio / brak zapowiedzi głosowych Sprawdź LANG w [GLOBAL] i czy archiwa dźwięków rozpakowały się do /usr/share/svxlink/sounds.

Zobacz też

  • SvxSpot Dashboard — panel sterowania w przeglądarce dla tego węzła.
  • chan_svx / chan_svx_sat — alternatywnie, podłączenie węzła AllStarLink do SVXReflectora.
  • Hamradio — reszta poradników o głosie cyfrowym.
  • Autor: SA7AUX <bjorne@sa7aux.se>. SvxLink © SM0SVX, GNU GPL.