Linux pseudo-terminál a využítí pro ax25

 

Tento článek se bude věnovat nastavení pseudo terminálu a jeho využítí pro AX25, aneb o tom jak správně připojit igate k digině.

 

Jak máte připojenou svojí igate k diginedu? Většina sysopů asi využívá stejného ax25 portu pro digi (např. digi_ned) a igate (aprsd, is2rf.sh) na kterém sedí též modem (baycom, TNC). Pakety pro a z igate vůbec nejsou zpracovány diginou, což je špatně. V cestě pak úplně chybí z kterého gejtu byl paket vyslán. Igate to posílá s nastavenou cestou v .conf přímo na rádio místo toho, aby to lokálně zpracovala digi a následně odeslala se MYCALL*, PATH-1 na rádio. A jak tedy na to?

Manuál k diginedu praví toto:

alt

převzato: digined.pe1mew.nl/

Modem (Radio) sedí na /dev/ttyS0 (fyzický seriový port), což je interface bc0 a AX.25 port 1k2. Následně je jsou vytvořeny vitrualní seriové porty (pseudo-terminál) /dev/ttyq1 resp. /dev/ttyq2. Tyto pseudo terminály maji master (/dev/ptyq*) a slave (/dev/ttyq*) konce. Na master konci sedí kissnetd, který nedělá nic jiného než je propojí oba pseudo-terminály dohromady. A na slave konce se pak posadí příkazem kissattach AX.25 porty ldigi a lgate. Následně na tyto porty se teprve připojuje digi_sw a igate_sw. V této konfiguraci bychom tedy digined spouštěli s parametrem -p 1k2 -p ldigi a aprsd by měl v aprsd.conf řádek tncport lgate.

 

Ale pozor! /dev/ttyq* a /dev/ptyq* jsou statické pseoudoterminály, které jsou ve starších jádrech linuxu. V novějších se používají dynamické pseudo-terminály /dev/ptmx a /dev/pts/* Což funguje asi tak, že spuštěním master /dev/ptmx s vytvoří slave /dev/pts/1 2 3 atd. To přináší dva problémy. 1) nevíme jaké označení bude mít vytvořený pseoudo-terminál (nejnižší volné číslo). 2) distribuční verze ax25-tools, ax25-apps, libax25 neumí s dynamickými terminály pracovat!

 

A jak na to?

1) stáhnout a nainstalovat (případně zkompilovat) patchnuté balíčky

ax25-apps-0.0.8-rc2
ax25-tools-0.0.10-rc2
libax25-0.0.12-rc2

f6bvp.free.fr/logiciels/ax25/ pro debian je možné stáhnout rovnou balík deb.

vytvořené binárky v /usr/local/(s)bin je asi vhodnější překopírovat do /usr/(s)bin, kde se přepíšou starší verze. Patchnuté baličky si sahají na axports do /usr/local/etc/ax25 proto je vhodné vytvořit symlink do /etc/ax25 např ln -s /etc/ax25/axports /usr/local/etc/ax25/axports

2) do inicializačního konfiguráku pak přidat něco v tomto smyslu:

 Example 2 Connecting several kissattach with kissnetd (axport-names are defined in /etc/ax25/axports):    #!/bin/sh   #   AXPORTA=ax1   AXPORTB=ax2   IP_A=192.168.7.99   IP_B=192.168.8.99   #   declare -a PORTARRAY   let count=0   #   #   PORTS=$(/usr/sbin/kissnetd /dev/ptmx /dev/ptmx | tail -1 &)   #   for i in $PORTS; do           PORTARRAY[$count]=$i           ((count++))   done   #   /usr/sbin/kissattach ${PORTARRAY[0]} $AXPORTA $IP_A   /usr/sbin/kissattach ${PORTARRAY[1]} $AXPORTB $IP_B   # 

převzato: pi8cdr.halerbrug.nl:808/cmd

 

Není to sice návod steb by step, vždy se najde alespoň jeden problém, který je nutno řesit jinak, ale doufám, že myšlenkový postup je jasný.