SVXlink klient - instalacja PORADNIK wg MARCIN M0IQF
: 11 sty 2026, 10:10
SVXLink od podstaw – to moja próba wyjaśnienia krok po kroku procesu przygotowania systemu oraz instalacji programu SVXLink. Materiał skierowany jest do osób początkujących, które chcą samodzielnie zbudować i skonfigurować własny system.
Warto pamiętać, że większość sieci oferuje gotowe obrazy systemu – i jak najbardziej polecam skorzystanie z takiego rozwiązania, zwłaszcza na początek.
Niemniej jednak uważam, że samodzielne przejście przez cały proces instalacji i konfiguracji pozwala lepiej zrozumieć zasadę działania SVXLinka, a przy tym daje dużą satysfakcję z faktu, że udało się wszystko zbudować własnymi siłami.
Na tej stronie znajdziesz wiele opisów różnych konfiguracji sprzętowych, ale jest jeden wspólny mianownik — Raspberry Pi Zero lub Raspberry Pi Zero W 2. Czy to oznacza, że tylko te modele są wspierane?
Nie! To po prostu najtańsza i najbardziej dostępna opcja.
Osobiście moim ulubionym modelem jest Raspberry Pi 3A+ — ma ten sam procesor co wersja 3B+, połowę pamięci RAM (co w tym zastosowaniu nie przeszkadza), a co najważniejsze — można je zasilać podobnie jak Raspberry Pi Zero W, np. bezpośrednio z gniazda zapalniczki 5 V. Dlaczego to takie ważne? Bo wersje 3B+ i nowsze często „marudzą”, gdy napięcie spadnie poniżej 5.1 V.
Ostatecznie wybór modelu Raspberry Pi to indywidualna sprawa i zależy głównie od tego, ile chcemy w ten projekt zainwestować. Ja sam używam Raspberry Pi 1 i Raspberry Pi Zero W — więc naprawdę da się to uruchomić praktycznie na wszystkim.
A że jestem wyznawcą religii BIEDA-EDYSZON, to wiadomo – im taniej, tym lepiej.
Warto też wspomnieć, że Raspberry Pi to nie jedyna platforma, na której można zbudować hotspot. Coraz większą popularność zyskują Orange Pi, głównie dzięki wbudowanej karcie dźwiękowej, co pozwala stworzyć bardziej kompaktowe rozwiązanie.
Opisywany tutaj przykład będzie oparty na Raspberry Pi Zero W 2 z nakładkową kartą dźwiękową ReSpeaker. Jest to ciekawa alternatywa dla popularnego układu CM108, a przy tym nie wymaga lutowania ani stosowania adapterów z microUSB na USB-A, co w przypadku Raspberry Pi Zero znacząco upraszcza montaż.
Dodatkowo ReSpeaker oferuje kilka interesujących możliwości — ale o tym opowiem w dalszej części.
Cały opis postaram się podzielić na sekcje tematyczne: przygotowanie systemu, instalacja, konfiguracja, podłączenie radia, instalacja dashboardu, instalacja pluginów i kilka innych.
Mam nadzieję, że taki podział ułatwi zrozumienie całości i że ten materiał okaże się dla kogoś przydatny.
Należy na wstępie wyjaśnić że instalacja svxlink niesię za soba automatyczne posiadanie svxreflector. Svxlink to aplikacja klient która służy do połączenia naszego hotspot, gateway, przemiennik z svxreflektorem który instaluje się automatycznie i jest integralną częścią całego pakietu SVX.
Zadaniem SVXreflektora jest umożliwienie klientom SVXlinkom połączenie się w sieć i tymsamym umożliwia komunikację pomiędzy sobą. A nie zawsze tak było ponieważ svxlink przez wiele lat bym głównie kontrolerem przemiennika umożliwiającym połaczenie tylko z siecią EchoLink, potem doszła obsługa sieci FreeRadioNetwork i obsługa SVXreflektor. Dlatego przypominam że svxlink i svxreflektor to jedno i każdy z tych elementów składowych ma własny plik konfiguracyjny, w przypadku svxlink jest to plik svxlink.conf a w przypadku svxreflektor ma plik svxreflector.conf
Tak więc jest to już takie ukierunkowanie że każdy z Was posiadający hotspot, przemiennik może być budowniczym własnej sieci bo ma już wbudowany SvxReflektor i jedyne co Was przed tym broni to potrzeba i możliwości zintegrowania się z pewną grupą ludzi. Wielu ludzi myśli że to jakaś kosmiczna technologia która wymaga jakiś wybitnych informatycznych umiejętności - otóż tak nie jest, i jedyne co odróżnia serwer od serwera jest jego DASHBOARD i pewne nazwijmy to modyfikacje i dodatki bez których można bez problemu pracować, a ich istnienie jest podyktowane unowoczesnieniem lub wzbogaceniem SvxReflektor o funkcje których on nie posiada w oryginale. Kończąc wątek serwera SVXreflektor to należ ywspomnieć że może być cieżko z dashboard do reflektor poniewaź istniejące publicznie albo sa toporne w instalacji , albo trochę już przedawnione , ale i na to znajdzie się rozwiązanie.
PROSZĘ NIE TRAKTOWAĆ TEGO OPISU JAKO JEDYNEGO WŁAŚCIWEGO - To moja mniej lub bardziej udana próba wyjaśnienia co i jak MOŻNA i to często wbrew elementarnej logice i jakimkolwiek zasadom elektroniki.
Traktujcie to bardziej jak DROGOWSKAZ
Cały ten opis powstał podczas budowania PiHOT 2.0 - svxlink hotspot za mniej niż 150PLN - i zaznaczam że wszelkie testy wykonywałem na Naszym testowym serwerze HUBlink ( http://portal.d4a.uk/ )
" Podczas realizacji tego materiału nie ucierpiał żaden administrator."
Wprowadzenie
Jak już zostało wspomniane, opis ten będzie oparty na Raspberry Pi Zero W 2
Oczywiście jest to bazowe rozwiązanie dlatego skupimy się na samej instalacji i konfiguracji i celowo nie bede wspominał o takich dodatkach jak moduły GPS, ekrany OLED czy dodatkowe moduły radiowe jak LoRa czy MMDVM.
Tu poprzestanę tylko na warstwie podstawowej aby nie zrobić tego opisu zbyt zawiłym.
Dlaczego RaspberryPi ? Bo to mój wybór ale może być dosłownie cokolwiek co pozwoli na instalację systemu Linux. Platformy takie jak RaspberryPi czy OrangePi lub inne zdobyły popularność dzięki posiadaniu złącza GPIO które pozwala nam na wysterowanie nadawania w radiu PTT i zwrotnie danie systemowi informacji kiedy radio coś odbiera. W tym celu potrzebny będzie nam jakiś interfejs pośredniczący dedykowany pod konkretne radia. W zalezności jakimi sygnałami dysponuje radio taki albo kupujemy lub budujemy. Nalezy pamietać że niektóre radia staruje się poprzez zwarcie do masy lub podają jakieś napięcie i nie zawsze jest to napięcie pozwalające na podłaczenie bezpośrednio pod RaspberryPi - co z resztą nie jest polecane praktycznie nigdy nie nalezy robić. Zawsze warto użyć albo tranzystorów do wysterowania GPIO lub w najprostrzej wersji przekaźnika jednokanałowego - wszystk ojest podyktowane jakie radio podłączamy.
Przygotowanie systemu to procedura samodzielnej instalacji systemu operacyjnego, i programu svxlink. Jest ona skierowana dla ludzi chcących samemu przejśc proces instalacji, kompilacji i konfiguracji
Na naszym komputerze instalujemy sobie program RaspberryPi Imager który mozna pobrać w tej strony - https://www.raspberrypi.com/software/
Wkładamy nasza kartę SD do komputera i po uruchmieniu programu pierwsze pole jakie mamy do wyboru rodzaj urządzenia, w moim przypadku RaspberryPi Zero 2W
Kolejnym krokiem jest wybór systemu operacyjnego. I tu pierwsze ostrzeżenie - NIE WYBIERAMY NAJNOWSZEJ WERSJI TRIXI, idziemy do OTHER
i wybieramy RaspberryPi OS ( Legacy, 32bit) LITE BOOKWORM - wersja LITE nie posiada pulpitu i jest idealna i sprawdzona do tego rozwiązania
Po wybraniu systemu i nastepnie karty na jakiem mamy zapisać nasz system możemy przejsc do NEXT w celu zapisu.
Wyskoczy nam okno z zapytaniem czy chcemy dokonac personalizacji naszego obrazu. Klikamy Edit Settings
W tym oknie możemy wybrac nazwę host, podać username i password które będzie używane do logowania poprzez SSH, dodatkowo wypełniamy pole naszej sieci WIFI - nazwe i hasło. Ponadto w zakładce SERVICE warto sprawdzić czy jest tam aktywna opcja SSH server.
Po dokonaniu wszystkich ustawnień możemu przejsc do "wypalenia" naszego obrazu na karcie SD
Po wgraniu systemu na karte i uruchomieniu RaspberryPi, jakimś czasie w naszej sieci pojawi się nasz fmnode. Pierwsze uruchomienie może troche trwać dlatego prosze się uzbroic w cierpliwość i jak to powiada pewien klasyk " Daj temu poleżeć"
W celu odnalezienia naszego RaspberryPi w naszej sieci lokalnej albo użyjmy skanerów sieci lokalnej albo zalogować się trzeba do routera czy innego kontrolera sieci. Znając adres IP możemy podjąc próbe połaczenia sie z nim poprzez ssh - w przypadku posiadaczy systemu Windows może być przydatny program Putty a potem WinSCP w celu wgrywania plików.
Instalacja SVXlink
Zanim przechodzimy do samej instalacji, to pierwszą aplikacją jaką instaluje jest Midnight Commander , pokolenie pamietające Norton Commander poczuje delikatną nostalgię
sudo apt install mc
Sam proces instalacji svxlink można przejść na dwa sposoby, i dlaczego zawsze wybiera się ten trudniejszy ?
Otóz można zainstalować svxlink z repozytoriu komenda :
sudo apt install svxlink-server
W dalszej czesci widzimy jakie pliki zalezności będą się instalować
Pomijając fakt że w repozytorium jest starsza wersja SvxLink ( co może być plusem ) to brakuje w niej ważnego elementu w postaci wsparcia dla biblioteki GPIOD, a to zmuszać nas będzie to starszej i moim zdaniem mniej elastycznej metody zarządzania GPIO. To jest chyba główny powód dlaczego przechodzimy proces instalacji SvxLink instalując go ze źródła co jest bardziej czasochłonne.
UWAGA !!! - opis nie jest optymalny i zautomatyzowany i jest to celowy zabieg aby wykazać jakie sa pliki współpracujące z samym svxlink, mam nadzieję że pozwoli to zrozumieć pewne zależności i kierunek gdzie można coś zmodyfikować lub zrozumieć co gdzie trzeba zmienić jeśli coś nie działa.
W terminalu najpierw wydajemy komendy aktualizacji systemu
Następnie instalujemy niezbędne "zależności" programy niezbędne do prawidłowej kompilacji svxlink.
Jeśli chcemy na tym urządzeniu zainstalować także dashboard to musimy przygotować dla niego środowisko pracy
Kolejnym krokiem jest utworzenie użytkownika svxlink ponieważ jest on wymagany do instalacji. W późniejszym etapie możecie sobie sami zmienić ustawienia, lecz na etapie instalacji taki użytkownik powinien być istniejący.
W przypadku RaspberryPi komenda jest taka:
Można powiedzieć że jeśli wszystkie wymienione kroki zakończyły się sukcesem i nie wystąpiły jakieś problemy z ich instalacją to możemy przejść do instalacji samego svxlink.
Oto spis komend prowadzących nas przez proces pobrania, kompilacji i instalacji svxlink / svxreflector
Ważne aby na tym etapie obserwować czy przypadkiem nie mamy komunkatu o błedzie lub że brakuje jakiegoś elementu
Musimy jeszcze utworzyć dwa pliki :
1. plik autostartu
i wklejamy :
następnie
i wklejamy
Teraz możemy wydawać komendy :
sudo systemctl status svxlink
sudo systemctl stop svxlink
sudo systemctl start svxlink
sudo systemctl restart svxlink
Zanim zakończymy warto dla ułatwienia sobie życia pobrać prawie gotowy plik konfiguracyjny przygotowany pod RaspberryPi i sterowanie za pomoca GPIO - pozwoli mieć to punkt wyjściowy na start i do porównania z oryginałem na przyszłość.
Najpierw wykonajmy kopię zapasowa oryginalnego pliku konfiguracyjnego komendą :
a następnie moge zasugerowac pobranie prostego pliku konfiguracyjnego pod simplex hotspot
Edycję i konfigurację opisze w dalszej cześci.
Dlatego już w tym momencie polecam każdemu po przejściu procesu kompilacji zrobić sobie kopie karty SD - aby kolejny raz już tego nie robić i nie tracić kolejnych godzin.
Dashboard
Dashboard (panel sterowania) jest wizualną nakładką graficzną (GUI), która znacząco ułatwia zarządzanie i obsługę naszego hotspotu SVXLink. W przeciwieństwie do podstawowej konfiguracji tekstowej, dashboard umożliwia intuicyjną kontrolę nad systemem.
Chociaż niewiele tego typu paneli jest publicznie dostępnych, w tym przewodniku skupimy się na procesie instalacji rozwiązania dostępnego na platformie GitHub:
Adres URL projektu: https://github.com/f5vmr/SVXLink-Dash-V2
Należy podkreślić, że prezentowana wersja jest propozycją startową, która nie jest związana z żadną konkretną siecią radiową. Oznacza to pełną swobodę w jej używaniu, testowaniu i dowolnym modyfikowaniu pod własne potrzeby.
Dashboard jest elementem wymiennym i dynamicznie rozwijanym. Społeczność krótkofalowców, zwłaszcza użytkownicy Linuxa, aktywnie wspiera ideę Open Source Software (oprogramowania otwartoźródłowego). Dzięki temu, inni entuzjaści dzielą się własnymi modyfikacjami i wariacjami, które powstają z pasji do technologii i chęci dzielenia się wiedzą, a nie dla zysków komercyjnych.
Zanim rozpoczniemy instalacje musze wspomnieć że prawie każdy dashboard wymaga dostępu do pewnych plików aby mógł działać poprawnie.
/var/log/svxlink.log - to plik log programu svxlink będacy podstawowym źródłem informacji o tym co się dzieje aby móc nam to pokazać na dashboard. Czasami niektóre projekty ogarniają plik /var/log/svxlink a nie /var/log/svxlink.log ale to wynika chyba z pewnych praktyk deweloperów.
/etc/svxlink/svxlink.conf - plik konfiguracyjny programu svxlink w którym są podane pewne dane zmienne jak nasz znak, ustawienie audio czy uruchomione moduły. Dane te są wyświetlane na dashboard.
/tmp/dtmf_svx - ten plik głównie występował w dashboard autorstwa Waldka SP2ONG i służy to wymiany informacji dashboard <-> svxlink, jaki DTMF ma być wstrzykniety do programu svxlink w ramach wybieranego za pomoca wirtualnej klawiatury DTMF czy przycisków pamięci
/var/run/svxlink/dtmf_svx - ten plik w zastępstwie za /tmp/dtmf_svx został wprowadzony przy okazji modyfikacji "Svxlink Dashboard by SP2ONG" - i tego pliku się teraz będziemy się go trzymać.
Proces instalacji
Rozpoczynamy od wykasowania zawartości katalogu html. A to że coś mamy można łatwo stwierdzić odwiedzając adres ip naszej maliny. Jest to standardowy plik pozostały po instalacji naszego serwera www.
Aby on nie kolidował z nowym dashboard trzeba wykasować zawartość katalogu /var/www/html/ - choć autor podaje aby wykasować cały katalog.
Teraz zgodnie z opisem na stronie pobieramy dashboard
Po wydaniu tej komendy naszym oczom ukazać się powinien taki widok.
Niestety to nie koniec , ponieważ teraz trzeba nadać uprawnienia aby wszystkie elementy panelu sterowania działały. Zgodnie z opisem na github musimy edytować plik konfiguracyjny apache2
Szukamy fragmentu zaznaczonego
i podmieniamy www-data na svxlink w obu linijkach
Teraz zapisyjemy CTRL+X a nastepnie Y.
Następnie musimu edytować plik /usr/lib/systemd/system/apache2.service
Po edycji odszukujemy linijkę "PrivateTmp=true" i podmieniamy na "PrivateTmp=false"
Następnie zapisujemy CTRL+X oraz Y dla potwierdzenia.
teraz już finalnie możemy przeładować usługe serwera www komendą
Tu należy wykonać jeszcze komendę sudo ./upgrade.sh - lecz ja pozostawiam to dla potencjalnego posiadacza tego obrazu - TAK poniżej bedzie link do pobrania obrazu z na RaspberryPi dokładnie z tego punktu . Ponieważ podczas wykonywania tej komendy trzeba podać login i hasło jakim bedzie zabezpieczony nasz dashboard przed nieautoryzowanym dostępem.
Przestrzagam !!! - aby nikt nie wpadł na pomysł że skoro dashboard ma login hasło to moge go wystawić na publiczny widok - możecie się bardzo zdziwić jak słabe jest to zabezpieczenie i ktoś zacznie Wam mieszac w konfiguracji. Nigdy, przenigdy , nigdy nie wystawiamy takich rozwiązań na publiczny dostęp - a jak chcemy mieć sami dostep z zewnątrz to polecam VPN ( zero-tier, tailscale )
Ja osobiście polecam teraz wykonać restart RaspberryPi a po poprawnym ruchomieniu wykonac kopie zapasową naszego obrazu.
Teraz zanim cokolwiek dalej zrobisz prosze wyjmij kartę z RaspberryPi i zrób kopię zapasową, oczywiście najpierw warto zamknąc system komendą sudo shutdown now
Alternatywny Dashboard
Do pobrania w sekcji Obrazy.
W najbliższym czasie pojawi się opis dashboardu Marcina M0IQF
Warto pamiętać, że większość sieci oferuje gotowe obrazy systemu – i jak najbardziej polecam skorzystanie z takiego rozwiązania, zwłaszcza na początek.
Niemniej jednak uważam, że samodzielne przejście przez cały proces instalacji i konfiguracji pozwala lepiej zrozumieć zasadę działania SVXLinka, a przy tym daje dużą satysfakcję z faktu, że udało się wszystko zbudować własnymi siłami.
Na tej stronie znajdziesz wiele opisów różnych konfiguracji sprzętowych, ale jest jeden wspólny mianownik — Raspberry Pi Zero lub Raspberry Pi Zero W 2. Czy to oznacza, że tylko te modele są wspierane?
Nie! To po prostu najtańsza i najbardziej dostępna opcja.
Osobiście moim ulubionym modelem jest Raspberry Pi 3A+ — ma ten sam procesor co wersja 3B+, połowę pamięci RAM (co w tym zastosowaniu nie przeszkadza), a co najważniejsze — można je zasilać podobnie jak Raspberry Pi Zero W, np. bezpośrednio z gniazda zapalniczki 5 V. Dlaczego to takie ważne? Bo wersje 3B+ i nowsze często „marudzą”, gdy napięcie spadnie poniżej 5.1 V.
Ostatecznie wybór modelu Raspberry Pi to indywidualna sprawa i zależy głównie od tego, ile chcemy w ten projekt zainwestować. Ja sam używam Raspberry Pi 1 i Raspberry Pi Zero W — więc naprawdę da się to uruchomić praktycznie na wszystkim.
A że jestem wyznawcą religii BIEDA-EDYSZON, to wiadomo – im taniej, tym lepiej.
Warto też wspomnieć, że Raspberry Pi to nie jedyna platforma, na której można zbudować hotspot. Coraz większą popularność zyskują Orange Pi, głównie dzięki wbudowanej karcie dźwiękowej, co pozwala stworzyć bardziej kompaktowe rozwiązanie.
Opisywany tutaj przykład będzie oparty na Raspberry Pi Zero W 2 z nakładkową kartą dźwiękową ReSpeaker. Jest to ciekawa alternatywa dla popularnego układu CM108, a przy tym nie wymaga lutowania ani stosowania adapterów z microUSB na USB-A, co w przypadku Raspberry Pi Zero znacząco upraszcza montaż.
Dodatkowo ReSpeaker oferuje kilka interesujących możliwości — ale o tym opowiem w dalszej części.
Cały opis postaram się podzielić na sekcje tematyczne: przygotowanie systemu, instalacja, konfiguracja, podłączenie radia, instalacja dashboardu, instalacja pluginów i kilka innych.
Mam nadzieję, że taki podział ułatwi zrozumienie całości i że ten materiał okaże się dla kogoś przydatny.
Należy na wstępie wyjaśnić że instalacja svxlink niesię za soba automatyczne posiadanie svxreflector. Svxlink to aplikacja klient która służy do połączenia naszego hotspot, gateway, przemiennik z svxreflektorem który instaluje się automatycznie i jest integralną częścią całego pakietu SVX.
Zadaniem SVXreflektora jest umożliwienie klientom SVXlinkom połączenie się w sieć i tymsamym umożliwia komunikację pomiędzy sobą. A nie zawsze tak było ponieważ svxlink przez wiele lat bym głównie kontrolerem przemiennika umożliwiającym połaczenie tylko z siecią EchoLink, potem doszła obsługa sieci FreeRadioNetwork i obsługa SVXreflektor. Dlatego przypominam że svxlink i svxreflektor to jedno i każdy z tych elementów składowych ma własny plik konfiguracyjny, w przypadku svxlink jest to plik svxlink.conf a w przypadku svxreflektor ma plik svxreflector.conf
Tak więc jest to już takie ukierunkowanie że każdy z Was posiadający hotspot, przemiennik może być budowniczym własnej sieci bo ma już wbudowany SvxReflektor i jedyne co Was przed tym broni to potrzeba i możliwości zintegrowania się z pewną grupą ludzi. Wielu ludzi myśli że to jakaś kosmiczna technologia która wymaga jakiś wybitnych informatycznych umiejętności - otóż tak nie jest, i jedyne co odróżnia serwer od serwera jest jego DASHBOARD i pewne nazwijmy to modyfikacje i dodatki bez których można bez problemu pracować, a ich istnienie jest podyktowane unowoczesnieniem lub wzbogaceniem SvxReflektor o funkcje których on nie posiada w oryginale. Kończąc wątek serwera SVXreflektor to należ ywspomnieć że może być cieżko z dashboard do reflektor poniewaź istniejące publicznie albo sa toporne w instalacji , albo trochę już przedawnione , ale i na to znajdzie się rozwiązanie.
PROSZĘ NIE TRAKTOWAĆ TEGO OPISU JAKO JEDYNEGO WŁAŚCIWEGO - To moja mniej lub bardziej udana próba wyjaśnienia co i jak MOŻNA i to często wbrew elementarnej logice i jakimkolwiek zasadom elektroniki.
Traktujcie to bardziej jak DROGOWSKAZ
Cały ten opis powstał podczas budowania PiHOT 2.0 - svxlink hotspot za mniej niż 150PLN - i zaznaczam że wszelkie testy wykonywałem na Naszym testowym serwerze HUBlink ( http://portal.d4a.uk/ )
" Podczas realizacji tego materiału nie ucierpiał żaden administrator."
Wprowadzenie
Jak już zostało wspomniane, opis ten będzie oparty na Raspberry Pi Zero W 2
Oczywiście jest to bazowe rozwiązanie dlatego skupimy się na samej instalacji i konfiguracji i celowo nie bede wspominał o takich dodatkach jak moduły GPS, ekrany OLED czy dodatkowe moduły radiowe jak LoRa czy MMDVM.
Tu poprzestanę tylko na warstwie podstawowej aby nie zrobić tego opisu zbyt zawiłym.
Dlaczego RaspberryPi ? Bo to mój wybór ale może być dosłownie cokolwiek co pozwoli na instalację systemu Linux. Platformy takie jak RaspberryPi czy OrangePi lub inne zdobyły popularność dzięki posiadaniu złącza GPIO które pozwala nam na wysterowanie nadawania w radiu PTT i zwrotnie danie systemowi informacji kiedy radio coś odbiera. W tym celu potrzebny będzie nam jakiś interfejs pośredniczący dedykowany pod konkretne radia. W zalezności jakimi sygnałami dysponuje radio taki albo kupujemy lub budujemy. Nalezy pamietać że niektóre radia staruje się poprzez zwarcie do masy lub podają jakieś napięcie i nie zawsze jest to napięcie pozwalające na podłaczenie bezpośrednio pod RaspberryPi - co z resztą nie jest polecane praktycznie nigdy nie nalezy robić. Zawsze warto użyć albo tranzystorów do wysterowania GPIO lub w najprostrzej wersji przekaźnika jednokanałowego - wszystk ojest podyktowane jakie radio podłączamy.
Przygotowanie systemu to procedura samodzielnej instalacji systemu operacyjnego, i programu svxlink. Jest ona skierowana dla ludzi chcących samemu przejśc proces instalacji, kompilacji i konfiguracji
Na naszym komputerze instalujemy sobie program RaspberryPi Imager który mozna pobrać w tej strony - https://www.raspberrypi.com/software/
Wkładamy nasza kartę SD do komputera i po uruchmieniu programu pierwsze pole jakie mamy do wyboru rodzaj urządzenia, w moim przypadku RaspberryPi Zero 2W
Kolejnym krokiem jest wybór systemu operacyjnego. I tu pierwsze ostrzeżenie - NIE WYBIERAMY NAJNOWSZEJ WERSJI TRIXI, idziemy do OTHER
i wybieramy RaspberryPi OS ( Legacy, 32bit) LITE BOOKWORM - wersja LITE nie posiada pulpitu i jest idealna i sprawdzona do tego rozwiązania
Po wybraniu systemu i nastepnie karty na jakiem mamy zapisać nasz system możemy przejsc do NEXT w celu zapisu.
Wyskoczy nam okno z zapytaniem czy chcemy dokonac personalizacji naszego obrazu. Klikamy Edit Settings
W tym oknie możemy wybrac nazwę host, podać username i password które będzie używane do logowania poprzez SSH, dodatkowo wypełniamy pole naszej sieci WIFI - nazwe i hasło. Ponadto w zakładce SERVICE warto sprawdzić czy jest tam aktywna opcja SSH server.
Po dokonaniu wszystkich ustawnień możemu przejsc do "wypalenia" naszego obrazu na karcie SD
Po wgraniu systemu na karte i uruchomieniu RaspberryPi, jakimś czasie w naszej sieci pojawi się nasz fmnode. Pierwsze uruchomienie może troche trwać dlatego prosze się uzbroic w cierpliwość i jak to powiada pewien klasyk " Daj temu poleżeć"
W celu odnalezienia naszego RaspberryPi w naszej sieci lokalnej albo użyjmy skanerów sieci lokalnej albo zalogować się trzeba do routera czy innego kontrolera sieci. Znając adres IP możemy podjąc próbe połaczenia sie z nim poprzez ssh - w przypadku posiadaczy systemu Windows może być przydatny program Putty a potem WinSCP w celu wgrywania plików.
Instalacja SVXlink
Zanim przechodzimy do samej instalacji, to pierwszą aplikacją jaką instaluje jest Midnight Commander , pokolenie pamietające Norton Commander poczuje delikatną nostalgię
sudo apt install mc
Sam proces instalacji svxlink można przejść na dwa sposoby, i dlaczego zawsze wybiera się ten trudniejszy ?
Otóz można zainstalować svxlink z repozytoriu komenda :
sudo apt install svxlink-server
W dalszej czesci widzimy jakie pliki zalezności będą się instalować
Pomijając fakt że w repozytorium jest starsza wersja SvxLink ( co może być plusem ) to brakuje w niej ważnego elementu w postaci wsparcia dla biblioteki GPIOD, a to zmuszać nas będzie to starszej i moim zdaniem mniej elastycznej metody zarządzania GPIO. To jest chyba główny powód dlaczego przechodzimy proces instalacji SvxLink instalując go ze źródła co jest bardziej czasochłonne.
UWAGA !!! - opis nie jest optymalny i zautomatyzowany i jest to celowy zabieg aby wykazać jakie sa pliki współpracujące z samym svxlink, mam nadzieję że pozwoli to zrozumieć pewne zależności i kierunek gdzie można coś zmodyfikować lub zrozumieć co gdzie trzeba zmienić jeśli coś nie działa.
W terminalu najpierw wydajemy komendy aktualizacji systemu
Kod: Zaznacz cały
sudo apt update
sudo apt upgrade -y
Kod: Zaznacz cały
sudo apt install -y build-essential git alsa-utils mc
sudo apt install -y libasound2-dev g++ gcc make cmake groff gzip doxygen tar tcl
sudo apt install -y libspeex-dev libspeexdsp-dev libopus-dev libvorbis-dev
sudo apt install -y libpopt-dev libsigc++-2.0-dev python3-dev python3-pip
sudo apt install -y libgcrypt20-dev libgsm1-dev swh-plugins tap-plugins ladspa-sdk
sudo apt install -y librtlsdr-dev libjsoncpp-dev nodejs node-ws dos2unix
sudo apt install -y bc tcl-dev libgpiod2 libgpiod-dev gpiod gawk lynx curl rtl-sdr
sudo apt install -y libcurl4-openssl-dev curl libjson-perl libwww-perl net-tools sqlite3
sudo apt install -y sox libsox-dev curl python3 python3-dev python3-numpy python3-pip python3-suds
sudo apt install -y libssl-dev
Kod: Zaznacz cały
sudo apt install -y apache2 php libapache2-mod-php php-mbstring php-cgi php-common php-curl php-sqlite3 apache2-utils
W przypadku RaspberryPi komenda jest taka:
Kod: Zaznacz cały
sudo /usr/sbin/useradd -c "svxlink user" -G audio,dialout,daemon,plugdev,gpio -d /home/svxlink -m -s /sbin/nologin svxlink
Oto spis komend prowadzących nas przez proces pobrania, kompilacji i instalacji svxlink / svxreflector
Kod: Zaznacz cały
sudo -s
cd /opt
mkdir src
cd src
git clone http://github.com/sm0svx/svxlink.git
mkdir svxlink/src/build
cd svxlink/src/build
cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var -DCMAKE_BUILD_TYPE=Release ..
Ważne aby na tym etapie obserwować czy przypadkiem nie mamy komunkatu o błedzie lub że brakuje jakiegoś elementu
Kod: Zaznacz cały
make
make install
/usr/sbin/ldconfig
Musimy jeszcze utworzyć dwa pliki :
1. plik autostartu
Kod: Zaznacz cały
sudo nano /lib/systemd/system/svxlink.service
Kod: Zaznacz cały
[Unit]
Description=SvxLink repeater control software
Documentation=man:svxlink(1)
After=network.target remote-fs.target syslog.target time.target
After=rc-local.service sound.target
[Service]
EnvironmentFile=/etc/default/svxlink
PIDFile=${PIDFILE}
ExecStartPre=/bin/mkdir -p /var/run/svxlink
ExecStartPre=/bin/chown ${RUNASUSER}:${RUNASUSER} /var/run/svxlink
ExecStartPre=/bin/chmod 775 /var/run/svxlink
ExecStartPre=-/bin/touch ${LOGFILE}
ExecStartPre=-/bin/chown ${RUNASUSER} ${LOGFILE}
ExecStart=/usr/bin/svxlink --logfile=${LOGFILE} --config=${CFGFILE} --pidfile=${PIDFILE} --runasuser=${RUNASUSER}
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
TimeoutStartSec=60
TimeoutStopSec=10
#WatchdogSec=@SVX_WatchdogSec@
#NotifyAccess=main
LimitCORE=infinity
WorkingDirectory=/etc/svxlink
[Install]
WantedBy=multi-user.target
Kod: Zaznacz cały
sudo nano /etc/default/svxlink
Kod: Zaznacz cały
# This file copy to /etc/defualt/
#
# Enable Alsa zerofill if set to 1 (see manual page)
#ASYNC_AUDIO_ALSA_ZEROFILL=0
############################################################################
#
# Configuration file for the SvxLink Systemd unit file
#
#############################################################################
# The user to run the SvxLink server as
RUNASUSER=svxlink
# Specify which configuration file to use
CFGFILE=/etc/svxlink/svxlink.conf
# Where to place the log file
LOGFILE=/var/log/svxlink.log
# Where to place the PID file
PIDFILE=/run/svxlink.pid
# Enable Alsa zerofill if set to 1 (see manual page)
#ASYNC_AUDIO_ALSA_ZEROFILL=0
sudo systemctl status svxlink
sudo systemctl stop svxlink
sudo systemctl start svxlink
sudo systemctl restart svxlink
Zanim zakończymy warto dla ułatwienia sobie życia pobrać prawie gotowy plik konfiguracyjny przygotowany pod RaspberryPi i sterowanie za pomoca GPIO - pozwoli mieć to punkt wyjściowy na start i do porównania z oryginałem na przyszłość.
Najpierw wykonajmy kopię zapasowa oryginalnego pliku konfiguracyjnego komendą :
Kod: Zaznacz cały
sudo cp /etc/svxlink/svxlink.conf /etc/svxlink/svxlink.conf.bak
Kod: Zaznacz cały
sudo wget -O /etc/svxlink/svxlink.conf https://d4a.uk/git/svx/svxlink.conf
Dlatego już w tym momencie polecam każdemu po przejściu procesu kompilacji zrobić sobie kopie karty SD - aby kolejny raz już tego nie robić i nie tracić kolejnych godzin.
Dashboard
Dashboard (panel sterowania) jest wizualną nakładką graficzną (GUI), która znacząco ułatwia zarządzanie i obsługę naszego hotspotu SVXLink. W przeciwieństwie do podstawowej konfiguracji tekstowej, dashboard umożliwia intuicyjną kontrolę nad systemem.
Chociaż niewiele tego typu paneli jest publicznie dostępnych, w tym przewodniku skupimy się na procesie instalacji rozwiązania dostępnego na platformie GitHub:
Adres URL projektu: https://github.com/f5vmr/SVXLink-Dash-V2
Należy podkreślić, że prezentowana wersja jest propozycją startową, która nie jest związana z żadną konkretną siecią radiową. Oznacza to pełną swobodę w jej używaniu, testowaniu i dowolnym modyfikowaniu pod własne potrzeby.
Dashboard jest elementem wymiennym i dynamicznie rozwijanym. Społeczność krótkofalowców, zwłaszcza użytkownicy Linuxa, aktywnie wspiera ideę Open Source Software (oprogramowania otwartoźródłowego). Dzięki temu, inni entuzjaści dzielą się własnymi modyfikacjami i wariacjami, które powstają z pasji do technologii i chęci dzielenia się wiedzą, a nie dla zysków komercyjnych.
Zanim rozpoczniemy instalacje musze wspomnieć że prawie każdy dashboard wymaga dostępu do pewnych plików aby mógł działać poprawnie.
/var/log/svxlink.log - to plik log programu svxlink będacy podstawowym źródłem informacji o tym co się dzieje aby móc nam to pokazać na dashboard. Czasami niektóre projekty ogarniają plik /var/log/svxlink a nie /var/log/svxlink.log ale to wynika chyba z pewnych praktyk deweloperów.
/etc/svxlink/svxlink.conf - plik konfiguracyjny programu svxlink w którym są podane pewne dane zmienne jak nasz znak, ustawienie audio czy uruchomione moduły. Dane te są wyświetlane na dashboard.
/tmp/dtmf_svx - ten plik głównie występował w dashboard autorstwa Waldka SP2ONG i służy to wymiany informacji dashboard <-> svxlink, jaki DTMF ma być wstrzykniety do programu svxlink w ramach wybieranego za pomoca wirtualnej klawiatury DTMF czy przycisków pamięci
/var/run/svxlink/dtmf_svx - ten plik w zastępstwie za /tmp/dtmf_svx został wprowadzony przy okazji modyfikacji "Svxlink Dashboard by SP2ONG" - i tego pliku się teraz będziemy się go trzymać.
Proces instalacji
Rozpoczynamy od wykasowania zawartości katalogu html. A to że coś mamy można łatwo stwierdzić odwiedzając adres ip naszej maliny. Jest to standardowy plik pozostały po instalacji naszego serwera www.
Aby on nie kolidował z nowym dashboard trzeba wykasować zawartość katalogu /var/www/html/ - choć autor podaje aby wykasować cały katalog.
Kod: Zaznacz cały
sudo rm -r /var/www/html
Kod: Zaznacz cały
sudo git clone https://github.com/f5vmr/SVXLink-Dash-V2 /var/www/html
Niestety to nie koniec , ponieważ teraz trzeba nadać uprawnienia aby wszystkie elementy panelu sterowania działały. Zgodnie z opisem na github musimy edytować plik konfiguracyjny apache2
Kod: Zaznacz cały
sudo nano /etc/apache2/envvars
i podmieniamy www-data na svxlink w obu linijkach
Teraz zapisyjemy CTRL+X a nastepnie Y.
Następnie musimu edytować plik /usr/lib/systemd/system/apache2.service
Kod: Zaznacz cały
sudo nano /usr/lib/systemd/system/apache2.service
Następnie zapisujemy CTRL+X oraz Y dla potwierdzenia.
teraz już finalnie możemy przeładować usługe serwera www komendą
Kod: Zaznacz cały
sudo systemctl daemon-reload && sudo systemctl restart apache2
Tu należy wykonać jeszcze komendę sudo ./upgrade.sh - lecz ja pozostawiam to dla potencjalnego posiadacza tego obrazu - TAK poniżej bedzie link do pobrania obrazu z na RaspberryPi dokładnie z tego punktu . Ponieważ podczas wykonywania tej komendy trzeba podać login i hasło jakim bedzie zabezpieczony nasz dashboard przed nieautoryzowanym dostępem.
Przestrzagam !!! - aby nikt nie wpadł na pomysł że skoro dashboard ma login hasło to moge go wystawić na publiczny widok - możecie się bardzo zdziwić jak słabe jest to zabezpieczenie i ktoś zacznie Wam mieszac w konfiguracji. Nigdy, przenigdy , nigdy nie wystawiamy takich rozwiązań na publiczny dostęp - a jak chcemy mieć sami dostep z zewnątrz to polecam VPN ( zero-tier, tailscale )
Ja osobiście polecam teraz wykonać restart RaspberryPi a po poprawnym ruchomieniu wykonac kopie zapasową naszego obrazu.
Teraz zanim cokolwiek dalej zrobisz prosze wyjmij kartę z RaspberryPi i zrób kopię zapasową, oczywiście najpierw warto zamknąc system komendą sudo shutdown now
Alternatywny Dashboard
Do pobrania w sekcji Obrazy.
W najbliższym czasie pojawi się opis dashboardu Marcina M0IQF