Obraz systemu Debian na komputer jednopłytkowy ALIX z uzupełniem o programy radioamatorskie
APRX, Direwold, MMDVMHost, SvxLink i inne
Zacznijmy więcj od "Inwektywy ogólnikowej, którą można przypisać każdemu". Poziom merytoryki na forum sp7pki sięgnął już dwóch metrów mułu na dnie. Aby więc nieco rzucić kontrast na wiecznych pianobijców i innych "zasłużonych działaczy" oraz "wybitnych DXmanów" przedstawiam to co przygotowałem ostatnio po godzinach.

http://pogoda.cc/d/ama-jesse-alix_hostapd.img.gz


~~~~~~~~~~~~~~~~~~~~~~~~~~
Dane logowania do systemu
login: alixadmin
hasło: alix

Przełączanie się na root
polecenie 'su'
hasło: alix
~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~
WSTĘP
~~~~~

Od kilku lat rekordy popularności u wszelakiej maści amatorów bije oczywiście Raspberry PI i w nieco mniejszym stopniu cały szereg jego klonów, takich jak BananaPI, OrangePI i innych. Nie wszyscy jenak zdają sobie sprawę z faktu, że historia tzw. komputerów jednopłytkowych (SBC - Single board computer) zaczęła się duuuużo wcześniej, bo w zasadzie jeszcze w latach 80tych, w których powstał np powszechny do dzisiaj standard PC/104. Oczywiście do momentu pojawienia się RaspberryPi wszelakiej maści SBC nie były projektowane i reklamowane jako urządzenia dla domowych eksperymentatorów, były chociażby za drogie aby mógł sobie na nie pozwolić standardowy dłubacz.

Jednym z takich "ojców" RaspberryPI jest cała seria płytek ALIX produkowanych przez szwajcarską firmę PC Engines. Ze względu na bogate wyposażenie w porty FastEthernet oraz sloty mPCI są one dedykowane dla wszelakich zastosowań sieciowych, były też swego czasu bardzo popularne wśród dostawców internetu bezprzewodowego. Teraz ze względu na ich niewystarczającą wydajność (i brak portów GigabitEthernet) trafiają na rynek wtórny, przez co można je zakupić często za kwoty wielokrotnie mniejsze niż nowe RaspberryPI.

Każda płytka z serii ALIX jest wyposażona w zgodny z architekruą x86 procesor AMD GeodeLX800 z zegarem 500MHz i 256MB DDR RAM. Posiadają one również dwa porty USB2.0 i jeden port RS232 na standardowym gnieździe DB9. Poszczególne modele różnią się od siebie ilością portów mPCI i FastEthernet. Niektóre posiadają wyprowadzone wyjście wideo VGA, kartę dźwiękową czy nawet duży slot PCI.Więcej informacji można uzyskać na stronie internetowej producenta: https://www.pcengines.ch/alix.htm . Czym więc różni się ALIX od popularnego Raspberry PI? Przede wszystkim architekturą. Raspberry PI działa w oparciu o różne mikroprocesory firmy Broadcom wykorzystujące wariacje architektury ARM (ARM11/Cortex-A7/Cortex-A63). ALIX posiada 32bitowy procesor zgodny z architekturą x86, czyli taką samą jak używana w zwykłych komputerach PC. Należy jednak pamiętać, że GeodeLX800 jest w pewnym sensie odpowiednikiem Pentium II - oznacza to, że nie wspiera on rozszeżenia SSE (Stream SIMD Extensions) i nie będzie w stanie uruchomić aplikacji skompilowanych z jego użyciem. Procesor po prostu nie będzie rozumiał kodów rozkazów zawartych w słowach maszynowych programu. Dlaczego to takie istotne zostanie wyjaśnione w dalszej części.

Płytka ALIX jest bardzo energooszczędna. Do standardowego wtyku DC-Jack (a nie microUSB co jest dużą zaletą) można podać napięcie stałe z zakresu 7V do 17V. Przy 12V zasilania płytka pobiera 330mA w bezczynności (CPU load < 10%), oraz 450mA przy pełnym obciążeniu. Jest to bardzo mało biorąc pod uwagę, że procesory x86 nigdy nie były specjalnie energooszczędne.

Obraz bazuje na systemie Debian GNU/Linux wersja Jesse z kernelem 3.16 - konkretniej jako podstawę do przygotowania tego obrazu posłużył mi Jessie4Alix (autor: Alejandro Olivan). Jak niektórzy zauważą nie jest to najnowsza wersja ani dystrybucji ani Kernela. Przyczyna jest wytłumaczona przez samego Alejandro Olivana i leży właśnie w samym procesorze AMD Geode. Nowsze kernele i nowsze wersje Debiana bazują już na architekturze 686, czyli wymagają aby procesor wspierał w pełni instrukcje SSE. Bez nich ujżymy kernel panic na bardzo wczesnym etapie rozruchu. Słowem niby x86 ale nie do końca wesoły


