Hamradio/svxlink node/pl
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.
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.
- Najłatwiej: zainstaluj Raspberry Pi Imager (pobiera system za ciebie): https://www.raspberrypi.com/software/
- Imager działa na Windows, macOS i Linux.
Część 2 — Wgraj kartę SD (z gotowym SSH + Wi-Fi)
To krok, który oszczędza ci klawiatury i monitora. W Raspberry Pi Imager:
- Choose Device: twój model Pi.
- Choose OS: Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit).
- Choose Storage: twoja karta SD.
- 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ę.
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ź
svxnodei 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
Część 6 — Zainstaluj SvxLink
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
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. |
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).
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.
