SCC Karten

Wichtige Kernel-Compilier-Optionen:
General Setup 

[*] Networking support

Network Device Support 

...
[*] Radio network interfaces 
...
[*] Z8530 SCC KISS emulation driver for AX.25 
Joerg Reuter, DL1BKE (jreuter@lykos.tng.oche.de) entwickelte die allgemeine Unterstützung für SCC-Karten. Sein Treiber ist für eine Vielzahl Karten konfigurierbar und stellt wie die anderen Netzwerk-Device zur Verfügung, so daß man die SCC-Karte wie eine Netzwerkkarte ansprechen kann.

6.1.6.1. Die Konfigurations-Tools finden und installieren

Während der Kernel-Treiber in den Standard-Quelltexten enthalten ist, gibt es bei Joerg neuere Versionen seines Treibers und die dazu notwendigen Konfigurationsprogramme. Diese findet man auf ftp://ftp.tu-dresden.de im Verzeichnis /pub/soft/hamradio/packet/tcpip/linux/ oder bei ftp://ftp.ucsd.edu in den Verzeichnissen /hamradio/packet/tcpip/linux /hamradio/packet/tcpip/incoming/ Es gibt verschiedene Versionen, man muß sich die für seinen Kernel passende heraussuchen.
Für Kernel 2.0.xx :
z8530drv-2.4a.dl1bke.tar.gz Für Kernel 2.1.6 oder höher:
z8530drv-utils-3.0.tar.gz 
Mit folgenden Befehlen läßt sich das Paket installieren:
cd /usr/src gzip -dc /tmp/z8530drv-2.4a.dl1bke.tar.gz | tar xvpofz - 
cd z8530drv 
make clean 
make dep 
make module (wenn der Treiber als Modul erstellt werden soll) 
make for_kernel (wenn der Treiber in den Kernel eincompiliert werden soll) 
make install
Nach dem erfolgreichen Compilieren sollten sich drei neue Programme im Verzeichnis /sbin finden: gencfg, sccinit und sccstat. Diese Programme dienen zur Einrichtung des Treibers für die SCC-Karte. Der Treiber erzeugt Netzwerkdevices mit den Namenn scc0 - scc7. Hat man vorhin make for_kernel eingegeben, so muß der Kernel neu compiliert werden.
Die Option
[*] Z8530 SCC KISS emulation driver for AX.25 
beim "Network Device Support" muß angegeben sein.
Hat man sich entschieden, den Treiber als Modul zu compilieren ('make module'), so wurde ein Modul namens scc.o in das entsprechende Verzeichnis /lib/modules/{kernelversion}/net kopiert, welches mit insmod geladen werden kann.

Den Treiber für die verwendete Karte einrichten

Der Z8530-SCC-Treiber ist so flexibel entwickelt worden, daß er möglichst viele verschiedene SCC-Karten unterstützt. Der Preis dafür ist eine etwas kompliziertere Konfiguration.
In dem Treiber-Archiv findet sich eine ausführliche Dokumentation, wer Probleme hat, sollte diese lesen.
Insbesondere doc/scc_eng.doc bzw. doc/scc_ger.doc bieten detailliertere Informationen, die nicht in diesem HOWTO enthalten sind.
Das Programm sccinit liest die Datei /etc/z8530drv.conf als Haupt- Konfigurationsdatei aus. Sie ist in zwei große Abschnitte gegliedert, Hardware-Parameter und Kanal-Konfiguration. Nachdem diese Datei entsprechend editiert wurde, muß nur der Aufruf sccinit in das Skript, welches die Netzwerkkonfiguration während des Systemstarts vornimmt, eingetragen werden.
Der Treiber läßt sich erst nach einem Aufruf von sccinit nutzen.

Konfiguration der Hardware-Parameter

Der erste Abschnitt ist in Absätze unterteilt, von denen jeder einen Z8530-Chip repräsentiert.
Jeder Absatz besteht aus einer Liste mit Schlüsselwörtern und den zugeordneten Werten.
Standardmäßig lassen sich bis zu 4 SCC-Chips angeben. Wer mehr braucht, muß in der Datei scc.c die Zeile
#define MAXSCC 4 
entsprechend anpassen. Erlaubte Schlüsselworte und Argumente:
chip    wird verwendet, um die einzelnen Abschnitte voneinander zu               
        trennen. Beliebige Argumente sind erlaubt, sie werden nicht verwendet.