~~~~~~~~~~~~~~~~~~~~~
BIOS I PORT SZEREGOWY
~~~~~~~~~~~~~~~~~~~~~

Płytki ALIX mogą posiadać dwie różne wersję BIOS. Może to być albo znany z PC AwardBIOS (dla płytek z wyjściem VGA) albo tinyBIOS dla pozostałych. W przypadku tinyBIOS port szeregowy jest używany jako jego konsola (38400bps,8,N,1) i podczas uruchamiania będą tam pojawiały się komunikaty przezeń generowane. Jeżeli port RS232 miałby być wykorzystywany do podłączenia zewnętrznego urządzenia (np. modemu TNC) i jakakolwiek transmisja przy starcie wpływała by negatywnie na pracę tegoż urządzenia, można zmienić ustawienia BIOS i wyłączyć jego wyjście. Ponowne przywrócenie dostępu do BIOS wymaga zresetowania go do ustawień domyślnych przy pomocy znajdującego się na płytce ALIX przycisku. 


~~~~~~~~~~~~~~~~~
PRACA JAKO ROUTER
~~~~~~~~~~~~~~~~~

Obraz systemu jest skonfigurowany w sposób, w którym pełni on dodatkowo rolę routera. Pierwszy port FastEthernet (eth0) znajdujący się po stronie gniazda zasilania jest traktowany jako WAN i tam należy podłączyć Internet. Domyślnie WAN oczekuje otrzymania adresu IP przez klienta DHCP. Jeżeli dostęp do Internetu wymaga ręcznego podania statycznego adresu IP należy zmodyfikować plik /etc/network/interfaces zgodnie z instrukcją podaną w dalszej części pliku.

Pozostałe porty FastEthernet są ze sobą zmostkowane i pracują jako LAN z włączonym serwerem DHCP. Testy wykazały, że ściąganie pliku z prędkością 50Mbps powoduje wzrost obciążenia procesora o jedynie 10%. Można więc spokojnie stwierdzić, że ograniczeniem prędkości będa raczej porty FastEthernet o prędkości jedynie 100Mbps a nie wydajność samej płytki.

ALIX posiada dodatkowo jeden bądź dwa sloty mPCI, których można użyć do instalacji karty WiFi. Dzięki obecności pakietów wpa_supplicant i hostapd można ją skonfigurować albo jako klienta innej sieci WiFi albo jako punkt dostępu. Do tego celu zalecaną są przede wszystkim karty WiFi wyposażane w układy Atheros (np Mikrotik R52). Oprócz samej karty WiFi na mPCI potrzebny będzie pigtail posiadający z obu stron odpowiednie złącza RF (najczęściej uFL z jednej i RP-SMA z drugiej) oraz antenka. Jednakowoż instrukcja ta nie obejmuje w ogóle konfiguracji WiFi.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LISTA ISTOTNEGO OPROGRAMOWANIA:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Poniżej znajduje się lista ważniejszych programów w tym obrazie wraz z informacją o konfiguracji i autostarcie.

strzałka Aprx - (uruchamia się przy starcie ale jest w zasadzie nieskonfigurowany, oprócz połączenia do serwera APRS-IS) - Wg mnie najlepszy program APRS obsługujący modemy KISS. Umożliwia pracę jako digi, dwukierunkowy igate. Do tego generuję bardzo czytelne logi, oraz telemetrię zawierającą ilość odbieranych i nadawanych ramek. Możliwa łatwa integracja ze stacją pogodową ze względu na możliwość nadawania ramek z zewnętrznego pliku tekstowego.

strzałka Direwolf - (autostart wyłączony, skonfigurowana jedynie karta dźwiękowa. Po odkomentowaniu w cron będzie działał lokalnie) - Program nieco podobny funkcjonalnie do APRX ale wykorzystujący wyłącznie własny soundmodem. Podobnież jak poprzednik może pracować jako digi i igate. Umożliwia też zdalne połączenie się z użyciem protokołu AGW Packet Engine (łączyć się z nim może Ui-View32, APRSIS/CE albo Xastir). Niestety nie generuje własnej telemetrii ani nie wspiera stacji pogodowych. Logi są mało czytelne, a przede wszystkim ze względu na procesor ma on pewien mankament o którym później.

