Code maturity level options [*] Prompt for development and/or incomplete code/drivers General Setup [*] Networking support ... Network Device Support [*] Radio network interfaces [*] BAYCOM ser12 and par96 driver for AX.25Anmerkung:
In den Kerneln der 2.2.x-Reihe wurden die Bezeichnungen für das Baycom-Modul und die von ihm erzeugten Devices geändert. Es gibt hier für Half- und Fullduplex getrennte Treiber:
Modul-Name Funktion Device ------------------------------------------------------------------------------ baycom_ser_fdx serielles BayCom-Modem, Fullduplex und bcsf0..bcsf3 Halfduplex, umschaltbar, wählbare Baudrate baycom_ser_hdx serielles BayCom-Modem, nur Halfduplex, bcsh0..bcsh3 nur 1200 Baud baycom_par paralleles PicPar- und Par96-Modem, bcp0..bcp3 baycom_epp EPP-Modem bce0..bce3 (Treiber noch in Entwicklung!)Anstelle von "insmod baycom" schreibt man also insmod baycom_ser_fdx und konfiguriert bcsf0 statt "bc0".
Beispiel:
insmod baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4 sethdlc -i bcsf0 -p mode "ser12*" io 0x3f8 irq 4Ausführlichere Informationen zu den neuen Treibern können in der Datei /usr/src/linux/Documentation/networking/baycom.txt nachgelesen werden.
Die Parameter der verwendeten Schnittstelle können mit dem Utility sethdlc
eingestellt werden, hat man nur ein BayCom-Modem installiert, so kann man die
Parameter auf der Kommandozeile für insmod angeben, wenn der als Modul
eingerichtete Treiber geladen wird.
Als Beispiel eine einfache Konfiguration.
Zunächst wird der normale serielle Treiber für die erste Schnittstelle
(COM1) abgeschaltet, dann der BayCom-Treiber für ein serielles 1200-Baud-Modem an COM1
eingerichtet und die Software-DCD eingeschaltet:
setserial /dev/ttyS0 uart none insmod hdlcdrv insmod baycom mode="ser12*" iobase=0x3f8 irq=4
WICHTIG: Einige Schnittstellenbausteine bereiten Probleme im Zusammenhang mit dem BayCom-Treiber. Dieser wird zwar geladen, kann aber nicht auf die Schnittstelle zugreifen. Dies betrifft insbesondere viele der neueren 16550A-UARTs, wie sie auf Pentium-Motherboards oft eingebaut sind.Wer nun keine zusätzliche Schnittstellenkarte mit 8250 oder 16450 UART vorsehen will, der sollte vor die erste setserial-Zeile des Beispiels einfügen:
Benutzer eines Kernel 2.2.x können in einem solchen Fall an Stelle von baycom_ser_fdx baycom_ser_hdx probieren, da dieser Treiber in anderer Weise auf die Hardware zugreift.
setserial /dev/ttyS0 uart 16550A skip_testWeiterhin stört der Linux-Treiber für die parallele Schnittstelle die korrekte Funktion des BayCom-Treibers. Man sollte daher auf den "parallel printer support" im Kernel verzichten oder diesen als Modul kompilieren, damit er bei Notwendigkeit via rmmod entfernt werden kann:
rmmod lpDas komplette Skript sieht dann etwa so aus:
#!/bin/sh rmmod lp setserial /dev/ttyS0 uart 16550A skip_test sleep 3 setserial /dev/ttyS0 uart none insmod hdlcdrv insmod baycom mode="ser12*" iobase=0x3f8 irq=4Damit sollte der Treiber funktionieren, was man mit sethdlc -d einfach nachprüfen kann. Der Wert hinter 'dbg2' sollte etwa 2000-3000 sein und sich ständig ändern. Die Probleme mit dem Schnittstellenbaustein sind ausschließlich auf Schwierigkeiten des Linux-BayCom-Treibers bei der Hardwareinitialisierung zurückzuführen und deshalb von der eingesetzten Modemschaltung weitestgehend unabhängig. Für den Test mit sethdlc braucht das Modem nicht angeschlossen zu sein.
insmod hdlcdrv insmod baycom mode="par96" iobase=0x378 irq=7 options=0Dies ist aber nicht unbedingt der beste Weg.
insmod hdlcdrv insmod baycombereits geladen oder als Treiber in den Kernel eincompiliert. Man kann das Netzwerk-Device bc0 nun einrichten:
sethdlc -p -i bc0 mode par96 io 0x378 irq 7- als serielles Modem an COM1:
sethdlc -p -i bc0 mode "ser12*" io 0x3f8 irq 4
6.1.2.1. AX.25-Kanalzugriffsparameter
Die AX.25-Kanalzugriffsparameter entsprechen den Parametern ppersist, txdelay und slottime. Wiederum wird dazu Sethdlc verwendet. Genaueres steht wiederum in der Hilfeseite, aber ein weiteres Beispiel kann nicht schaden. Wir setzen also das oben begonnene Skript fort, indem wir den BayCom-Treiber mit TXDelay 200 ms, SlotTime 100 ms PPersist 40 und Half-Duplex einrichten:sethdlc -i bc0 -a txd 200 slot 100 ppersist 40 halfAlle Zeitwerte werden in Millisekunden angegeben.
Die AX.25-Unterstützung des Kernels für die Nutzung des BayCom-Device einrichten
Der BayCom-Treiber erzeugt Standard-Netzwerk-Devices, die der Kernel-AX.25-Code nutzen kann. Damit ist die Konfiguration fast dasselbe wie bei einer PI- oder PacketTwin-Karte. Zunächst gibt man dem BayCom-Device ein Rufzeichen:/sbin/ifconfig bc0 hw ax25 VK2KTJ upoder (einige Versionen von ifconfig unterstützen den eben angegebenen Weg nicht):
/sbin/ifconfig bc0 up axparms -setcall bc0 VK2KTJ upAls nächstes wird in der Datei /etc/ax25/axports ein Eintrag für BayCom hinzugefügt. Die Verbindung des Eintrags zum entsprechenden Netzwerk-Device geschieht über das eingestellte Rufzeichen.
Überprüfen sie nun ihre Konfiguration.