Dość duże możliwości w pracy APRS daje wykorzystanie do tego celu Linuxa.
Można pod jego kontrolą uruchomić program Xastir, pozwalający na pracę w APRS, napisany specjalnie dla tego systemu i będący alternatywą dla programu UI-view pracującego w środowisku Windows.
Można pod jego kontrolą uruchomić sewer APRS przy pomocy takich programów jak aprsd, DigiNed, javAPRSSrvr czy nawet przy pomocy wymienionego wyżej Xastir-a.
W zależności od wymagań używanych programów, mogą one komunikować się z modem Packet Radio bezpośrednio poprzez port szeregowy lub równoległy komputera, za pomocą wbudowanej obsługi różnych modeli modemów, albo mogą też komunikować się z nimi za pośrednictwem jądra linuxa z wkompilowaną w nie obsługą protokołu AX25.


Opis poniższy będzie przedstawiał wykorzystanie sterowników dołączanych do jądra linuxa w pracy z ax25 i APRS. Nie będzie on zawierał szczegółowej instrukcji instalacji systemu i kompilacji jądra z modułami, ponieważ takich opisów jest dość dużo w sieci, a poza tym procedura instalacji zależy często od wybranej dystrybucji linuxa.
Opis oparty jest na doświadczeniach z linuxem z dystrybucji Debian i jądrem w wersji 2.4.x.

  • Wybór i instalacja systemu

    W tej chwili jest bardzo wiele dystrybucji Linuxa. W zasadzie każda  z nich będzie się nadawała do pracy z systemem APRS.
    Kiedyś na jednej se stron w internecie przeczytałem, według mnie dość mądre zdanie, że dobrze jest wybrać taką dystrybuję linuxa, jakiej używa nasz lokalny GURU. Pozwoli to na dość łatwe uzyskanie pomocy wrazie kłopotów z instalowanym systemem. W razie braku lokalnego GURU wiele informacji można znaleźć na grupach dyskusyjnych, gdzie większość problemów już miała miejsce i łatwo będzie tam znaleźć gotowe rozwiązanie własnego problemu.
    Instalacja przebiega inaczej w zależnośći od dystrybucji, ale naogół sprowadza się do zabootowania komputera z napętu CD-ROM, wybraniu opcji dotyczących lokalizacji, przygotowaniu odpowiednich partycji, wybraniu odpowiednich pakietów i instalacji programu bootującego na dysku.


  • Uzbrajanie systemu w odpowiednie sterowniki i moduły

    Jeśli podczas instalacji systemu nie zostały zainstalowane poniższe pakiety, należy to zrobić teraz.
    Należy w systemie zainstalować następujące biblioteki i oprogramowanie:
    • libax25-dev
    • libax25
    • ax25-apps
    • ax25-tools
    W debianie mozna je łatwo zainstalować poprzez apt-get.

    Po zainstalowaniu systemu konieczne też będzie przekompilowanie jądra, gdyż zazwyczaj to domyślnie instalowane nie zawiera obsługi ax25.
    Przede wszystkim dobrze jest ze strony www.kernel.org  zdobyć źródła jądra, np.  w tej chwili - 2.4.30 i rozpakować je do katalogu /usr/src/linux-2.4.30, a następnie utworzyć do niego link symboliczny /usr/src/linux.
    Teraz można przystąpić do konfiguracji jądra przed kompilacją. Po odpaleniu skryptu konfiguracyjnego (np. make menuconfig) i późniejszym zaznaczeniu opcji niezbędnych dla poprawnego działania systemu, należy przystąpić do konfiguracji składników AX25 w sekcji Amateur Radio support.

    Przykładowo może to wyglądać w ten sposób:

    [*] Amateur Radio support
    --- Packet
    Radio protocols
    <M>
    Amateur Radio AX.25 Level 2 protocol
    [*]
    AX.25 DAMA Slave support
    <M>
    Amateur Radio NET/ROM protocol
    <M>
    Amateur Radio X.25 PLP (Rose)
    AX.25
    network device drivers  --->
    <M>
    Serial port KISS driver
    <M>
    Serial port 6PACK driver
    <M>
    BPQ Ethernet driver
    <M>
    High-speed (DMA) SCC driver for AX.25
    <M>
    Z8530 SCC driver
    [*]
    additional delay for PA0HZP OptoSCC compatible boards
    [*]
    support for TRX that feedback the tx signal to rx
    <M>
    BAYCOM ser12 fullduplex driver for AX.25
    <M>
    BAYCOM ser12 halfduplex driver for AX.25
    <M>
    BAYCOM epp driver for AX.25
    <M>
    Soundcard modem driver
    [*] 
    soundmodem support for Soundblaster and compatible cards
    [*] 
    soundmodem support for WSS and Crystal cards
    [*] 
    soundmodem support for 1200 baud AFSK modulation
    [*] 
    soundmodem support for 2400 baud AFSK modulation (7.3728MHz crystal)
    [*]
    soundmodem support for 2400 baud AFSK modulation (8MHz crystal)
    [*]
    soundmodem support for 2666 baud AFSK modulation
    [*]
    soundmodem support for 4800 baud HAPN-1 modulation
    [*]
    soundmodem support for 4800 baud PSK modulation
    [*]
    soundmodem support for 9600 baud FSK G3RUH modulation
    <M>
    YAM driver for AX.25

    Przy takiej konfiguracji nie będzie trzeba przy zmianie modemu na inny kompilować od nowa jądra, ponieważ skompilowane zostaną moduły do obsługi każdego z wyżej wymienionego modemu. W razie potrzeby użycia któregoś z nich, wystarczy załadować odpowiedni moduł.

    Po skompilowaniu i instalacji jądra wraz z modułami można przystąpić do konfiguracji AX25.


  • Konfiguracja AX25

    Domyślnie pliki konfiguracyjne znajdują się w katalogu /etc/ax25

    W /etc/ax25/axports dokonuje sie wpisów dotyczących parametrów podłączonych modemów, takich jak: nazwa interface, znak pod jakim będzie nadawał modem, prędkość komunikacji pomiędzy modemem a komputerem, wartość zmiennych paclen i window oraz opis.

    Przykładowa zawartość pliku /etc/ax25/axports, dla modemu TNC z oprogramowaniem 6pack, to:

     # name callsign speed paclen window description 
    sp0     SR5XXX-7        9600    255     1       144.800 MHz (1200  bps)

    gdzie:
    • sp0 - nazwa interface
    • SR5XXX-7 - znak pod jakim będzie nadawał modem
    • 9600 - prędkość transmisji na łączu pomiędzy komputerem a modemem
    • 255 - wartość paclean
    • 1 - wartość window
    • 144.800 MHz (1200  bps)


  • Skrypty startowe

    Poniżej znajdują się przykładowe skrypty startowe oraz wpisy do pliku /etc/ax25/axports, które są różne, w zależności od tego jaki modem będzie podłączony do komputera.

    • modem BAYCOM

      /etc/ax25/axports:

       # name callsign speed paclen window description 
      BAYCOM     SR5XXX-7        1200    255     2       144.800 MHz (1200  bps)


      skrypt startowy:


       #!/bin/sh

      #załadowanie modułu ax25
      modprobe ax25

      #wyłączenie systemowej obsługi portu COM1
      setserial /dev/ttyS0 uart none

      #załadowanie modułu hdlcdrv
      modprobe hdlcdrv

      # załadowanie modułu obsługi modemu baycom oraz ustawienie parametró RSa,
      # do którego jest podłączony
      modprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4 baud="1200"

      sleep 2

      #odpalenie interface bcsf0 i konfiguracja parametrów pracy modemu
      sethdlc -i bcsf0 -a txd 150 slot 10 txtail 150 ppersist 32 half
      axparms -setcall bcsf0 SR5XXX-7 # znak zdefiniowany w /etc/ax25/axports

      #podniesienie interface sieciowego
      ifconfig bcsf0 44.165.112.133 broadcast 44.165.112.255 netmask 255.255.255.0 up


    • FOAPack w trybie KISS lub inny modem w trybie  KISS np. TNC

      /etc/ax25/axports:

      # name callsign speed paclen window description
      FOAPack      SR5XXX-7        4800    255     1       144.800 MHz (1200  bps)

      skrypt startowy:

      #!/bin/sh

      #załadowanie modułu mkiss
      modprobe mkiss

      sleep 1

      #zainicjowanie interface FOAPack
      /usr/sbin/kissattach /dev/ttyS0 FOAPack 44.165.112.133

      sleep 1

      #ustalenie parametrów pracy modemu
      /usr/sbin/kissparms -p FOAPack -f n -l 50 -r 32 -t 400 -s 200



    • TNC z oprogramowaniem 6Pack

      /etc/ax25/axports:

      # name callsign speed paclen window description
      sp0           SR5XXX-7        9600    255     1       144.800 MHz (1200  bps)

      skrypt startowy:

      #!/bin/sh

      #załadowanie modułu ax25
      nsmod ax25

      sleep 1

      #załadowanie modułu 6pack
      insmod 6pack

      sleep 1

      #zainicjowanie interface sp0 (-6 włącza obsługę 6pack)
      kissattach -6 /dev/ttyS0 sp0 44.165.112.14

      sleep 1

      #podniesienie interface sieciowego
      ifconfig sp0 44.165.112.14 netmask 255.255.255.255 mtu 512 up

      sleep 1

      #ustalenie parametrów pracy modemu
      kissparms -p sp0 -t 400 -s 100 -r 25


  • Testy

    Po instalacji systemu oraz przygotowaniu odpowiednich skryptów startowych można przystąpić do testów.
    Program listen pochodzący z pakietu ax25-apps pozwala na podgląd ruchu w eterze. Można go uruchomić w następujący sposób:

    listen -t -c

    parametr -t powoduje wyświetlanie czasu przy odebranych ramkach, a parametr -c włącza program listen w trybie kolorowym.
    Po wydaniu powyższej komendy powinno być widać na konsoli ramki nadawane przez inne stacje.

    Drugim przydatnym programem może być program call, za pomocą którego można spróbować się połączyć z inną stacją, np. z lokalnym BBS-em.
    Program ten uruchamia się w następujący sposób:

    call FOAPack SR5XXX

    Po call należy podać nazwę wcześniej zainicjowanego interface, zgodną z nazwą podaną w pliku /etc/ax25/axports
    Po uruchomieniu programu call modem powinien próbować się połączyć z drugą stacją.

    Innym przydatnym programem, który pozwala sprawdzić poprawność pracy systemu jest program beacon, który uruchamiamy tak:

    beacon -t 30 FOAPack "Test ax25 w linuxie"

    -t 30 odpowiada za odstęp między kolejnymi powtórkami, pomiędzy nadawaniem beaconów, następnie należy podać nazwę interface sieciowego, przez który ma być ten beacon nadawany i na końcu treść beaconu.



Jak instalacja się udała, wszelkie testy przebiegły pomyślnie, można pomyśleć o poważniejszym zastosowaniu zainstalowanego systemu. Przy tak przygotowanym systemie można pomyśleć o wykorzystaniu go z programami do obslugi APRS lub jako węzeł Packet Radio lub TCP/IP. Można też go wykorzystać do pracy z programem Xastir, który pozwala obserwować stacje pracujące w systemie APRS oraz pozwala zaistnieć w tym systemie.

Powodzenia w instalacji!