# 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.

Last modified: Sun Sep 5 14:32:01 CEST 1999