LogoHam

Instalace základních komponent systému Pi-star

Obsah:

  1. Instalace skriptů Andyho Taylora
  2. Instalace služeb - daemonů
  3. Instalace Dashboardu

Pro jistotu zde ještě jednou zdůrazním, že tohle není běžný postup instalace hotspotu s programem Pi-star. Kdo chce jen rozchodit hotspot, stáhne si hotový obraz systému v souboru img, nahraje jej na kartu postupem popsaným v článku Instalace img a nastaví si svoje vysílací paramerty. Tohle je studijní postup pro zvídavé, které zajímá, co všechno v souboru img je a jak to vlastně funguje.

1. Instalace skriptů Andyho Taylora

Skripty Andyho Taylora jsou jakýmsi řídícím centrem systému Pi-star. Především vytváří a ovládají služby. Ale také propojují Dashboard s těmito službami a tím umožňují uživateli s jednotlivými subsystémy pracovat. Bohužel netuším, jak jsou jednotlivé skripty staré. Takže nelze posoudit, jakou verzi Pi-staru vytváříme. Ale to v tuto chvíli není důležité.

Nejprve z webu projektu stáhneme zdrojové texty programem Git.
git clone https://github.com/AndyTaylorTweet/Pi-Star_v4_Binaries_Bin
git clone https://github.com/AndyTaylorTweet/Pi-Star_Binaries_sbin.git
Potom je nakopírujeme do správných adresářů a nastavíme správné příznaky souborů.
sudo cp -r Pi-Star_v4_Binaries_Bin/. /usr/local/bin
sudo chmod +x /usr/local/bin/
sudo cp -r Pi-Star_Binaries_sbin/. /usr/local/sbin/
sudo chmod +x /usr/local/sbin/

2. Instalace služeb - daemonů

Instalace služeb je zásadní pro zprovoznění Pi-star. Jednotlivé služby jsou sice na sobě navzájem nezávislé z pohledu instalace a nastavení, zato jsou přímo závislé na praktikách kernelu (jádra) operačního systému a tedy na jeho verzi. Tohle zdůrazňuji, protože nová - jiná verze OS bude nejčastější příčinou našich neúspěchů. Změny mezi současnou verzí kernelu 6 (platí 4.5.2025) a používanou verzí 5 v originálních souborech img (platí 4.5.2025) jsou veliké. Příkladem budiž změna Pythonu z verze 2.7 na zpětně nekompatibilní verzi 3.x. V tuhle chvíli doufám, že zmíněné nekompatibility se nebudou týkat našich pokusů.

2.1 Instalace služby nextiondriver
Služba nextiondriver zprostředkovává komunikaci s displejem. Nejprve nainstalujeme program.

git clone https://github.com/on7lds/NextionDriver.git
cd NextionDriver
make -j4
sudo make install
cd ..

Pak nastavíme nextiondriver jako službu.
sudo nano /lib/systemd/system/nextiondriver.service
Obsah souboru:
[Unit]
DefaultDependencies=no
Description=NextionDriver service
Before=timers.target mmdvmhost.service
After=local-fs.target wifi-country.service

[Service]
User=root
WorkingDirectory=/usr/local/etc/
Type=forking
ExecStart=/usr/local/sbin/nextiondriver.service start
ExecStop=/usr/local/sbin/nextiondriver.service stop
ExecReload=/usr/local/sbin/nextiondriver.service reload

[Install]
WantedBy=multi-user.target network-online.target

A zkusíme službu spustit.
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable nextiondriver.service
sudo systemctl start nextiondriver.service
Kontrola, jestli služba běží.
sudo systemctl status nextiondriver
Výpis případných chyb:
sudo journalctl -u nextiondriver.service --no-pager
Pokud je služba loaded, ale inactive, znamená to, že je připravená k použití. To v tuto chvíli stačí.

Upozornění: Příkazy typu "sudo systemctl status ..." se někdy neukončí a zůstanou "viset" ve výpisu. V tom případě se vrátíme na příkazový řádek kombinací kláves Ctrl+C.

