Serwery PZK.PL: DC1-PL Katowice DC2-PL Gdańsk DC3-CZ Lhenice DC4-IT Arezzo

Instalacja trzysystemowego HotSpota na RPi w oparciu o MMDVMHost, YSFGateway oraz ircDDBGateway

[Głosów:5    Średnia:5/5]

Właśnie dotarł do mnie modem DVMega od Grzegorza SP8NTH i postanowiłem zainstalować oraz podzielić się z Wami instrukcją jak zainstalować potrzebne oprogramowanie aby Hotspot działał w trzech systemach D-Star, DMR i Fusion.

Uwaga! Aby wszystko działało poprawnie nie można pominąć żadnego kroku. Każda operacja musi być wykonana.

No to zaczynam jak zawsze od pobrania nowych repozytoriów oraz zaktualizowania systemu

sudo apt-get update && sudo apt-get upgrade

Teraz reboot naszej maliny

sudo reboot

Po zakończeniu aktualizacji systemu pobieramy najnowszą wersję MMDVMHost-a i YSFClients-a. W tym celu tworzymy folder „download” i przechodzimy do niego, a następnie pobieramy wymienione wyżej źródła. Przed pobraniem instalujemy pakiet git.

sudo apt-get install git
sudo mkdir download && cd download
sudo git clone https://github.com/g4klx/MMDVMHost.git
sudo git clone https://github.com/g4klx/YSFClients

Teraz kilka zabiegów konfiguracyjnych niezbędnych do uruchomienia DVMegi. Na początek musimy wyedytować plik /boot/cmdline.txt

sudo nano /boot/cmdline.txt

Na początek musimy zmienić znajdujący się tam wpis usuwając część danych jak na poniższym przykładzie. Należy usunąć przekreśloną zawartość.

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Wychodzimy z edytora naciskając klawisze „CTRL+X” następnie potwierdzamy chęć zapisu wciskając „Y” oraz „Enter” potwierdzając nazwę zapisywane pliku.

