Inhalt

4. Die Software zu AX.25/NetROM/ROSE installieren

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.

4.1 Den Kernel kompilieren

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.

Ein Wort zu den Kernel-Modulen

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.

Was ist neu in den verschiedenen Kernel-Versionen?

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:

modularisiert

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 Treiber sind jetzt Netzwerktreiber

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.

Fehler beseitigt

Viele Fehler wurden beseitigt, neue Eigenschaften wurden hinzugefügt. Eine wichtige Erweiterung ist das ROSE-Protokoll.

4.2 Die Tools zur Netzwerkkonfiguration

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/

Die Standardfassung der Net-Tools erstellen

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.

Ipfwadm und ipchains

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.

4.3 Die Anwender- und Utilityprogramme zu AX.25

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.

Hinweis für die Benutzer libc6-basierter Systeme (S.u.S.E. 6.0, RedHat 5.2, Debian 2.0...)

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

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 aktuellen AX.25-Utilities 0.0.1

Die neue Version der AX.25-Utilities wird erstellt, indem die drei Archive

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


Inhalt