2.2 Instalace služby MMDVMHost
Tohle je klíčový bod celého systému. Pokud se služba MMDVMHost rozběhne, máme vyhráno. Je potřeba ji nainstalovat ještě před webovou aplikací Dashboard. Služba pracuje jako uživatel mmdvm. Proto jej nejprve vytvoříme.
sudo useradd -m -s /bin/bash mmdvm
Nového uživatele přidáme do skupin dialout spi a i2c
sudo usermod -a -G dialout mmdvm
sudo usermod -a -G spi mmdvm
sudo usermod -a -G i2c mmdvm
a zkontrolujeme, že je do těchto skupin opravdu zařazen.
groups mmdvm
Pak nainstalujeme program
git clone https://github.com/g4klx/MMDVMHost.git
cd MMDVMHost
make -j4
Tento překlad může hlavně na pomalejších SD kartách trvat opravdu dlouho. Proto je použitý parametr -j4, který říká, že pro překlad je možné použít všechna 4 jádra počítače Rpi3. Protože Rpi zero má jen dvě jádra, bude pro ni tento parametr mít tvar -j2. S parametrem -j musíte nakládat opatrně. Pokud pro něj není příkaz make správně přizpůsoben, bude generovat chyby a zdrojový text se nepřeloží.
sudo make install
Do adresáře /etc/ musíme umístit konfigurační soubor mmdvmhost. Ten nakopírujeme z adresáře se zdrojovým textem, kde se jmenuje MMDVM.ini.
sudo cp MMDVM.ini /etc/mmdvmhost
V tomto souboru je nastavená cesta pro logovací soubor /var/log/pi-star pokud ještě neexistuje, musíme ho vytvořit.
sudo mkdir /var/log/pi-star
Povolíme službě přístup k inicializačnímu souboru.
sudo chmod -R 644 /etc/mmdvmhost
a nakonec se vrátíme do původního domácího adresáře
cd ..

Tato služba ke správnému chodu potřebuje ještě další soubory:

  • APRSHosts.txt - seznam serverů APRS
  • RSSI.dat - převodní tabulka jednotek síly signálu.
  • DMRIds.dat - je v podstatě jednoduchý contact list. Tedy ID uživatele, jeho volací znak a jméno. 
  • DMR_Hosts.txt - seznam serverů, kam se služba přes internet připojuje. Pokud chceme komunikovat se serverem Odsky, musíme sem dopsat správné údaje.

Všechny soubory si můžeme vytvořit známým textovým editorem nano.

sudo nano /usr/local/etc/APRSHosts.txt
Obsah souboru:

; APRS_Hosts.txt downloaded from http://www.pistar.uk/downloads/APRS_Hosts.txt
; File created at Wednesday 12th of Feb 2025 9:00 PM
rotate.aprs2.net:14580;Universal connection for Global Loadbalance
noam.aprs2.net:14580;Universal connection for servers in North America
soam.aprs2.net:14580;Universal connection for servers in South America
euro.aprs2.net:14580;Universal connection for servers in Europe and Africa
asia.aprs2.net:14580;Universal connection for servers in Asia
aunz.aprs2.net:14580;Universal connection for servers in Oceania
aprs1.hamnet.cloud:14580;HAMNET datacenter Nuernberg
aprs2.hamnet.cloud:14580;HAMNET datacenter Duisburg-Essen
aprs3.hamnet.cloud:14580;HAMNET datacenter Aachen
aprs.hc.r1.ampr.org:14580:Universal Connection for Global Hamnet Loadbalance

sudo nano /usr/local/etc/RSSI.dat
Obsah souboru:

# This file maps the raw RSSI values to dBm values to send to the DMR network. A number of data
# points should be entered and the software will use those to work out the in-between values.
#
# The format of the file is:
# Raw RSSI Value dBm Value
#
#
# RSSI Default Values for MMDVM_HS
#
43 -43
53 -53
63 -63
73 -73
83 -83
93 -93
99 -99
105 -105
111 -111
117 -117
123 -123
129 -129
135 -135
141 -141