Teraz wypadałoby s[prawdzić jaką wersję Debiana posiadamy. Jak sprawdzić wersję? Możemy tak.

cat /etc/debian_version

W przypadku gdy posiadamy Raspbian Wheezy (czyli wersje np. 7) edytujemy plik

sudo nano /etc/inittab

Następnie odszukujemy poniższą linię (będzie gdzieś na końcu) i na początku wstawiamy znak #

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Oczywiście po wstawieniu znaku zapisujemy plik wychodząc z edytora i naciskając klawisze „CTRL+X„, następnie potwierdzamy chęć zapisu wciskając „Y” oraz „Enter” potwierdzając nazwę zapisywane pliku.

Jeżeli posiadamy wersję Raspbian Jessie (wersja np. 8) zatrzymujemy i wyłączamy serwis getty dla portu ttyAMA0  wykonując poniższe polecenia

sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

W przypadku gdy posiadamy Raspberry Pi 3 musimy także wyłączyć obsługę Bluetooth. Robimy to edytując plik /boot/config.txt i dodając na końcu dtoverlay=pi3-disable-bt. Prościej możemy tego dokonać wpisując poniższe polecenie.

sudo bash -c 'echo "dtoverlay=pi3-disable-bt" >> /boot/config.txt'

Po wykonaniu powyższych operacji przed przystąpieniem do kompilacji oprogramowania musimy wykonać restart RPi.

sudo reboot

Instalujemy niezbędny do kompilacji MMDVMHosta pakiet

sudo apt-get install build-essential

A teraz rozpoczynamy kompilację MMDVMHosta

cd download/MMDVMHost
sudo make

Jeżeli wszystko skompilowało się poprawnie i nie pokazał nam się żaden error to rozpoczynamy kompilację YSFGateway  do pracy w sieci Yaesu Fusion. Przechodzimy do pobranych źródeł YSFClients

cd /home/pi/download/YSFClients/YSFGateway

I rozpoczynamy kompliację

sudo make

Jeżeli wszystko w tym przypadku wszystko przebiegło poprawnie, nie również nie wyskoczył nam żaden error, to pozostaje nam tylko instalacja ircDDBGateway do obsługi sieci D-Star. Na początek pobieramy plik ze źródłami oprogramowania i go rozpakowujemy.

cd /home/pi/download
sudo wget http://www.sq9nfi.pzk.pl/download/ircDDBGateway-20151116.zip
sudo unzip ircDDBGateway-20151116.zip

Na tym etapie rozpoczynamy kompilację gatewaya D-Star. Na początek instalujemy konieczne do kompilacji pakiety.

sudo apt-get install g++ ccache wx-common wx3.0-headers libwxgtk3.0-0 libwxgtk3.0-dev libwxbase3.0-0 libwxbase3.0-dev libusb-1.0-0 libusb-dev libusb-1.0.0.dev portaudio19-dev libportaudio2

Teraz przechodzimy do folderu z oprogramowaniem ircDDBGateway i rozpoczynamy kompilację.

cd ircDDBGateway
sudo make
sudo make install

Automatyczne uruchamianie aplikacji

Teraz musimy stworzyć kilka plików startowych odpowiedzialnych za uruchamianie trzech aplikacji MMDVM, ircDDBGateway oraz YSFGateway.

sudo nano /lib/systemd/system/mmdvm.service

I wklejamy do niego poniższą zawartość

[Unit]

Description=MMDVM Host Service

[Service]

User=root
WorkingDirectory=/home/pi/download/MMDVMHost
ExecStart=/usr/bin/screen -S mmdvm -D -m /home/pi/download/MMDVMHost/MMDVMHost /home/pi/download/MMDVMHost/MMDVM.ini
ExecStop=/usr/bin/screen -S mmdvm -X quit
Restart=on-failure
RestartSec=5

[Install]

WantedBy=multi-user.target

Zapisujemy plik wciskając CTRL+X następnie Y oraz ENTER

Tworzymy dodatkowy plik opóźniający start MMDVM

sudo nano /lib/systemd/system/mmdvm.timer

I wklejamy poniższą zawartość i zapisujemy plik

[Timer]

OnStartupSec=10

[Install]

WantedBy=multi-user.target

Teraz zajmiemy się uruchamianiem ircDDBGateway. Jak poprzednim razem musimy stworzyć dwa pliki

sudo nano /lib/systemd/system/ircddbgateway.service

I wklejamy poniższą zawartość

[Unit]

Description=ircDDBGateway daemon Service

[Service]

User=root
WorkingDirectory=/usr/local/bin
ExecStart=/usr/bin/screen -S ircddb -D -m /usr/local/bin/ircddbgatewayd -logdir:/var/log -confdir:/etc
ExecStop=/usr/bin/screen -S ircddb -X quit
Restart=on-failure
RestartSec=5

[Install]

WantedBy=multi-user.target

Tworzymy kolejny plik

sudo nano /lib/systemd/system/ircddbgateway.timer

I wklejamy poniższą zawartość

[Timer]

OnStartupSec=60

[Install]

WantedBy=multi-user.target

Pozostało nam tylko stworzyć pliki do automatycznego uruchomienia YSFGateway

sudo nano /lib/systemd/system/ysfgateway.service

I wklejamy do niego zawartość

[Unit]

Description=YSFGateway Service

[Service]

User=root
WorkingDirectory=/home/pi/download/YSFClients/YSFGateway
ExecStart=/usr/bin/screen -S ysf -D -m /home/pi/download/YSFClients/YSFGateway/YSFGateway /home/pi/download/YSFClients/YSFGateway/YSFGateway.ini
ExecStop=/usr/bin/screen -S ysf -X quit
Restart=on-failure
RestartSec=5

[Install]

WantedBy=multi-user.target

I ostatni plik jak musimy stworzyć

sudo nano /lib/systemd/system/ysfgateway.timer

Wklejamy do niego zawartość

[Timer]

OnStartupSec=30

[Install]

WantedBy=multi-user.target

Na koniec musimy doinstalować jedną paczkę.

sudo apt-get install screen

I poinformować system że nasze pliki startowe są przygotowane do uruchamiania.

sudo systemctl daemon-reload

sudo systemctl enable mmdvm.timer
sudo systemctl enable ircddbgateway.timer
sudo systemctl enable ysfgateway.timer

I to już wszystko. Teraz po restarcie nasze aplikacje automatycznie zostaną uruchomione. Tak więc restartujemy malinę.

sudo reboot

Możemy również uruchamiać, zatrzymywać oraz sprawdzać stan pracy naszych aplikacji ręcznie poprzez wpisanie jednego z poniższych poleceń.

sudo systemctl start mmdvm
sudo systemctl stop mmdvm
sudo systemctl status mmdvm

sudo systemctl start ircddbgateway
sudo systemctl stop ircddbgateway
sudo systemctl status ircddbgateway

sudo systemctl start ysfgateway
sudo systemctl stop ysfgateway
sudo systemctl status ysfgateway

Podczas sprawdzania statusu pracy naszej aplikacji będziemy widzieli czy jest uruchomiona czy też nie. Będzie to widać w sposób przedstawiony na poniższych zdjęciach.

Jeżeli chodzi o instalację oprogramowania to w zasadzie już wszystko co jest nam potrzebne mamy zainstalowane. Kolejnym krokiem jest konfiguracja MMDVMHosta, ircDDBGateway-a i YSFGateway-a. Szczegóły konfiguracji znajdziecie w następnej części dotyczącej konfiguracji i uruchomienia HotSpota.