Aby w sposób udany zainstalować obsługę AX.25/NetRom na systemie Linux należy skonfigurować i zainstalaować właściwe jądro a następnie programy narzędziowe AX.25.
Jeśli jesteś już zaznajomiony z kompilowaniem jądra na Linuxie to możesz pominąć tę sekcję, upewnij się tylko, że wybrałeś właściwe opcje dla jądra. Jeśli nie, to czytaj dalej.
Normalnie, źródła jądra należy rozpakowywać będąc w katalogu /usr/src do podkatalogu zwanego linux. Aby to uczynić należy się zalogować jako root a następnie wykonać takie czynności:
# cd /usr/src
# mv linux linux.old
# tar xvfz linux-2.0.29.tar.gz
# tar xvfz ax25-module-12.tar.gz
# patch -p0 < /usr/src/ax25-module-12/ax25-2.0.29-2.1.22.diff
# cd linux
Po tym jak rozpakowałeś i połatałeś jądro, musisz odpalić skrypt konfiguracyjny i zaznaczyć opcje, które odpowiadają układowi twojego sprzętu oraz te, które chcesz, aby były obecne w jądrze. Wystarczy napisać:
# make config
Jeśli wolisz metodę opartą o menu to można też spróbować:
# make menuconfig
Opiszę tutaj metodę zasadniczą, a ty wybierz taką jaka ci najbardziej odpowiada. W obu przypadkach zostaniesz postawiony wobec pytań, na które trzeba odpowiedzieć "tak" lub "nie". (Zauważ, że można też odpowiedzieć naciśnięciem "M" jeśli używaż modułów w Linuxie. Dla uproszczenia jednak przyjmuję, że ich nie używasz, więc dokonaj właściwych poprawek jeśli jest przeciwnie.)
Najbardziej zasadniczymi opcjami dla skonfigurowania AX.25 są:
Code maturity level options --->
...
[*] Prompt for development and/or incomplete code/drivers
...
General setup --->
...
[*] Networking support
...
Networking options --->
...
[*] TCP/IP networking
[?] IP: forwarding/gatewaying
...
[?] IP: tunneling
...
[?] IP: Allow large windows (not recommended if <16Mb of memory)
...
[*] Amateur Radio AX.25 Level 2
[?] Amateur Radio NET/ROM
[?] Amateur Radio X.25 PLP (Rose)
...
Network device support --->
[*] Network device support
...
[*] Radio network interfaces
[?] BAYCOM ser12 and par96 driver for AX.25
[?] Soundcard modem driver for AX.25
[?] Soundmodem support for Soundblaster and compatible cards
[?] Soundmodem support for WSS and Crystal cards
[?] Soundmodem support for 1200 baud AFSK modulation
[?] Soundmodem support for 4800 baud HAPN-1 modulation
[?] Soundmodem support for 9600 baud FSK G3RUH modulation
[?] Serial port KISS driver for AX.25
[?] BPQ Ethernet driver for AX.25
[?] Gracilis PackeTwin support for AX.25
[?] Ottawa PI and PI/2 support for AX.25
[?] Z8530 SCC KISS emulation driver for AX.25
...
Opcje, które oznakowałem jako '*' to te, na które musisz odpowiedzieć 'Y' - tak. Reszta jest zależna od sprzętu, jaki posiadasz oraz od opcji, które sobie życzysz. Niektóre z tych opcji są opisane trochę poźniej, więc jeśli nie wiesz jeszcze czego chcesz to czytaj dalej a potem tutaj wróć.
Po skończeniu konfiguracji jądra powinieneś teraz gładko skompilować jądro:
# make dep
# make clean
# make zImage
Upewnij się, aby skopiować plik arch/i386/boot/zImage tam gdzie być powinien oraz zrób edycje /etc/lilo oraz restartuj lilo, abyś faktycznie odpalił system z nowego jądra.
Jądra 2.1.* zawierają udoskonalone wersję niemalże wszyskich protokołów oraz sterowników. Najbardziej znaczące nowinki to:
modularyzacja
protokoły i sterowniki zostały zmodularyzowane tak, że można nimi do woli żąglować poleceniami insmod, rmmod. Redukuje to wymogi pamięciowe dla jądra przy sporadycznie używanych modułach oraz sprawia, że polowanie na pluskwy i pielęgancja są łatwiejsze.
wszystkie sterowniki są teraz sterownikami sieciowymi
wszelkie urządzenia jak Baycom, SCC, PacketTwin, Gracillis itp. oferują teraz normalny interfejs sieciowy, tzn. wyglądają teraz tak jak sterownik Ethernetu; nie wyglądają już tak jak TNC w trybie KISS. Na życzenie, można zbudować interfejs kiss do tych urządzeń przy pomocy programiku 'net2kiss'.
usunięto pluskwy
wiele pluskw zostało wykrytych i zniszczonych dodano też do sterowników i protokołów sporo nowych cech i funkcji.
Teraz, po wykompilowaniu jądra, powinieneś również skompilować nowe narzędzia do konfiguracji sieci. Przy ich pomocy będziesz mógł manipulować interfejsami sieciowymi oraz dodawać routing do tablic routingowych.
Nowa wersja alpha standardowego pakietu net-tools zawiera obsługę AX.25 i NetRom. Sprawdzałem to i wydaje się, że u mnie działa to świetnie.
Nie zapomnij przeczytać pliku Readme i zastosować się to wszelkich tam podanych wskazówek. Czynności jakie ja wykonałem, by skompilować net-tools to:
# cd /usr/src
# tar xvfz net-tools-1.32-alpha.tar.gz
# cd net-tools-1.32-alpha
# make config
W tym stadium zaoferowane ci zostaną pytania podobnie jak przy kompilacji jądra. Upewnij się, aby zaznaczyć obsługę jakichkolwiek protoków, które zamierzasz używać.W razie, gdybyś nie wiedział co odpowiedzieć, zaznacz "Y".
Net-tools powinny skompilować się gładko ze źródłami jądra bez żadnych ostrzeżeń. gdy kompilacja ustanie, wówczas wydaj polecenie:
# make installto zainstaluje programy w ich właściwe miejsca.
Jeśli planujesz używać usługę IP firewall to potrzebujesz ostatnich narzędzi ipfwadm do administracji ściany ogniowej. Narzędzie to podmienia starsze ipfw, które nie pracuje już z nowszymi jądrami.
Programik ipfwadm skompilowałem w taki sposób:
# cd /usr/src
# tar xvfz ipfwadm-2.0beta2.tar.gz
# cd ipfwadm-2.0beta2
# make install
# cp ipfwadm.8 /usr/man/man8
# cp ipfw.4 /usr/man/man4
Po skompilowaniu i restarcie nowego jądra, potrzebujesz jeszcze skompilować programy narzędziowe. Aby skompilować programy narzędziowe należy wykonać takie czynności:
# cd /usr/src
# tax xvfz ax25-utils-2.1.22b.tar.gz
# cd ax25-utils-2.1.22b
# make config
# make
# make install
Pliki zostaną zainstalowane pierwotnie do katalogu /usr w podkatalogi takie jak:
bin, sbin, etc and man.
Jeśli pokażą ci się ostrzeżenia podobnej treści:
gcc -Wall -Wstrict-prototypes -O2 -I../lib -c call.c call.c: In function `statline': call.c:268: warning: implicit declaration of function `attron' call.c:268: `A_REVERSE' undeclared (first use this function) call.c:268: (Each undeclared identifier is reported only once call.c:268: for each function it appears in.)zatem powinieneś pozprawdzać czy masz na swoim systemie zainstalowany poprawnie pakiet
ncurses. Skrypt konfiguracyjny stara się zlokalizować pakiet ncurses na twoim systemie w znanych katalogach. Niektóre jednak instalacje źle wpisują ncurses i skryp nie potrafi ich znaleźć.