sudo nano /usr/local/etc/DMRIds.dat
Příklad obsahu souboru: 

1023028 VA3API Kevin
1023030 VE3OZT Alexander
1023031 VA3PMR Perry Marvin
1023032 VE3TJD Tedd
1023033 VE3YES Andrew James

Struktura souboru je: ID_uživatele Volačka Jméno. Položky jsou oddělené mezerou. Bez tohoto souboru se v dashboardu budou místo jména zobrazovat jen čísla ID.

sudo nano /usr/local/etc/DMR_Hosts.txt
Příklad obsahu souboru:

BM_2001_Europe_HAMNET 2001 44.148.230.201 passw0rd 62031
BM_2001_Europe 2001 2001.master.brandmeister.network passw0rd 62031

Struktura souboru je: Název_serveru ID IP_nebo_hostname Heslo Port. Položky jsou oddělené mezerou. Pokud tyto údaje znáte pro síť Odsky, dopište si je sem.

Teď už můžeme program mmdvmhost spustit jako službu.
Vytvoření spouštěcího souboru
sudo nano /lib/systemd/system/mmdvmhost.service
Obsah souboru:

[Unit]
Description=MMDVMHost Radio Servce
After=syslog.target network.target
Requires=nextiondriver.service

[Service]
Type=forking
ExecStart=/usr/local/sbin/mmdvmhost.service start
ExecStop=/usr/local/sbin/mmdvmhost.service stop
ExecReload=/usr/local/sbin/mmdvmhost.service restart

[Install]
WantedBy=multi-user.target

Spuštění nové služby:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable mmdvmhost
sudo systemctl start mmdvmhost
Kontrola stavu služby:
sudo systemctl status mmdvmhost
Výpis případných chyb:
sudo journalctl -xeu mmdvmhost.service --no-pager
A opět platí, že pokud je služba loaded, ale inactive, znamená to, že je připravená k použití. To v tuto chvíli stačí.

2.3 Služba mmdvmhost.timer
sudo nano /lib/systemd/system/mmdvmhost.timer
Obsah souboru:

[Timer]
OnStartupSec=30

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable mmdvmhost.timer
sudo systemctl start mmdvmhost.timer

sudo systemctl status mmdvmhost.timer

3. Instalace Dashboardu
Po všech těch předchozích podpůrných krocích můžeme konečně nainstalovat vlastní uživatelské rozhraní, tedy web Dashboard Andyho Taylora. Instalace webové aplikace Dashboard představuje její stažení z webu autora
sudo git clone https://github.com/AndyTaylorTweet/Pi-Star_DV_Dash.git
a nakopírování do pracovního adresáře webového serveru nginx.
sudo cp -R Pi-Star_DV_Dash/. /var/www/dashboard/
Pro jistotu nastavíme práva ke všem novým adresářům a souborům.
sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www

Po spuštění Dashboard očekává minimálně ještě jeden soubor a to /etc/pistar-release. Zatím jej vyrobíme experimentálně na zkoušku:
sudo nano /etc/pistar-release
Obsah souboru:

[Pi-Star]
Pi-Star_Build_Date =
Version = 4.1.0
ircddbgateway =
dstarrepeater =
MMDVMHost =
kernel =
Hardware =

Verzi 4.1.0 jsem zvolil zcela náhodně. Nejspíš to bude mít vliv na menu "update" a "upgrade" na dashboardu. Nevyplněné položky se během mých pokusů nikdy nedopsaly, takže zatím netuším, k čemu jsou potřeba. Teď už můžeme dashboard vyzkoušet. Do libovolného webového prohlížeče zadáme adresu našeho hotspotu: http://pi-star

Na úvodní stránce se vypíše oznámení No Mode Defined...
Po chvíli se web sám přepne na stránku Configuration. Požadované heslo je stále to, které jsme si zvolili při nahrávání SD karty.

Vychutnejte si tuto chvíli. Je to náš první úspěch.

Žádné komentáře

Zanechat komentář

Odpověď na Some User

E-mail: hugocz@jevicko.org Lokátor: JN89IP