Um die AX.25-Unterstützung erfolgreich nutzen zu können, muß man erst einen passenden Kernel und anschließend (unter dem neuen Kernel) die AX.25- Utilities installieren.
Wer sich mit dem Erstellen eines neuen Kernels auskennt, kann diesen Abschnitt
überspringen. Wichtig ist die Auswahl der richtigen Optionen beim Kompilieren.
Wer noch nicht weiß, wie es geht, sollte hier weiterlesen. Normalerweise
befindet sich der Quelltext des Kernels in dem Verzeichnis
/usr/src/linux.
Will man nun einen neuen Kernel installieren, geht man so vor:
cd /usr/src
Falls man bereits ein Linux-Verzeichnis besitzt und dieses nicht löschen will, kann man es umbenennen:
mv linux linux.old
Da die ausgepackten Quelltexte etwa 20-30 MB auf der Platte belegen, sollte man sich überlegen, ob man das Verzeichnis nicht doch löscht:
rm -r linux
Die Quelltextarchive sind relativ zu /usr/src
gepackt;
zum Entpacken gibt man ein:
cd /usr/src
tar zxvf /tmp/linux-2.0.37.tar.gz
Bei diesem Beispiel haben wir angenommen, daß das Archiv sich
in /tmp
befindet.
Nachdem die Kernel-Quelltexte erfolgreich entpackt wurden, ruft man jetzt das Konfigurationsskript auf:
cd /usr/src/linux
make menuconfig
Unter X11 kann statt dessen auch
make xconfig
verwendet werden. Hierfür wird ein installiertes Tcl/Tk in einer aktuellen Version benötigt.
Etwas archaisch, aber bewährt und stabil:
make config
Im folgenden soll die Vorgehensweise bei make menuconfig
beschrieben werden. Selbstverständlich lassen sich die beiden
anderen Möglichkeiten auch nutzen, die
Einstellungen sind entsprechend anzupassen. In jedem Fall werden viele Fragen
gestellt, die man mit »y« (yes), »n« (no) oder »m« (Modul) beantworten kann.
Einige Eigenschaften lassen sich nämlich auch als
Module einrichten, um sie nur
bei Bedarf nachzuladen und somit Speicher zu sparen. Der Einfachheit
halber wird hier auf diese Möglichkeit nicht explizit eingegangen. Wer Module
erstellen will, muß selbst die entsprechenden Veränderungen vornehmen. Weitere
Informationen findet man im
Module HOWTO,
das zur Zeit leider nicht mehr betreut wird.
Folgende Optionen sind für AX.25 wichtig:
Code maturity level options
[*] Prompt for development and/or incomplete code/drivers
Loadable Module Support
[*] Enable loadable module support (wer Module vorsehen will)
...
[?] Kernel daemon support (e.g. autoload of modules)
General Setup
[*] Networking support
Networking options
[*] TCP/IP networking
[?] IP forwarding/gatewaying
...
[?] IP tunneling
...
[?] IP allow large windows (not recommended if < 16 MB of memory)
...
[*] Amateur Radio AX.25 Level 2
[?] Amateur Radio Net/ROM
[?] Amateur Radio X.25 PLP (ROSE)
Für Kernel 2.2.x zusätzlich:
[*] Packet socket (CONFIG_PACKET)
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 2400 baud AFSK modulation (7.3728 MHz crystal)
[?] Soundmodem support for 2400 baud AFSK modulation (8 MHz 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
[?] Serial port KISS driver for AX.25
[?] BPQ Ethernet driver for AX.25
[?] Gracilis PacketTwin support for AX.25
[?] Ottawa PI and PI/2 support for AX.25
[?] Z8530 SCC KISS emulation driver for AX.25
...
Optionen, die mit einem [*]
markiert sind, müssen
eingeschaltet (mit »y« beantwortet) werden, die mit einem
[?]
markierten hängen von der zu verwendenden Hardware ab
und welche weiteren Optionen einbezogen werden sollen.
Einiges davon wird später noch genauer beschrieben, so daß es
sinnvoll ist, bei Unklarheiten erst mal weiterzulesen und
anschließend wieder zu diesem Abschnitt zurückzukehren.
Nachdem die Konfiguration vervollständigt wurde, sollte es
möglich sein, den Kernel problemlos zu kompilieren. Siehe dazu auch die
Anmerkung zu KISS im Abschnitt
KISS. Wichtig ist es, in jedem Fall
vor dem Kompilieren die Datei
/usr/src/linux/Documentation/CHANGES
zu lesen und
sicherzustellen, daß die dort erwähnten Programmpakete mindestens in der
angegebenen Version installiert sind.
Kompiliert wird mit:
make dep
make clean
make zImage
Der make-Befehl akzeptiert die einzelnen Optionen auf einer Zeile, so daß man auch
make dep clean zImage
eingeben kann. Wurde der Kernel erfolgreich kompiliert, kann man ihn dorthin bringen, wo er hin muß:
cat /usr/src/linux/arch/i386/boot/zImage > /vmlinuz
Wer Lilo installiert hat, muß diesen starten:
lilo
Auf diese Weise erkennt Lilo, daß ein neuer Kernel installiert wurde und bootet diesen beim nächsten Neustart. Ein
make zlilo
automatisiert die Schritte zImage
, Kernelkopie und
LILO-Installation. Da hierbei gleichzeitig die Datei
System.map
aktualisiert wird, ist dieser Befehl von
Vorteil. Wer sich aber nicht sicher ist, ob der neue Kernel auch wirklich
startet, sollte dann aber eine Bootdiskette bereithalten.
Weitere Informationen zu diesem Thema gibt das
Kernel HOWTO.
Wer seinen Kernel mit einem Patch auf die aktuelle Version bringen
will, sollte nach dem Patchen mittels
cd usr/src/linux
zcat /pfad/zum/patch-x.x.x.gz | patch -p1
das Quelltextverzeichnis mit einem
find /usr/src/linux -name *.orig | xargs rm
aufräumen. Ein
find /usr/src/linux -name *.rej -print
sollte ohne Ausgaben bleiben, sonst ist mit dem Patchen etwas schiefgelaufen.
Einsteigern wird zwar nicht empfohlen, die Treiber als Module
zu kompilieren, es ist jedoch in der Testphase manchmal recht
hilfreich. Das korrekte Funktionieren der Module hängt von
passenden Einträgen in der Datei System.map
ab. Bekommt man
beim Laden von Modulen Fehlermeldungen bezüglich
»unresolved symbols«, so gibt es dafür zwei Ursachen. Das Problem
kann sowohl durch eine nicht zum laufenden Kernel passende
System.map
als auch durch ein nicht aktualisiertes
Modul-Verzeichnis hervogerufen werden. Im ersteren Fall hilft
das Kopieren der passenden System.map
nach /
.
In letzterem Fall sollte man das Verzeichnis
/lib/modules/{aktuelle Kernel-Version}
leeren und die
Module noch einmal neu erstellen und installieren:
cd /usr/src/linux
make modules modules_install
Dieser Schritt ist selbstverständlich ebenfalls nach der Erstellung eines neuen Kernels fällig. Anschließend aktualisiert man die Abhängigkeiten der einzelnen Module untereinander mit:
depmod -a
Weiterhin ist es notwendig, einige Einträge in der Datei
/etc/conf.modules
hinzuzufügen, damit die Module im
Bedarfsfall durch den kerneld
automatisch
geladen werden können. Der kerneld
muß dafür gestartet sein, ein
ps fax | grep kerneld
sollte das auch anzeigen.
Hier also ein Beispiel:
#/etc/conf.modules
#
# Konfigurationsdatei für den kerneld
#
# WICHTIG: Alle genannten Treiber müssen als gleichnamige
# Module in /lib/modules/{Kernelversion} vorliegen!
#
alias net-pf3 ax25
#
# Suche nach einem Treiber unterdrücken:
# (Wichtig bei einigen Programmen der Debian-Distribution)
#
alias net-pf5 off
#
alias net-pf6 netrom
alias net-pf-11 rose
alias tty-ldisc-1 slip
alias tty-ldisc-3 ppp
alias tty-ldisc-5 mkiss
#
# Für jedes Device muß einzeln ein Alias-Eintrag erfolgen:
#
alias bc0 baycom
alias bc1 baycom
alias nr0 netrom
alias pi0a pi2
alias pt0a pt
#
# Für die nächste Zeile den jeweils passenden
# Treiber auswählen:
alias scc0 optoscc
#
alias sm0 soundmodem
alias tun10 newtunnel
#
# Wichtig für Anwernder der SuSE-Distribution, Version 6,
# mit Kernel 2.2.x:
#
alias char-major-4 serial
alias char-major-5 serial
alias char-major-6 lp
alias net-pf-17 af_packet
#
# ACHTUNG: Die folgenden Einträge werden nur für Kernel
# ab 2.2.0 benötigt!
alias bcsf0 baycom_ser_fdx
alias bcsh0 baycom_ser_hdx
alias bcp0 baycom_par
alias bce0 baycom_epp
#
# Wer den neuen 6pack-Treiber nutzen will, braucht:
alias tty-ldisc-7 6pack
alias sp0 6pack
Insbesondere diejenigen, die BayCom- oder SoundModems verwenden wollen, sollten die entsprechenden Treiber als Module vorsehen. Dazu folgen später noch weitere Erklärungen.
In den Kerneln der Versionen ab 2.0.35 und 2.1.xx sind verbesserte Versionen von fast allen Protokollen und Treibern enthalten. Die wichtigsten Verbesserungen sind:
Alle Protokolle und Treiber liegen auch als Module vor, so
daß man sie mit insmod
laden und mit rmmod
entfernen kann,
wenn man es wünscht. Damit reduzieren sich die Speicheranforderungen
des Kernels für selten genutzte Module, Entwicklung und
Fehlersuche werden um einiges einfacher. Doch, wie bereits gesagt,
die Konfiguration wird etwas schwieriger.
Alle Devices wie PacketTwin, SCC und BayCom usw. bieten jetzt ein normales Netzwerkinterface an; sie erscheinen den Programmen wie der Ethernet-Treiber, nicht mehr wie KISS-TNCs. Wer will, kann mit dem neuen Utility net2kiss ein KISS-Interface auf diese Devices aufsetzen.
Viele Fehler wurden beseitigt, neue Eigenschaften wurden hinzugefügt. Eine wichtige Erweiterung ist das ROSE-Protokoll.
Nachdem der Kernel kompiliert wurde (und auch startet), sollten die neuen Netzwerk-Tools kompiliert werden. Sie erlauben Veränderungen an der Konfiguration der Netzwerk-Devices und das Hinzufügen von Routen zur Routing-Tabelle.
Informationen zur derzeit aktuellen Version (net-tools-1.52.tar.gz
)
finden sich hier:
http://www.tazenda.demon.co.uk/phil/net-tools/
Die Net-Tools werden von Phil Blundell (pb@nexus.co.uk
) betreut,
Bernd Eckenfels (Bernd.Eckenfels@inka.de
) ist der "Co-Maintainer". Seine
Net-Tools-Page findet man dieser Adresse:
http://sites.inka.de/sites/lina/linux/NetTools/
Nicht vergessen: nach dem Entpacken die Datei Release
lesen und den dort
stehenden Anweisungen folgen.
Mit folgenden Schritten installiert man die Net-Tools:
cd /usr/src
tar zxvf /tmp/net-tools-1.52.tar.gz
cd net-tools-1.52
make config
An dieser Stelle werden, ähnlich wie bei der Kernel-Konfiguration, einige Fragen gestellt. Man muß nun sicherstellen, alle Protokolle und Typen von Netzwerk-Devices einzubinden, die genutzt werden sollen.
Fragen, auf die man keine Antwort weiß, sollte man mit »y« beantworten. Wichtig: Die Protokolle müssen vorher auch bei der Kernel-Konfiguration eingeschaltet worden sein. Hat man zum Beispiel »AppleTalk« beim Kernel deaktiviert, so darf man die entsprechende Frage bei den Net-Tools nicht mit »y« beantworten. Beachtet man dies nicht, so können die Tools nicht kompiliert werden. Nach beendeter Kompilierung werden die Programme mit
make install
an passender Stelle installiert.
Wer die IP-Firewall-Möglichkeiten nutzen will, benötigt das aktuelle Tool
ipfwadm
zur Administration der Firewalls. Das ältere Programm ipfw
arbeitet mit
den neueren Kernels nicht zusammen und wird daher durch ipfwadm
ersetzt.
Folgende Optionen beim Kernel-Kompilieren müssen gesetzt sein:
Networking options
[*] Firewalling
[*] IP Firewalling
Mit folgenden Befehlen wird ipfwadm
kompiliert:
cd /usr/src
tar zxvf /tmp/ipfwadm-2.3.0.tar.gz
cd ipfwadm-2.3.0
make install
cp ipfwadm.8 /usr/man/man8
cp ipfw.4 /usr/man/man4
Nutzer eines Kernels der 2.2.x-Reihe benötigen an Stelle des ipfwadm
das
Programm ipchains
. Wenn die Datei /proc/net/ip_fwchains
existiert, dann ist der Kernel mit ipchains
funktionsfähig.
Andernfalls muß er neu übersetzt werden;
siehe dazu auch das im ipchains
-Archiv enthaltene HOWTO.
Das Kompilieren ist auch hier recht einfach:
cd /usr/src
tar zxvf /tmp/ipchains-1.3.9.tar.gz
cd ipchains-1.3.9
make install
Wer diese Pakete bereits in seiner Distribution vorfindet, braucht sie natürlich nicht nochmals zu installieren.
Nachdem der neue Kernel erfolgreich kompiliert und mit diesem neu gestartet wurde, müssen jetzt die Anwenderprogramme kompiliert werden. Das geht mit folgenden Befehlen:
cd /usr/src
tar zxvf /tmp/ax25-utils-2.1.42a.tar.gz
cd ax25-utils-2.1.42a
make config
make
make install
Debian-Nutzer müssen vorher die Verzeichnisse
/usr/include/asm
und /usr/include/linux
umbenennen und an ihrer Stelle Links auf den Kernel-Quelltext legen:
cd /usr/include
mv linux linux.debian
mv asm asm.debian
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/asm asm
Man sollte in diesem Zusammenhang kontrollieren, daß
/usr/src/linux/include/asm
ein Link auf asm-i386
ist. Die Dateien werden im Verzeichnis /usr
in die
Unterverzeichnisse bin
, sbin
und man
installiert.
Werden die AX.25-Utilities zum allerersten Mal installiert, d.h., sie befanden
sich noch nie vorher auf dem System, so verwendet man auch den Befehl
make installconf
der einige Beispiel-Konfigurationsdateien unter
/etc/ax25
installiert, die als
Grundlage für die eigene Konfiguration dienen können. Erscheinen
Bildschirmmeldungen wie
gcc-Wall -Wstrict-prototypes -o2 -I../lib -c call.c
call.c: In funktion `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)
sollte man doppelt überprüfen, ob das ncurses-Paket installiert ist. Das Konfigurationsskript versucht, ncurses an den üblichen Stellen zu finden, doch auf manchen Systemen ist ncurses nicht richtig installiert und es kann dann das Paket nicht finden. Wer Programme kompilieren will, die die AX.25-Bibliotheken nutzen, und dabei Fehlermeldungen erhält, kann die Bibliotheken mit
make installib
korrekt installieren.
Die im vorigen Abschnitt besprochenen AX-25-Utils lassen sich auf Systemen, die die libc6 bzw. glibc 2.x verwenden, nicht mehr kompilieren.
Unter folgenden Adressen
findet man die Pakete
ax25util-2.1.42a-0.i386.rpm
(ftp.suse.com
) ax25util-2.1.42a-3.i386.rpm
(ftp.funet.fi
) ax25util-devel-2.1.42a-0.i386.rpm
(ftp.suse.com
)ax25util-devel-2.1.42a-3.i386.rpm
(ftp.funet.fi
)
die zur Verwendung auf den erwähnten Systemen gedacht sind. Auf
ftp.funet.fi:/pub/ham/unix/Linux/packet/ax25/packages/libc6/deb/
findet sich das Paket ax25-utils_2.1.42a-6.deb
für
die Nutzer der Debian-Distribution. Da die Pakete bereits
vorkompilierte Versionen der AX-25-Utilities enthalten, ist ein
Selbstkompilieren nicht mehr unbedingt notwendig. Wichtig ist jedoch,
auf die korrekte Installation der Header-Dateien zu achten
(ax25util-devel-2.1.42a-0.i386.rpm
), da sich sonst
einige AX.25-Anwendungen, wie PR-Terminalprogramme, nicht
kompilieren lassen.
Dem Debian-Paket fehlt das Programm smdiag
. Deshalb sollte es
nur eingesetzt werden, wenn kein BayCom- oder SoundModem verwendet
werden soll. Wer dieses Programm benötigt, sollte das RPM-Archiv
der AX.25-Utilities ebenso wie das Development-Archiv mit dem
Tool alien
nach *.deb
konvertieren und mit dpkg
installieren.
Eine weitere Möglichkeit stellt das auf der Homepage von
Patrick Ouellette (pouellet@eng.utoledo.edu
) verfügbare
Archiv ax25-utils-2.1.42.kb8pym.tar.gz
dar, das Ergebnis
von Patricks Modifikationen ist, die er in dem Patch
ax25-utils-2.1.42.kb8pym.diff
zusammengefaßt hat.
Dieser Patch sollte mit dem Standardarchiv
ax25-utils-2.1.42a.tar.gz
funktionieren. Patrick weist
jedoch ausdrücklich darauf hin, daß es sich hierbei
um Testversionen handelt. Da zunächst nur Wert auf
Kompilierbarkeit gelegt wurde, sind manche Programme evtl. nicht
funktionsfähig.
Die neue Version der AX.25-Utilities wird erstellt, indem die drei Archive
ax25-apps-0.0.2.tar.gz
ax25-tools-0.0.3.tar.gz
libax25-0.0.5.tar.gz
in das Verzeichnis /usr/src
entpackt und von dort
aus installiert werden:
cd /usr/src
tar -zxvf archivname
cd {archivname ohne die Endung .tar.gz}
./configure
make install