Packet-Radio ermöglicht es, mit handelsüblichen CB-Funk-Geräten Daten zwischen Rechnern zu übertragen. Im CB-Funk existiert es existiert seit 1994 und wurde anfangs hauptsächlich zur Unterhaltung per Computer (=Chat) eingesetzt. Dabei entstand auch ein eingenständiges Nachrichten-Netzwerk, vergleichbar mit Mail und News im Internet. Inzwischen gibt es sogar einige Gateways, mit denen sich Nachrichten zwischen beiden Netzen verschicken lassen.
Durch die immer stärkere Verbreitung von Linux gab es natürlich auch schnell Unterstützung für Packet-Radio. Inzwischen wird Linux von vielen Nachrichten-Systemen im Packet-Radio-Netzwerk eingesetzt. Was lag nun also näher, als neben dem bisher genutzen Verfahren auch noch andere Daten, wie zum Beispiel TCP/IP, zu übertragen.
Hierbei ist das benutzte Verfahren allerdings nicht völlig neu. Wie bei jeder Übertragung per Packet-Radio werde sogenannte AX25-Frames benutzt. Diese werden dann von der verwendeten Hardware per Funk zur Gegenstelle übertragen. Bei der Übertragung von TCP/IP funktioniert dies im Prinzip genauso, die einzelnen IP-Pakete werden einfach in AX25-Frames "verpackt".
Die Konfiguration von Linux und die Einrichtung der benötigten
Hard- und Software soll hier erklärt werden. Eine solche Verbindung
kann dann zum Beispiel für eine kostenlose Internet-Verbindung genutzt
werden. Aber auch wenn keine Gegenstelle mit einer festen Internet-Verbindung
zur Verfügung steht, kann man damit z. B. ein kleines Intranet aufbauen,
um Nachrichten zwischen mehreren Rechnern auszutauschen.
In Deutschland sind mehrere Frequenzbereiche für Jedermannsfunk
oder sogenannte ISM-Anwendungen freigegeben. Bei den wichtigsten Bereichen
handelt es sich um das 11m Kurzwellenband (auch als CB-Funk bekannt)
und um einen schmalen Bereich im 70cm UHF Band. Die Funkgeräte
hierfür heißen "LPDs" und sind unter anderem bei großen
Elektronik-Versandhäusern erhältlich.
2. Die Funkanlage
2.1 Was braucht man zum Funken ?
Sieht man mal von "nebensächlichen" Dingen wie Stromversorgung und
diversen Verbindungskabeln ab, besteht eine Funkanlage im wesentlichen
aus dem Funkgerät selbst und einer dazu passenden Antenne.
2.2 11m oder 70cm ?
Die folgende Tabelle soll die wichtigsten Unterschiede zwischen beiden
Funkanwendungen darstellen:
|
|
||||||||||||||
|
|
Ein Telefonmodem enthält eine eigene CPU, die den Datenfluß entsprechend für die Übertragung aufbereitet. Der Rechner wird also nicht stark belastet, da er einfach die Rohdaten an die serielle Schnittstelle kopieren muss. Alles Weitere übernimmt das Modem.
Bei den Funkmodems wird das Problem ähnlich gelöst. Ein Modem mit eigenem Prozessor heisst hier jedoch TNC. Es bekommt die Daten im sogenannten KISS-Modus über die serielle Schnittstelle und sorgt für deren Übertragung.
Als Modem bezeichnet man jedoch ein einfaches System, welches keine eigene CPU besitzt, sondern nur die Datensignale in Töne umwandelt. Wann welche Daten gesendet werden, hat der steuernde Computer zu entscheiden.
Noch eine Schritt weiter geht eine als Funkmodem eingesetzte Soundkarte. Hier wird selbst für die Tonerzeugung die vorhandene Hardware genutzt. Dieses Verfahren funktioniert vor allem bei 1200 Baud recht gut, da das Signal recht stabil gegenüber Verzerrungen ist.
Aufgrund der entstehenden Rechenlast sind Modems und Soundkartensysteme nur für geringe Geschwindigkeiten geeignet. Ein TNC dagegen belastet den Computer kaum und ist deswegen in allen Multitasking-Systemen (und damit auch unter Linux) den anderen Lösungen vorzuziehen.
Ein High-Speed TNC der Firma MHE
für 2400-9600bps |
Die Ansteuerung aller TNCs erfolgt jedoch immer im KISS-Modus. Dabei hat der Computer die größtmögliche Kontrolle über die Aussendung. Um einen KISS Treiber zu installieren, wird der Befehl kissattach aus den AX25-Utilities benötigt. Weiterhin muss KISS-Support in den Kernel kompiliert werden. (s. in den entsprechenden Abschnitten)
TNCs unterstützen grundsätzlich jede Datenrate auf der Funkstrecke. Diese Geschwindigkeit ist unabhängig von der Datenrate zwischen Computer und TNC. Die TNCs der Firma MHE können auch auf Kurzwelle (CB-Funk) mit bis zu 9600 bps übertragen, bei SSB-Schmalband Betriebsarten sind noch 2400 bps möglich.
Preis: TNCs kosten zwischen 200 und 300 DM. Die MHE TNCs kommen auf ca. 600 DM.
1200 Baud Minimodem |
Es muss ein 2.1er Kernel oder ein Kernel 2.0.x mit AX25-Module Patch verwendet werden.
Obwohl es Modems der Firma MHE gibt, die 2400-4800 bps übertragen können, empfiehlt sich die Verwendung eines Minimodems nur für Datenraten bis 1200 Baud. Die Erkennung höherer Signalgeschwindigkeiten erfordert mehrere tausend Interrupts pro Sekunde und wirkt sich sehr störend aus das Systemverhalten aus.
Linux unterstützt bis zu vier Minimodems. Zum Betrieb eines solchen Modems ist mindestens ein 386er notwendig. Eine Schnittstelle mit 16550 bringt keine Vorteile, da die Kontrolleitungen direkt angesteuert werden.
Preis: Ein Minimodem ist ab 90 DM erhältlich. Im Eigenbau benötigt man Teile für ca. 50 DM.
Da die Qualität der Soundkarten stark schwankt (was sich am besten anhört ist nicht unbedingt das beste Modem), sollte man auch bei diesem Modemtyp nur bis 1200 oder maximal 2400 Baud gehen. 9600bps FSK kann zwar gelesen werden, das Senden macht aber oft Probleme.
Im Gegensatz zu TNC und Minimodem kann die Soundkarte nicht das Funkgerät von selbst auf Sendung schalten. Entsprechende Hardware muss am Parallelport, an einem COM-Port oder an der MIDI-Schnittstelle angeschlossen werden. Weitere Informationen hierzu gibt es auf http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html.
Übertragunsverfahren | 11m | 70cm | Modem |
---|---|---|---|
1200 Baud AFSK | Ja | Ja | TNC
Modem Soundkarte |
2400 Baud AFSK | modifiziert | Ja | TNC
Modem Soundkarte |
2400 bps QAM | Ja | Ja | MHE-TNC
MHE-Modem |
4800 bps QAM | Ja | Ja | MHE-TNC
MHE-Modem |
7200 bps QAM | modifiziert | modifiziert | MHE-TNC
MHE-Modem |
9600 bps QAM | modifiziert | modifiziert | MHE-TNC
MHE-Modem |
9600 Baud FSK | Nein | modifiziert | TNC
Modem Soundkarte |
Hier eine Übersicht, welche Kernelversionen mit welchen AX25-Utilities
zusammenarbeiten:
Kernel Version | AX25 Utilities | |
---|---|---|
linux-2.0.29 | ax25-utils-2.0.12c.tar.gz | veraltet |
linux-2.0.29+module12 | ax25-utils-2.1.22b.tar.gz | |
linux-2.0.30+module14c | ax25-utils-2.1.42a.tar.gz | |
linux-2.0.31+module14d | ax25-utils-2.1.42a.tar.gz | |
linux-2.1.22 ++ | ax25-utils-2.1.22b.tar.gz | |
linux-2.1.42 ++ | ax25-utils-2.1.42a.tar.gz |
# cd /usr/src # tar xfz /pub/net/ax25/ax25-module-14e.tar.gz # patch -p0 < /usr/src/ax25-module-14/ax25-2.0.31-2.1.47-2.diffAn einigen Stellen wird während des Patchens nach einer Datei gefragt, die nicht automatisch gefunden werden konnte. Hierbei handelt es sich um Quellcode für andere Systeme, wie z.B. Alpha oder m68k. Diese Abfragen kann man dann überspringen.
# cd /usr/src/linux # make menuconfigDie wichtigsten Optionen sind nun:
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 ...Die Optionen, bei denen ein [*] angegeben ist, müssen auf jeden Fall aktiviert werden. Optionen mit [?] werden individuell nach der verwendeten Hardware aktiviert.
Kommt z.B. ein TNC (im KISS-Mode) zum Einsatz, so muss bei den "Network Devices" nur
[*] Serial port KISS driver for AX.25angegeben werden.
Soundmodem-Unterstützung sollte man immer als Modul einbinden, da dieser Treiber nicht gleichzeitig mit dem normalen Linux Soundtreiber laufen kann. Als Modul kann man den Soundmodem-Treiber dann später einfach mit
# modprobe soundmodemeinbinden. Um einen Treiber als Modul zu generieren, muss man bei "Menuconfig" an der entsprechenden Stelle ein [M] angeben und nach dem Kernel nochmals die Module mit
# make modules # make modules_installübersetzen und installieren.
Die net-tools-1.33.tar.gz werden als Quellcode geliefert und müssen kompiliert werden.
# cd /usr/src # tar xfz net-tools-1.33.tar.gz # cd net-tools-1.33 # make configBei der Konfiguration wird abgefragt, welche Netzwerktypen unterstützt werden sollen. Alles, was mit AX.25 zu tun hat, sollte auf jeden Fall eingebunden werden. Im Zweifelsfall einfach mit Ja ("Y") antworten.
Nun können die Binärfiles mit
# make installin die vorgesehenen Verzeichnisse kopiert werden.
Auch diese Programme werden als Quellcode geliefert. Die Installation verläuft ungefähr folgendermaßen:
# cd /usr/src # tar xfz ax25-utils-2.1.42a.tar.gz # cd ax25-utils-2.1.42a # make config # make # make installWeiterhin wird die Möglichkeit geboten, einen Satz vorgefertigter Konfigurationsdateien zu installieren. Dies sollte auf jeden Fall gemacht werden, es sei denn, es handelt sich um ein Update eines bereits laufenden Systems. In diesem Fall würden die AX25-Konfigurationsdateien überschrieben werden.
Es empfiehlt sich also für alle Neuinstallationen
# make installconfAchtung: Falls es zu Fehlern während des Kompilierens kommt, könnte dies daran liegen, daß das ncurses Paket nicht oder falsch installiert ist.
Diese kann (fertig konfiguriert) ungefähr so aussehen:
#portname callsign baudrate paclen window description port1 205193 19200 255 7 MHE port2 NOCALL-1 9600 128 3 TNC2Swobei:
Um ein KISS-Eintrag zu erzeugen, wird das Programm kissattach benötigt:
# /usr/sbin/kissattach /dev/ttyS0 port1port1 ist die Bezeichnung, die in in der axports Datei am Anfang einer Zeile verwendet wird.
Der kissattach Befehl erzeugt einen KISS-Netzwerkeintrag. Diese Einträge werden von ax[0-9] durchnummeriert.
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers General setup ---> [*] Networking support Network device support ---> [*] Network device support ... [*] Radio network interfaces [*] BAYCOM ser12 and par96 driver for AX.25Minimodem Treiber bekommen die Bezeichnung bc[0-3].
Um einen solchen Treiber z.B. auf COM1 (/dev/ttyS0) zu installieren, sind folgende Schritte notwendig:
# setserial /dev/ttyS0 uart none # sethdlc -p -i bc0 mode "ser12*" io 0x3f8 irq 4 # /sbin/ifconfig bc0 hw ax25 NOCALL-1 upMit setserial muß der normale serielle Treiber abgeschaltet werden, da das Minimodem eine spezielle Ansteuerung erforderlich macht. sethdlc setzt die Parameter für den zu erzeugenden "bc0"-Eintrag. Mit ifconfig läßt sich schließlich der Port hochfahren. Dabei wird das angegebene Rufzeichen in der axports Datei gesucht und die entsprechende Portbezeichnung am Anfang der Zeile diesem Port zugeordenet. Beim Hochfahren mit ifconfig kann dem Port auch gleich eine IP-Adresse zugewiesen werden.
# modprobe soundmodemläd das entsprechende Modul.
Die Soundkarte wird durch das Laden des Treibers nicht unbedingt initialisiert. Eventuell ist ein Aufruf von
# setcrystal [-w wssio] [-s sbio] [-f synthio] [-i irq] [-d dma] [-c dma2]erforderlich. Um z.B. eine Soundblasterkarte zu initialisieren, benutzt man:
# setcrystal -s 0x220 -i 5 -d 1Der Treiber muss genau wie der Minimodemtreiber mit sethdlc konfiguriert werden. Die erzeugten Netzwerkeinträge lauten sm[0-3].
# sethdlc -p -i sm0 mode sbc:afsk1200 io 0x220 irq 5 dma 1 pario 0x378Hierbei wird eine PTT-Schaltung an der parallelen Schnittstelle verwendet.
Die richtige Anpassung der Sende- und Empfangslautstärke ist sehr wichtig, damit die Pakete sauber gelesen werden. Hierzu gibt es zwei Hilfsprogramme smdiag und smmixer, die jedoch nur kurz vorgestellt werden sollen.
smmixer ermöglicht Lautstärkeeinstellungen an der Soundkarte, da Programme wie xmix aufgrund des deaktivierten Linux-Soundtreibers nicht funktionieren.
smdiag ist ein kleines Programm für X, das ein Oszilloskop darstellt und zur Überprüfung des Empfangs eingesetzt werden kann. Es kann auch sg. Augendiagramme fü 9600 Baud FSK ausgeben.
Nun kann der Port mit
# /sbin/ifconfig sm0 hw ax25 NOCALL-1 upaktiviert werden. Hierbei gilt das gleiche wie bei den Minimodem-Treibern bc[0-3]. Bei ifconfig können auch gleich wieder die für TCP/IP erforderlichen Daten mit angegeben werden.
Weiterhin besteht die Möglichkeit, die IP-Adressen und Netzmasken zumindest beim KISS-Treiber gleich mit kissattach zu setzen.
Fertige TCP/IP Konfigurationen können dann wie üblich mit
# ping -i 5 192.168.205.33getestet werden. Das -i 5 gibt dabei an, dass nur alle 5 Sekunden ein Ping gesendet werden soll, da sonst der Funkkanal hoffnungslos überlastet werden würde.
Funktioniert die Verbindung, so können alle (nicht zeitintensiven) Internetdienste über die Funkverbindung verwendet werden.
Ein wichtiger Parameter, den die Software nicht von alleine erkennen kann ist das TX-Delay. Hierbei handelt es sich um die Verzögerung zwischen Auftasten des Senders und der Aussendung der Daten. Je nach Funkgerät und Übertragungsverfahren beträgt das TX-Delay zwischen 100 und 500 Millisekunden. Ein zu langes TX-Delay belegt den Funkkanal unnötig, bei zu kurzem TX-Delay wird das erste Paket einer Aussendung verschluckt.
Dieser Parameter wird beim KISS-Treiber mit dem Befehl
# kissparms -p <port> -t TXDgesetzt. TXD gibt dabei den TX-Delay Wert in Millisekunden an.
Bei den Treibern für Soundmodem und Minimodem muß dafür der Befehl
# sethdlc -a -i bc0 txd 250 oder # sethdlc -a -i sm0 txd 250verwendet werden.
Es empfiehlt sich, die man-pages zu folgenden Befehlen zu lesen:
Diesem Problem kann man eigentlich nur dadurch begegnen, daß man zwei Funkgeräte auf jeder Seite verwendet. (natürlich auf getrennten Kanälen.) Die TNCs und Minimodem sind für diesen sogenannten Vollduplexbetrieb bereits ausgelegt. Bei Einsatz einer Soundkarte muß diese gleichzeitige Aufnahme und Wiedergabe unterstützen.
Ein größeres Problem hierbei sind allerdings die Funkgeräte. Betreibt man mehrere Funkgeräte gleichzeitig, so stört die Sendung des einen Funkgerätes den Empfang des anderen. Dadurch werden nur noch starke Signale gelesen, die Reichweite von CB-Funk sinkt auf ein Minimum.
Abhilfe schafft hier eine Reduzierung der Sendeleistung und die räumliche Trennung der Antennen. Bei 70cm LPDs treten diese Probleme kaum auf, da die Sendeleistung sehr gering ist. Keine Störungen treten ausserdem von 70cm auf 11m und umgekehrt auf.
Es sollte auf jeden Fall darauf geachtet werden, dass keine Datenpakete auf der Funkstrecke unter normalen Umständen verloren gehen. Ein Datenverlust von 25% ist bereits nicht mehr erträglich. Weite Verbindungsstrecken über 100km, wie sie beim normalen AX.25 Betrieb auf CB teilweise verwendet werden, funktionieren mit TCP/IP nicht oder nur schlecht.
Der Funk sollte also dafür eingesetzt werden, wofür er gedacht ist: Für Kurzstreckenverbindungen, bei denen Standleitungen technisch nicht möglich oder zu teuer sind. Mobilbetrieb ist natürlich auch möglich, aber aufgrund der geringen Reichweite kaum rentabel.
L.A.N.C.E.T. Funkcenter Joachim Bergfeld Muehlstrasse 35 66981 Muenchweiler a. d. Rodalb Tel.: 06395-7689
KKE Funktechnik Gunter Schwambach Hauptstrasse 26 66882 Huetschenhausen Tel.: 06372-6843 (ab 17 Uhr)
Bei weiteren Fragen sind wir unter http://www.psnet.org zu erreichen. Hier gibt es auch weitere Informationen zu den interessanten Themen Packet-Radio und CB-Funk.
Wir freuen uns über jeden interessierten Benutzer, der einmal in die Welt des Funks reinschauen möchte.