data_a  Wird zur Angabe der Adresse des Datenports für den
        SCC-Kanal 'A' verwendet. Argument ist eine Hexadezimalzahl,
        zum Beispiel 0x300.

ctrl_a  Wird zur Angabe der Adresse des Steuerports für den
        SCC-Kanal 'A' verwendet. Argument ist eine Hexadezimalzahl,
        zum Beispiel 0x304.

data_b  Wird zur Angabe der Adresse des Datenports für den
        SCC-Kanal 'B' verwendet. Argument ist eine Hexadezimalzahl,               
        zum Beispiel 0x301.

ctrl_b  Wird zur Angabe der Adresse des Steuerports für den
        SCC-Kanal 'B' verwendet. Argument ist eine Hexadezimalzahl,
        zum Beispiel 0x305.

irq     Gibt den IRQ an, den der in diesem Abschnitt einzustellende
        Chip verwendet. Argument ist eine Integerzahl, wie 5.

pclock  Gibt die am PCLK-Pin des Z8530 anliegende Taktfrequenz an.
        Als Argument wird ein Integerwert erwartet (Frequenz in Hz),
        Voreinstellung ist 4915200 Hz, wenn dieses Schlüsselwort nicht
        angegeben wird.

board   Der Typ der 8530-SCC-Karte. Folgende Werte sind erlaubt:
        PA0HZP          - die PA0HZP-SCC-Karte
        EAGLE           - die EAGLE-SCC-Karte
        PRIMUS          - die PRIMUS-PC (DG9BL-)Karte
        BAYCOM          - die BayCom-(U)SCC-Karte

escc    optional, schaltet die Unterstützung für erweiterte SCC-
        Chips (ESCC) wie den 8580, 85180 oder 85280 ein.
        Als Argument steht entweder das Wort yes oder no.
        Voreinstellung ist "no".

vector  optional, gibt die Adresse des Vector-Latch (auch als
        Intack-Port bekannt) für die PA0HZP-Karten an. Es gibt nur
        ein Vector-Latch für alle Chips. Voreinstellung: 0 .
        
special optional, gibt die Adresse eines speziellen Funktions-
        registers für manche Karten an. Voreinstellung: 0 .
Einige Beispielkonfigurationen:
BayCom USCC 
chip 1
data_a 0x300 
ctrl_a 0x304 
data_b 0x301
ctrl_b 0x305 
irq 5
board BAYCOM 
# # SCC Chip2 # 
chip 2
data_a 0x302 
ctrl_a 0x306 
data_b 0x303
ctrl_b 0x307 
board BAYCOM 

PA0HZP SCC-Karte
chip 1 
data_a 0x153 
data_b 0x151
ctrl_a 0x152 
ctrl_b 0x150 
irq9 
pclock 4915200 
board PA0HZP 
vector0x168 
escc no 
# # SCC Chip2 #
chip 2 
data_a 0x157 
data_b 0x155
ctrl_a 0x156 
ctrl_b 0x154 
irq9 
pclock 4915200 
board PA0HZP 
vector0x168 
escc no 

DRSI-SCC-Karte
chip 1 
data_a 0x303 
data_b 0x301
ctrl_a 0x302 
ctrl_b 0x300 
irq7 
pclock 4915200 
board DRSI
escc no 
Bei wem die Karte bereits unter NOS funktioniert, der kann die Treiber-Befehle des PE1CHL-NOS-Treibers mit dem Befehl gencfg in eine für die Konfigurationsdatei des Z8530-Treibers nutzbare Form bringen.
Gencfg wird genau so wie für den PE1CHL-Treiber von NOS aufgerufen: Zum Beispiel erstellt
gencfg 2 0x150 4 2 0 1 0x168 9 4915200 
eine Grundkonfiguration für die OptoSCC-Karte. Kanal-Konfiguration

