Każdy program AX.25 wpierw czyta plik konfiguracyjny, aby uzyskać potrzebne parametry poszczególnego portu AX.25, obecnego na twoim systemie Linux. Dla portów AX.25 jest to plik /etc/ax25/axports. Każdy port AX.25, który chcesz mieć na swoim systemie, musi być w tym pliku opisany.
Plik /etc/ax25/axports to prosty tekstowy plik, który tworzymy zwykłym edytorem. Format pliku /etc/ax25/axports jest następujący:
portname callsign baudrate paclen window description
Gdzie:
portname
to wolna nazwa, krórą należy ochrzcić port, używana do nazewnictwa tego portu
callsign
znak/identyfikator, który przypisujesz dla portu AX.25
paclen
to maksymalna długość pakietów, które będą możliwe na tym porcie przy transmisjch AX.25 w trybie 'connected'.
window
to parametr (K) AX.25 window. To samo co MAXFRAME w wielu urządzeniach TNC.
description
to dowolny opis tego portu
W moim przypadku wygląda to tak:
radio VK2KTJ-15 4800 256 2 4800bps 144.800 MHz
ether VK2KTJ-14 10000000 256 2 BPQ/ethernet device
Pamiętaj, że należy przypisać unikalny znak/identyfikator dla każdego portu AX.25, który utworzysz. Wprowadź jeden wpis dla każdego urządzenia AX.25, które chcesz używać. Odnosi się to do portów: KISS, Baycom, SCC, PI, PT, DźwiękoModem. W tym miejscu każdy wpis ma odnosić się do każdego z osobna urządzenia AX.25. Wpisy w tym pliku powiązane są z interfejsami sieciowymi poprzez ich znak/identyfikator.
Plik ten używany będzie przez programy opisane dalej.
Interfejs sieciowy jest tym, co widać na ekranie po wydaniu polecenia 'ifconfig'. Jest to objekt, poprzez który jądro Linuxa odbiera i wysyła dane sieciowe. Prawie zawsze interfejs sieciowy związany jest z fizycznym portem, są jednak wypadki, kiedy nie jest to konieczne. Interfejs sieciowy odnosi się wówczas bezpośrednio do sterownika urządzenia fizycznego. W oprogramowaniu AX.25 pod Linuxem istnieje wiele sterowników urządzeń fizycznych. Najpopularniejszym jest zapewne sterownik KISS, lecz są też inne jak np. sterownik SCC, Baycom czy SoundModem (DźwiękoModem).
Każdy z tych sterowników, przy uruchomianiu go, spowoduje również otworzenie interfejsu sieciowego.
Najczęściej spotykaną konfiguracją bedzię chyba KISS TNC na porcie seryjnym. Należy uprzednio skonfigurować sam TNC i doczepić go do portu seryjnego. Aby wprowadzić swój TNC w tryb KISS można użyć programu terminala, jak np. minicom lub seyon. Z kolei, aby utworzyć urządzenie KISS należy użyć polecenia 'kissattach', które to polecenie w swej najprostszej formie może wyglądać tak:
# /usr/sbin/kissattach /dev/ttyS0 radio
# kissparms -p radio -t 100 -s 100 -r 25
Polecenie kissattach utworzy też sieciowy interfejs KISS. Interfejsy te noszą wtedy nazwę od 'ax[0-9]'. Przy pierwszym wydaniu polecenia 'kissattach' powstaje 'ax0', przy następnym 'ax1', itd. Każdy interfejs KISS powiązany jest ze swoim portem seryjnym.
Polecenie 'kissparms' pozwala na manipulowanie różnymi parametrami interfejsu KISS.
W podanym wyżej przykładzie dołączony zostałby sieciowy interfejs KISS do seryjnego urządzenia w Linuxie '/dev/ttyS0' i do portu oznaczonego w pliku /etc/ax25/axports jako 'radio'. Następnie konfigurowany on jest z wartościami 100 milisekund dla txdelay oraz slottime i wartością 25 dla ppersist.
Więcej informacji można znaleźć w man pages w Linuxie.
Programik 'mkiss', zawarty w programach narzędziowych ax25-utils, pozwala na wykorzystanie obydwu modemów w urądzeniach TNC o dwóch portach. Ustawienie jest dość proste. Programik ten działa tak, że biorąc pojedyncze urządzenie dołaczone do wieloportowego TNC przedstawia je tak, iż wygląda ono, jakby to były dwa urządzenia, każde z własnym TNC. Czynność tę trzeba wykonać zanim zaczniesz jakąkolwiek konfigurację AX.25. Powstałe na skutek tego interfejsy pseudo-TTY, (/dev/ttypf*), które nie są rzeczywistymi urządzeniami seryjnymi, wykorzystywane są z kolei do konfiguracji AX.25. Interfejsy Pseudo-TTY wyprowadzają swego rodzaju fajkę, poprzez którą programy umiejące nadawać do urządzeń /dev/tty mogą sie porozumiewać między sobą. Każda fajka posiada końcówkę master i slave. Końcówki master są ogólnie oznaczane jako /dev/ptyp*, końcówki slave mają emblem /dev/ttyp*. Pomiędzy master a slave istnieje intymna zależnośc, zatem /dev/ptyp0 stanowi koncówkę master dla przewodu, ktory ma /dev/ttyp0 na końcówce slave. Zanim otworzysz końcówkę slave, musisz najpierw otworzyć końcówkę master. 'mkiss' wykorzystuje ten właśnie mechanizm do rozczepienia pojedynczego urządzenia seryjnego, na osobne.
Przykład: jeśli posiadasz TNC o dwóch portach i jest ono doczepione do seryjnego urządzenia /dev/ttyS0 o prędkości 9600 bps, to polecenie:
# /usr/sbin/mkiss -s 9600 /dev/ttyS0 /dev/ptyp0 /dev/ptyp1
# /usr/sbin/kissattach /dev/ttyp0 port1
# /usr/sbin/kissattach /dev/ttyp1 port2
utworzy dwa interfejsy pseudo-tty, a każde z nich wyglądać będzie tak, jakby było pojedynczym seryjnym portem, każde z własnym TNC. Wowczas interfejsy /dev/ttyp0 i /dev/ttyp1 możesz potraktować tak jak inne konwencjonalne seryjne porty z doczepionymi do nich urządzeniami TNC. W praktyce oznacza to, ze odpaliłbyś dla obydwu polecenie 'kissattach' przy zachowaniu wpisów o portach AX.25 jako port1 i port2. Nie należy odpalać polecenia 'kissattach' dla rzeczywistego urządzenia /dev/ttyS0 ponieważ zajęte zostało ono przez program 'mkiss'.
Polecenie 'mkiss' przyjmuje szereg dodatkowych argumentów, które są do twojej dyspozycji. Oto ich streszczenie:
-c pozwala na dodanie checksum o jednym byte.
Większość implementacji KISS tego nie obsluguje, jest to
możliwe przy użyciu Rom'u G8BPG KISS.
-s <speed>
ustawia prędkość portu urządzenia seryjnego.
-h omożliwia hardware handshaking na porcie seryjnym, pierwotnie
jest wyłączone. Większść implementacji KISS tego nie obsługuje.
Niektóre jednak to mają.
-l umożliwia prowadzenie log'u do plików typu syslog.
Wbrew powszechnemu przekonaniu, że nie będzie to zbyt dobrze działać, Thomas Sailor podjął się rozbudowy obsługi modemów Baycom pod Linuxem. Jego sterowniki obsługują modemy Ser12 na port seryjny, oraz Par96 i udoskonalony PicPar na porty równoległe. Więcej informacji o samych modemach można uzyskać na Web Serverze Baycoma
Najpierw musisz sprawdzić adres wejścia/wyścia oraz adresy bazowe portu seryjnego lub równoległego, do którego masz doczepiony modem Baycom. Z tą informacją możesz dopiero konfigurować sterownik samego Baycom'a.
Programik sethdlc pozwala na użycie tych parametrów ze sterownikiem, lub, jeśli masz tylko jeden modem Baycom i używasz modułów w Linuxie to można te parametry podać ręcznie jako opcje dla programu 'insmod' ładującego moduł Baycom'a.
Dla przykladu, prosty układ. Wyłączenie sterownika urządzenia seryjnego COM1:, a następnie ustawienie tam sterownika modemu Baycom Ser12 na COM1: z użyciem detekcji typu software DCD:
# setserial /dev/ttyS0 uart none # insmod baycom mode="ser12*" iobase=0x3f8 irq=4
Albo modem Par96 na porcie równoległym LPT1: z użyciem detekcji hardware DCD:
# insmod baycom mode="par96" iobase=0x378 irq=7 options=0Nie jest to jednak najlepszy sposób. Programik
sethdlc działa dobrze zarówno z jednym jak i z wieloma urządzeniami.
Podręcznik systemowy 'man' programiku sethdlc opisuje szczegóły na ten temat, jednak kilka przykładów pozwoli zilustrować ważniejsze aspekty tejże konfiguracji. Poniższy przykład zakłada, że załadowałeś już moduł Baycom'a poleceniem:
# insmod baycomUstawienie sterownika dla interfejsu bc0 stusując równoległy modem Baycom na LPT1: detekcja typu software DCD:
# sethdlc -p -i bc0 mode par96 io 0x378 irq 7
Ustawienie sterownika dla interfejsu bc1 stosując seryjny modem Baycom na COM1::
# sethdlc -p -i bc1 mode "ser12*" io 0x3f8 irq 4
Parametry dostępu do kanałów AX.25 są analogiczne do parametrów KISS, takich jak ppersist, txdelay, slottime. Tutaj też używamy programiku sethdlc.
I znów podręcznik systemowy 'man' jest głównym źródłem informacji na temat sethdlc, ale jak zwykłe jeden czy drugi przykład nie zaszkodzi:
Ustawienie interfejsu bc0 z wartością 200ms dla TxDelay, 100ms dla Slottime, wartość 40 dla ppersist oraz half-duplex:
# sethdlc -i bc0 -a txd 20 slot 10 ppersist 40 half
Zauważ, że wartości licznika są tutaj podane w 10-tkach milisekund.
Thomas Sailor napisał nowy sterownik dla jądra Linuxa pozwalający na użycie karty dźwiękowej komputera jako modemu do packet radio. Można teraz podłączyć radio bezpośrednio do karty dźwiękowej i zabawić się w packet!! Thomas poleca przynajmniej procesor 486DX/66 ponieważ cały ciężar obliczeniowy sygnału cyfrowego spada w tym wypadku na CPU.
Obecnie sterownik emuluje takie typy modemów: 1200 bps AFSK, 4800 HAPN and 9600 FSK (G3RUH compatible). Jedyne karty, które są obługiwane tym sterownikiem to te, zgodne z SoundBlaster oraz WindowsSoundSystem. Karty dźwiękowe potrzebują dodatkowego układu wspomagającego układ PTT a informację na ten tema można zasięgnąć na domowej stronie Thomas'a Sailora, tutaj. Istnieje szereg możliwości: detekcja syganłu z karty dźwiękowej, lub przez port równoległy, seryjny, port midi. Przykłady schematów są na stronie Thomas'a.
Przy załączeniu sterownik DźwiękoModemu dołącza interfejsy sieciowe: sm0, sm1, sm2, itp.
Uwaga: Sterownik DźwiękoModemu współzawodniczy w zagarnianiu zasobów komputera ze sterownikiem karty dźwiękowej. Jeśli więc planujesz używać sterownik DźwiękoModemu to upewnij się, czy sterownik karty dźwiękowej jest wyinstalowany. Jak zwykłe możesz obydwa skompilować jako moduły i używać je wtedy, gdy jest to wygodne.
Sterownik DźwiękoModemu nie wzbudza karty dźwiękowej przy ładowniu się systemu. Pakiet ax25-utils zawiera programik 'setcrystal', który obluguje karty oparte o Crystal Chipset. jeśli posiadasz inną kartę to potrzebujesz innego oprogramowania, aby ją pobudzić. Składnia programiku jest oczywista:
setcrystal [-w wssio] [-s sbio] [-f synthio] [-i irq] [-d dma] [-c dma2]
Jeśli, zatem życzysz sobie doczepić kartę soundblaster na adresie 0x388, irq 10 i DMA 1, to dj tak:
# setcrystal -s 0x388 -i 10 -d 1
Jeśli ustawiasz kartę WinSoundSystem na adresie 0x534, irq 5, DMA 3, to daj tak:
# setcrystal -w 0x534 -i 5 -d 3
Parametr [-f synthio] służy do zdeklarowania adresu syntezatora, a [-c dma2] do podania drugiej wartości dla DMA, ktora pozwala na operację full-duplex.
Po skonfigurowaniu karty dźwiękowej musisz teraz powiedzieć strownikowi DźwiękoModemu gdzie może jej szukać oraz jakiego rodzaju modem ma emulować.
Parametry te mogą zostać zdeklarowane programikiem 'sethdlc', lub, jeśli używać będziesz tylko jednej karty można je podać ręcznie programowi 'insmod', który ładuje sterownik Dźwiękomodemu. Dla przykładu, prosta konfiguracja: jedna karta dźwiękowa SoundBlaster ustawiona według powyższego przykładu i emulująca modem 1200 pbs:
# insmod soundmodem mode="sbc:afsk1200" iobase=0x220 irq=5 dma=1
Nie jest to jednak najlepszy sposób. Programik sethdlc działa dobrze zarówno z jednym jak i z wieloma urządzeniami.
Man pages programiku sethdlc piszą w szczegółach na ten temat, jednak kilka przykładów pozwoli zilustrować ważniejsze aspekty tejże konfiguracji. Poniższy przykład zakłada, ze załadowałeś już moduł sterownika DźwiękoModemu poleceniem:
# insmod soundmodem
Ustawienie sterownika do obługi uprzednio skonfigurowanej karty WinSoundSystem, aby emulował modem G3RUH 9600 jako interfejs sieciowy sm0, na porcie równoległym z układem PTT o adresie 0x378:
# sethdlc -p -i sm0 mode wss:fsk9600 io 0x534 irq 5 dma 3 pario 0x378
# ifconfig sm0 up
Ustawienie sterownika uprzednio skonfigurowanej karty SoundBlaster, aby emulował modem HAPN 4800 bps jako interfejs sieciowy sm1 z ukladem PTT na porcie seryjnym o adresie 0x2f8:
# sethdlc -p -i sm1 mode sbc:hapn4800 io 0x388 irq 10 dma 1 serio 0x2f8
# ifconfig sm1 up
Ustawienie sterownika uprzednio skonfigurowanej karty SoundBlaster, aby emulował modem AFSK 1200 bps jako interfejs sieciowy sm1, na seryjnym porcie z układem PTT o adresie 0x2f8:
# sethdlc -p -i sm1 mode sbc:afsk1200 io 0x388 irq 10 dma 1 serio 0x2f8
# ifconfig sm1 up
Parametry dostępu do kanałów AX.25 są analogiczne do parametrów KISS, takich jak ppersist, txdelay, slottime. Tutaj też używamy programiku sethdlc.
I znów man pages są głównym źródłem informacji na temat sethdlc, ale jak zwykle jeden czy drugi przykład nie zaszkodzi:
Ustawienie interfejsu sm0 z wartością 100ms dla TxDelay, 50ms dla Slottime, wartość 128 dla ppersist oraz half-duplex:
# sethdlc -i sm0 -a txd 10 slot 5 ppersist 128 full
Zauważ, że wartości licznika są tutaj podane w 10-tkach milisekund.
Każdy modem radiowy domaga się do poprawnej pracy właściwej regulacji poziomu audio. Dotyczy to również DźwiękoModem'u. Thomas napisał programy narzędziowe, które ułatwiają to zadanie. Są to: 'smdiag' i 'smmixer'.
smdiag
dostarcza dwóch typów wyświetlacza, typu oscyloskopowego i typu "eye pattern"
smmixer
pozwała na właściwe wyregulowanie poziomu nadawania i odbioru.
To polecenie odpala programik 'smdiag' w trybie "eye" dla interfejsu sm0:
# smdiag -i sm0 -e
To polecenie odpala programik 'smmixer' dla interfejsu sm0:
# smmixer -i sm0
Sterownik DźwiękoModemu powoduje dołączenie standardowego interfejsu sieciowego, gotowego do wykorzystania przez jądro. Konfiguracja przypomina tę, jaką stosujemu przy kartach PacketTwin oraz PI.
Najpierw, interfejsowi trzeba przypisać znak/identyfikator. Używamy programu 'ifconfig'. Polecenie:
# /sbin/ifconfig sm0 hw ax25 VK2KTJ-15 upprzypisze interfejsowi sm0, należącemu do DźwiękoModemu, znak/identyfikator VK2KTJ-15 w protokole AX.25.
Następny krok to dokonanie wpisu do pliku /etc/ax25/axports podobnie jak dla innych urządzeń fizycznych. Tenże wpis w pliku ax25ports jest powiązany z interfejsem sieciowym, który powyżej skonfigurowałeś na tymże znaku/identyfikatorze. Wpis w pliku axports noszący znak/identyfikator, ktorego użyłeś przy DźwiękoModemie będzie używany jako odnośnik do tego modemu.
Tak ustawione urządzenie AX.25 możesz teraz spożytkować jak każde inne. Skonfiguruj je do pracy w TCP/IP, dodaj je do demona ax25d, użyj do NetRom lub Rose, jak tylko chcesz.
Sterownik karty PI generuje powstanie interfejsów sieciowych typu `pi[0-9][ab]. Pierwszej wykrytej karcie PI zostanie przypisany interfejs pi0, kolejnej pi1, itd. Literki 'a' i 'b' odnoszą sie do fizycznych portów znajdujących się na karcie PI. Jeśli zbudowałeś jądro z obsługą karty PI, oraz jeśli została ona poprawnie wykryta to możesz skonfigurować sobie interfejs sieciowy w taki sposób:
# /sbin/ifconfig pi0a hw ax25 VK2KTJ-15 up
Polecenie to skonfigurowałoby pierwszy port pierwszej wykrytej karty PI przypisując jej znak/identyfikator VK2KTJ-15 i uczyniłoby go aktywnym. Zauważ, że znak musi mieć swój odpowiednik w pliku /etc/ax25/axports, aby móc używać tego portu.
Sterownik do karty PI napisany został przez David'a Perry, dp@hydra.carleton.edu
Sterownik karty PacketTwin generuje powstanie interfejsów sieciowych typu `pt[0-9][ab]. Pierwszej wykrytej karcie PacketTwin zostanie przypisany interfejs pt0, kolejnej pt1, itd. Literki 'a' i 'b' odnoszą sie do fizycznych inerfejsów znajdujących się na karcie PacketTwin. Jeśli zbudowałeś jądro z obsługą karty PacketTwin, oraz jeśli została ona poprawnie wykryta to możesz skonfigurować sobie interfejs sieciowy w taki sposób:
# /sbin/ifconfig pt0a hw ax25 VK2KTJ-15 up
Polecenie to skonfigurowałoby pierwszy port pierwszej wykrytej karty PacketTwin przypisując jej znak/identyfikator VK2KTJ-15 i uczyniłoby go aktywnym. Zauważ, że znak musi mieć swój odpowiednik w pliku /etc/ax25/axports, aby móc używać tego portu.
Sterownik karty PacketTwin został napisany przez Craig Small, VK2XLZ, csmall@triode.apana.org.au.
Joerg Reuter, DL1BKE, jreuter@lykos.tng.oche.de wypracował sterownik do generycznej obsługi kart opartych o scalak Z8520 SCC. Sterownik ten daje się konfigurować do obsługi wielorakich kart oferując interfejs, który zachowuje się tak jak TNC w trybie KISS. Traktuj więc go tak, jakby to był TNC w trybie KISS.
Choć sterownik zawarty jest w standardowym żródle jądra to jednak Joerg uwalnia wciąż nowsze wersje źródłowe razem ze specjalnymi narzędziami do konfiguracji, które również potrzebujesz.
Pakiet z narzędziami do konfiguracji znajdziesz tutaj:
db0bm.automation.fh-aachen.de
/incoming/dl1bke/
lub:
insl1.etec.uni-karlsruhe.de
/pub/hamradio/linux/z8530/
lub:
ftp.ucsd.edu
/hamradio/packet/tcpip/linux
/hamradio/packet/tcpip/incoming/
Znajdziesz tam różnorakie wersje, więc wybierz te, które odpowiadają twojej wersji jądra:
z8530drv-2.4a.dl1bke.tar.gz 2.0.* z8530drv-utils-3.0.tar.gz 2.1.6 lub nowszeOto polecenia, które musiałem wykonać, aby skompilować i zainstalować ów pakiet z jądrem 2.0.25:
# cd /usr/src # gzip -dc z8530drv-2.4a.dl1bke.tar.gz | tar xvpofz - # cd z8530drv # make clean # make dep # make module # jeśli chcesz aby sterownik był modułem # make for_kernel # Jeśli chcesz, aby sterownik był wbudowany w jądro # make installPo zakończonej operacji powinieneś mieć trzy programy w katalogu /sbin: gencfg, sccinit i sccstat. To właśnie one nadają się do tego, aby skonfigurować sterownik dla twojej karty.
Zostanie rownież utworzona specjalna grupa plików w katalogu /dev/ zwanych scc0 .. scc7. Zostaną one później użyte jako urządzenia KISS i właśnie te będziesz stosował.
Jeśli zdecydujesz sie na polecenie 'make for_kernel', wówczas będziesz musiał przebudować jądro. Przy budowaniu jądra po wydaniu polecenia 'make config' zadbaj o to, abyś odpowiedział "Y" na pytanie o obsługę `Z8530 SCC kiss emulation driver for AX.25'.
Nie potrzebyjesz przebudowywać jądra jeśli wybierzesz polecenie 'make module', wówczas plik scc.o zostanie umieszczony w odpowiednim katalogu /lib/modules. Nie zapomnij o poleceniu 'insmod' przed próbą użycia i konfiguracji starownika.
Sterownik Z8530 SCC został pomyślany, tak aby dał się nagiąć do niemalże każdej karty. Lecz z elastycznością idzie w parze trud jej konfiguracji. Bardziej pouczającej lektury dostarczą pliki samego pakietu i powinieneś tam szukać informacji. A w szczególności należy zajrzeć tutaj: doc/scc_eng.doc or doc/scc_ger.doc. Zparafrazowałem poniżej parę ważniejszych detali, lecz w rezultacie pominąłem szczegóły niższego rzędu.
Program sccinit czyta najpierw plik /etc/z8530drv.conf. Plik dzieli się na dwa etapy: ustawienie parametrów dla sprzętu i dla kanału AX.25. Po tym wystarczy tylko dać polecenie:
# sccinit
pierwsza sekcja dzieli się na strofy, każda strofa reprezentuje scalak 8530. Strofy to poprostu lista 'słów' i 'argumentów'. Można w tym pliku zdeklarować do 4 scalaków SCC. Jeśli potrzebujesz więcej to da się to zrobić w pliku scc.c ustawiając żądaną wartosć w #idef MAXSCC 4.
Dozwolone 'słowa' i 'argumenty' to:
chip
słowo chip służy do oddzielania strof. jego argumentem może być wszystko. Argumenty nie są używane.
data_a
używane do zdeklarowania adresu portu "data" dla kanału 'A'. Argument w formie hexadecymalnej, tj. 0x300.
ctrl_a
używany do zdeklarowania adresu portu "control" dla kanału 'A'. Argument w formie hexadecymalnej, tj. 0x304
data_b
używany do zdeklarowania adresu portu "data" dla kanału 'B'. Argument w formie hexadecymalnej, tj. 0x301.
ctrl_b
używany do zdeklarowania adresu portu "control" dla kanału 'B'. Argument w formie hexadecymalnej, tj. 0x305
irq
używany do zdeklarowania IRQ używanego przez 8530 SCC w beżącej strofie. Argument w formie liczby całkowitej, tj. 5
pclock
używany do zdeklarowania częstotliwości zegara na igle PCLK w 8530.. Argument w formie liczby całkowitej w Hz. Wartość domyślna wynosi 4915200.
board
typ płyty. Argumentem jest napis. A oto dozwolone wartości:
PA0HZP
karta PA0HZP SCC
EAGLE
karta Eagle
PC100
karta DRSI PC100 SCC
PRIMUS
karta PRIMUS-PC (DG9BL)
BAYCOM
karta BayCom (U)SCC
escc
jest nie dobowiązkowe i dołącza obsługę polepszonych scalaków, takich jak:8580, 85180, lub 85280. Argumentem jest tylko 'yes' lub 'no'.
vector
dla kart PA0HZP jest to wartość tzw. "intack port". Może być tylko jeden dla wszystkich scalaków. Wartość domyślna = 0. Nieobowiązkowy.
special
określa rejestry funkcyjne na niektórych kartach. Nieobowiązkowy. Wartość domyślna = 0.
option
jest nieobowiązkowy i przyjmuje warość domyślną 0.
Oto przykładowe konfiguracje dla najbardziej popularnych kart:
BayCom USCC
chip 1
data_a 0x300
ctrl_a 0x304
data_b 0x301
ctrl_b 0x305
irq 5
board BAYCOM
#
# SCC chip 2
#
chip 2
data_a 0x302
ctrl_a 0x306
data_b 0x303
ctrl_b 0x307
board BAYCOM
PA0HZP SCC
chip 1
data_a 0x153
data_b 0x151
ctrl_a 0x152
ctrl_b 0x150
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
#
#
#
chip 2
data_a 0x157
data_b 0x155
ctrl_a 0x156
ctrl_b 0x154
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
DRSI SCC
chip 1
data_a 0x303
data_b 0x301
ctrl_a 0x302
ctrl_b 0x300
irq 7
pclock 4915200
board DRSI
escc no
Jeśli twoja karta pracuje pod NOS'em i masz do niej konfigurację, to możesz użyć polecenia 'gencfg' do konwersji poleceń sterownika PE1CHL NOS. Powstaje wtedy plik przydatny do załączenia w pliku konfiguracyjnym dla sterownika z8530.
Polecenia 'gencfg' odpala się z tymi samymi paramatrami co sterownik PE1CHL pod NET/NOS, np.:
# gencfg 2 0x150 4 2 0 1 0x168 9 4915200
Powyższe wygeneruje szkic konfiguracyjny dla karty OptoSCC.
Sekcja Konfiguracji Kanału zajmuje się zdeklarowniem tych wszystkich parametrów, które rządzą portem , na którym chcesz pracować. Znów mamy tutaj strofy. Każda strofa reprezentuje jeden logiczny port, zatem będziemy mieli dwie strofy ponieważ każda karta 8530 SCC może mieć dwa porty.
Poniższe 'słowa' i 'argumenty' są również zapisywane do pliku /etc/z8530drv.conf i muszą występować za sekcją o parametrach sprzętu.
Kolejność w tej sekcji jest bardzo istotna, lecz jeśli będziesz podążał za sugerowaną sekwencją to powinno działać wszystko w porządku. Dozwolone 'słowa' i 'argumenty to:
device
musi stać w pierszym wierszu deklaracji portu i określa nazwę pliku w katalogu /dev/ stanowiącego podstawę dalszej konfiguracji, tj. /dev/scc0
speed
określa prędkość interfejsu w bitach na sekundę. Argumentem jest liczba calkowita, np. 1200.
clock
określa w parametry dla zegara. Dozwolone wartości to:
dpll
normalny tryb halfduplex
external
MODEM dostarcza swój własny zegar Rx/Tx
divider
użycie devidera fullduplex, jeśli jest zainstalowany
mode
określa czy kodowanie danych ma być załaczone. Argumentami są: nrzi lub nrz
rxbuffers
określa liczbę buforów odbioru, dla których należy rezerwować pamięć. Argumentem jest liczba całkowita, np. 8.
txbuffers
określa liczbę buforów nadawania, dla których należy rezerwować pamięć. Argumentem jest liczba całkowita, np. 8.
bufsize
określa rozmiary buforów odbioru i transmisji. Argumentem jest liczba bytów i stanowi on od sumę wszystkich 'ramek', zatem trzeba więc wziąć pod uwagę również nagłówki protokołu AX.25 a nie li tylko pole danych. Słowo to jest nieobowiązkowe i przyjmuje wartość domyślną 384.
txdelay
to wartość opóżnienia transmisji dla KISS, argumentem jest liczba całkowita.
persist
to wartość parametru persist dla KISS, argumentem jest liczba całkowita.
slot
to jest wartość slottime dla KISS. argumentem jest liczba całkowita w mS.
tail
to jest wartość tail dla KISS. argumentem jest liczba całkowita w mS.
fulldup
to jest oznaczenie fullduplex dla KISS, argumentem jest liczba całkowita. 1==Full Duplex, 0==HALF DUPLEX.
wait
to jest wartość wait dla KISS, argumentem jest liczba całkowita w mS.
min
to jest wartość min dla KISS, argumentem jest liczba całkowita w S.
maxkey
to jest wartość maximum keyup dla KISS, argumentem jest liczba całkowita w S.
idle
to jest wartość licznika idle dla KISS, argumentem jest liczba całkowita w S.
maxdef
to jest wartość maxdef dla KISS, argumentem jest liczba całkowita.
group
to jest wartość group dla KISS, argumentem jest liczba całkowita.
txoff
to jest wartość txoff dla KISS, argumentem jest liczba całkowita w mS.
softdcd
to jest wartość softdcd dla KISS, argumentem jest liczba całkowita.
slip
to jest oznaczenie slip dla KISS, argumentem jest liczba całkowita.
Przy używaniu sterownika traktujemy urządzenia /dev/scc* tak, jak urządzenie seryjne tty z doczepionym TNC w trybie KISS. Na przykład, aby skonfigurować jądro do obługi sieci pod Linuxem przy użyciu swojej karty należy użyć polecenia:
# kissattach -s 4800 /dev/scc0 VK2KTJ
Można też doczepić NOS'a w dokładnie taki sam sposób. Z JNOS'a, np. wykonać mógłbyś polecenie:
attach asy scc0 0 ax25 scc0 256 256 4800
Pomocnym przy diagnostyce urządzenia SCC jest program 'sccstat'. Wyświetla on bieżącą konfigurację. Spróbuj go tak uruchomić:
# sccstat /dev/scc0
wyświetli to szeroką gamę informacji związanych z ustawieniem i ogólną kondycją portu /dev/scc0 SCC.
Polecenie 'sccparam' pozwala na zmianę i modyfikowanie parametrów podczas pracy. Składnia przypomina polecenie 'param' z NOS'a, zatem aby ustawić txtail urządzenia na 100mS, należałoby napisać:
# sccparam /dev/scc0 txtail 0x8d
Linux jest kompatybilny z BPQ Ethernet. Umożliwia to na przepust protokołu AX.25 po Lokalnej Sieci ethernetowej i doczepienie swojej maszyny do innej obsługującej BPQ na Lokalnej Sieci.
Interfejsy sieciowe typu BPQ noszą nazwę 'bpq[0-9]'. Interfejs 'bpq0' powiązane jest z interfejsem 'eth0', a 'bpq1' z interfejsem 'eth1', itd.
Konfiguracja jest trywialna. Najpierw trzeba ustawić standardowe urządzenie Ethernet. To oznacza, że po wkompilowaniu obsługi karty Ethernet do jądra należy zobaczyć czy pracuje poprawnie. Zajrzyj do Ethernet-HOWTO jak tego dokonać.
Aby ustawić obsługę BPQ potrzebujesz przypisać interfejsowi Ethernet znak/identyfikator AX.25. Oto polecenie, które to spowoduje:
# /sbin/ifconfig bpq0 hw ax25 vk2ktj-14 up
I znów, nie zapomnij, że znak/identyfikator, który tutaj podajesz musi zgadzać się z wpisem w pliku /etc/ax25/axports dla portu, którego chcesz używać.
W normalnych warunkach BPQ Ethernet stosuje adres multicast. Pod Linuxem tak nie jest, zamiast tego stosowany jest zwyczajny Ethernetowy adres broadcast. Należy zatem zmodyfikować plik NET.CFG dla sterownika BPQ ODI w nasępujący sposób:
LINK SUPPORT
MAX STACKS 1
MAX BOARDS 1
LINK DRIVER E2000 ; lub inne MLID według własnej karty
INT 10 ;
PORT 300 ; według własnej karty
FRAME ETHERNET_II
PROTOCOL BPQ 8FF ETHERNET_II ; wymagane dla BPQ - zmienić PID
BPQPARAMS ; nieobowiązkowe - tylko wtedy,
; gdy znieniasz docelowy adres
ETH_ADDR FF:FF:FF:FF:FF:FF ; docelowy adres
Pakiet ax25-utils zawiera w sobie program narzędziowy 'axctl', który pozwala na ustawienie różnorodnych parametrów interfejsu AX.25.
Polecenie to jest zupełnie proste w użyciu a podręcznik systemowy 'man' dostarcza kompletnego opisu, przykładowym jednak sposobem użycia tego programu może być:
# /usr/sbin/axctl radio -window 2 -t1 5 -n2 10
Powyższe polecenie ustawiłoby wartości takie jak Window, T1 oraz N2 dla portu AX.25 nazwanego tu 'radio'.
Jeśli jest potrzeba można ustawić domyślne ścieżki do digipeaterów dla konkretnych węzłow. Przydaje się to przy zarówno czystych łączach AX.25 jak i opartych o IP. Robimy to poleceniem 'axparms'. Znowu, podręcznik systemowy 'man' podaje wszystkie szczegóły, lecz prosty przykład może być taki:
# /usr/sbin/axparms -route add radio VK2XLZ VK2SUT
Polecenie to utworzyłoby ścieżkę digipeatera dla stacji VK2XLZ przez stację VK2SUT na porcie AX.25 noszącego nazwę 'radio'.