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:
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
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ý.