Im Abschnitt Kanal-Konfiguration werden alle anderen für den jeweiligen Port relevanten Parameter eingestellt. Auch dieser Abschnitt ist in einzelne Absätze unterteilt. Jeder dieser Absätze steht für einen logischen Port, da jede SCC-Karte zwei Ports bereitstellt, gibt es für jeden Hardware-Absatz zwei solcher Absätze. Die dazu notwendigen Schlüsselworte und Werte müssen in der Datei /etc/z8530drv.conf immer NACH dem Abschnitt mit den Hardware-Parametern stehen. Die Reihenfolge in diesem Abschnitt ist sehr wichtig, mit der hier vorgeschlagenen Reihenfolge sollte es funktionieren.
Folgende Schlüsselwörter und Werte gibt es hier:
device          muß in der ersten Zeile einer Port-Definition stehen und
                gibt den Namen der speziellen Gerätedatei an, auf die
                sich die weitere Konfiguration bezieht, z.B. scc0
speed           gibt die Übertragungsrate in Bits pro Sekunde an, muß
                ganzzahlig sein, z.B. 1200
clock           gibt an, aus welcher Quelle der Datentakt stammt.
               
Erlaubte Werte sind:
               
                dpll            normaler Halbduplexbetrieb
                external        Das Modem hat einen eigenen Sende-/Empfangstakt
                divider         verwendet den Fullduplex-Teiler, wenn installiert

mode            gibt die zu verwendende Datenkodierung an. Mögliche Werte
                sind nrz und nrzi. 

rxbuffers       gibt die Anzahl der im Speicher zu reservierenden Empfangs-
                puffer vor. Der Wert ist ganzzahlig, z.B. 8 .

txbuffers       gibt die Anzahl der im Speicher zu reservierenden Sende-
                puffer vor. Der Wert ist ganzzahlig, z.B. 8 .

bufsize         gibt die Größe der Sende-/Empfangspuffer vor. Der Wert wird
                in Bytes angegeben und stellt die Gesamtlänge eines Paketes
                dar, es muß also die Länge der AX.25-Header zum Datenfeld
                hinzugerechnet werden. Dieses Schlüsselwort ist optional, die
                Voreinstellung 384.

txdelay         Das von KISS bekannte TXDelay, der Wert ist ganzzahlig und
                wird in Millisekunden angegeben.

persist         Der Wert für die Persistence, ganzzahlig.

slot            KISS-Slottime, ganzzahlig, in Millisekunden.

tail            Der TXTail-Wert bei KISS, ganzzahlig, in Millisekunden.

fulldup         das bei KISS verwendete Fullduplex-Flag, Wert ist entweder
                1 für Vollduplex oder 0 für Halbduplex

wait            Der Wait-Wert bei KISS, ganzzahlig, in Millisekunden.

min             der Min-Wert bei KISS, ganzzahlig, in Sekunden.

maxkey          die maximale Sendezeit bei KISS ganzzahlig, in Sekunden.

idle            Der Idle-Timer-Wert, ganzzahlig, in Sekunden.

maxdef          Der Maxdef-Wert bei Kiss, ganzzahlig.

group           Der group-Wert bei KISS, ganzzahlig.

txoff           Der txoff-Wert bei Kiss, ganzzahlig, in Millisekunden.

softdcd         Der Wert für SoftDCD (Software-Rauschsperre), ganzzahlig.

slip            Das Slip-Flag bei KISS, ganzzahlig. 

Den Treiber verwenden

Man verwendet die scc* - Geräte wie andere Netzwerk-Devices auch.
Beispiel:
/sbin/ifconfig scc0 44.136.8.5 netmask 255.255.255.0
/sbin/ifconfig scc0 up 
axparms -setcall scc0 VK2KTJ up

Die Programme sccstat und sccparam

Bei der Fehlersuche kann das Programm sccstat helfen, indem man damit die aktuelle Konfiguration eines SCC-Device anzeigen lassen kann. Aufruf zum Beispiel mit:
sccstat scc0 
Es werden viele Informationen zur Einstellung und Funktion des SCC-Ports scc0 angezeigt.
Mit dem Programm sccparam kann man nach dem Booten die Konfiguration verändern. Die Syntax ist an den NOS-Befehl param angelehnt, zum Setzen des TXTail-Wertes auf 100 ms würde man eingeben:
sccparam scc0 txtail 0x8 

Wegweiser

Überprüfen sie nun ihre Konfiguration.



Hans-Peter Zorn