strzałka MMDVM Host - (uruchamia się przy starcie, łączy się do polskiego Brandmeistera i MMDVM na porcie /dev/ttyAMA0. Ma włączoną obsługę DMR ale do działania wymaga podedytowania /etc/MMDVM.ini) - Aplikacja host-side dla Multi Mode Digital Voice Modem (MMDVM). Jej ustawienia zależą silnie od zastosowanych radiotelefonów i zestrojenia toru analogowego w płytce MMDVM dlatego nie da się tutaj podać działających od razu ustawień. Dodatkowo w momencie włączania obsługi D* i SYF (a konkretnie warstwy sieciowej) należy przeczytać informację o iptables aby zapewnić bezproblemowe działanie po sieci.

strzałka SvxLink - (autostart wyłączony, brak konfiguracji) - W uproszczeniu można powiedzieć, że jest to linuksowy odpowiednich Echolink, choć sam program ma o wiele większe możliwości. Może np. pracować jako sterownik przemiennika analogowego, choć moim zdaniem jest to absolutnie niezalecane przez zbyt dużą komplikację i niezawodność takiego rozwiązania. Svxlink jest zainstalowany w katalogu /usr/local. Jego pliki konfiguracyjne znajdują się w /usr/local/etc

strzałka Klient OpenVPN - (autostart wyłączony, wymaga podania adres IP serwera, nazwy użytkownika/hasła oraz wgrania pliku ca.crt). Użycie tunelowania VPN umożliwia dostep do systemu i urządzeń w sieci wewnętrznej z zewnątrz bez posiadania publicznego adresu IP, który zresztą nie jest wymagany do poprawnej pracy w APRS i DMR. Dodatkowo VPN zapewnia bezpieczną i szyfrowaną komunikację, bardzo ważną z punktu widzenia aplikacji amatorskich, które pod tym względem są delikatnie mówiąc 'podatne' i 'kiepsko zabezpieczone'. Aby użyć funkcjonalności klienta VPN nalezy posiadać oczywiście serwer (koncentrator). Konfiguracja jest przygotowana do łączenia do koncentratora uruchomionego na Mikrotik RouterOS.

strzałka Quagga - (autostart wyłączony). Quagga jest demonem odpowiedzialnym za obsługę routingu dynamicznego. Może obsługiwać wszystkie używane protokoły czyli: RIP, OSPF, OSPFv3, BGP, IS-IS. Dzięki routingowi dynamicznemu informacja o sieci wewnętrznej obsługiwanej przez ALIX zostanie automatycznie rozgłoszona (w domyśle o chodzi tutaj o rozgłoszenie wewnątrz sieci VPN), co umożliwi dostęp do wszystkich urządzeń z dowolnego jej miejsca. Pozwala to uniknąć ręcznego podawania wszystkim routerom statycznych tras, oraz używania ordynarnego przekierowania portów co jest po prostu nieprofesjonalne i docelowo może łatwo doprowadzić do problemów z poprawnym działaniem. Quagga jest konfigurowana przy pomocy dedykowanej linii komend i składki de facto identycznej z routerami Cisco. Quagga będzie raczej używana przez naprawdę zaawansowanych użytkowników, którzy zarządzają siecią wielu przemienników, czy innych stacji automatycznych i chcą mieć do wszystkich wygodny dostęp, w ramach konwergentnej infrastruktury.

strzałka Skrypt konfiguracji przekierowań portów - (autostart włączony) - Na samym końcu uruchamiania systemu znajduje się wywołanie skryptu /etc/rc.local, który konfiguruje w iptables przekierowania portów dla najczęściej wykorzystywanych usług. Iptables jest to narzędzie do konfiguracji systemowego filtra pakietów (w uproszczeniu można tu użyć słowa firewall). W linuksie routing i filtrowanie pakietów IP (i ich ewentualne modyfikacje) odbywa się na poziome kernala - jądra systemu. Iptables jest programem używanym do jego konfiguracji z poziomu przestrzeni użytkownika. Iptables jest jednym z najbardziej podstawowych programów systemowych i w zasadzie nie da się zainstalować systemu nie instalując iptables. Skrypt /etc/rc.firewall zawiera przekierowania dla usług takich jak: D-Star, SYF, Echolink. Każda z usług jest przekierowana na inny adres IP w sieci wewnętrznej. Wystarczy więc np. na komputerze z uruchomionym programem Wires-X do obsługi SYF ustawić stosowny adres IP (tu 172.28.255.200) i Wires-X powinien automatycznie uzyskać pełną komunikację.

strzałka Serwer DHCP - (autostart włączony) - Umożliwia automatycne przydzielanie adresów IP dla urządzeń podłączonych do pozostałych portów FastEthernet (eth1 i eth2) jeżeli płytka w ogóle takowe posida.


  PRZEJDŹ NA FORUM