L2cat: Unterschied zwischen den Versionen

Aus DXL-Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(27 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
''' Dieser Artikel beschreibt bisher nur einen Teil der Möglichkeiten von l2cat. Weitere Beispielanwendungen können gerne mit aufgenommen werden '''
== Über l2cat ==
== Über l2cat ==


l2cat ist ein Kommandozeilentool um sich mit einem Packet Radio Knoten über AXUDP zu verbinden. Es gibt keine weiteren Abhängigkeiten, ist also standalone lauffähig.
l2cat ist unter anderem ein Packet Radio Terminal für die Kommandozeile.
* PR-Verbindung über AXUDP (z.B. via Hamnet).
* PR-Verbindung über HF in Zusammenarbeit mit [[afskmodem]].
* IP Verbindung über Packet Radio mit PPP und Komprimierung möglich.
* Mit l2cat kann auch ein Server gebaut werden, der über Packet Radio connected und bedient werden kann (z.B. IRC Server, Winlink Server, APRS baken erzeugen usw.). Es sind vielfältige Anwendungsmöglichkeiten denkbar.
 
l2cat hat grundsätzlich keine weiteren Abhängigkeiten, ist also standalone lauffähig.


== Parameter in der Kurzübersicht ==
== Parameter in der Kurzübersicht ==
Zeile 45: Zeile 53:


== Ausführliche Beschreibung der Parameter ==
== Ausführliche Beschreibung der Parameter ==
{| class="wikitable"
|-
! Parameter!! Beschreibung
|-
| a|| Erkenne deflate + ppp automatisch an den ersten Bytes<br />ppp + deflate:"!p",deflate;"!d"<br />LF to CR:"!l", strip LF:"!L", transparent:"!8"
|-
| C <destination> || Zielrufzeichen, mit dem man sich verbinden will (ansonsten wartet L2CAT drauf bis man selbst connected wird).
|-
| c <cmdline>|| Führt Befehle nach den Connect aus<br />-c "/bin/bash bash %m %u"<br />%m=mycall %u=usercall %U=same no SSID %%=%<br />if no "-c" data path is stdin/stdout
|-
| D <bytes>|| Verwerfe längere ppp Frames wenn der PR Sendepuffer voll ist.
|-
| d|| deflate = an
|-
| h|| Parameterübersicht
|-
| i <mycall> <mycall> ...|| Eigenes Rufzeichen, ggf. mit SSID.
|-
| j <1..6>|| Wie der Zeilenumbruch behandelt werden soll.<br />1:del LF<br />2:del LF+CR>LF<br />3:CR>LF<br />4:del CR<br />5:del CR+LF>CR<br />6:LF>CR in stream from pr
|-
| l|| Konvertiert das Linux Zeilenende LF zu CR von Linux zu Packet Radio (es gibt sonst Probleme mit den Zeilenumbrüchen).
|-
| L|| Schneidet LF zu Packet Radio ab.
|-
| m <0..2>|| Zeigt den AX.25 Monitor an. "2" ist mit allen Informationen.
|-
| n <port> <parm> <value>|| Setzt die Layer 2 Parameter der Verbindung<br />"-n a" setzt den Parameter auf allen ports.<br />t=txwait, d=dwait o=maxfr f=T1 FRACK Timer, F:T3-Timer, I=ipoll n=Retries h=halbduplex.
|-
| P|| ppp und deflate = an
|-
| p <filename>|| Daten senden und emfpangen zu diesem Gerät bzw. zu dieser Pipe. Kann genutzt werden um ein eigenes "TNC" zu bauen oder ein anderes Terminal anzubinden.<br />Beispiel: -p /dev/ttyS0
|-
| R <ms>|| Aktiviere die Aufrechterhaltung der Verbindung als "Slave" mit einer maximalen Wiederverbindungsverzögerung in Millisekunden. Standard = 120000ms, Maximalgröße = 400000ms.
|-
| r <ms>|| Aktiviere die Aufrechterhaltung der Verbindung als "Slave" mit einer minimalen Wiederverbindungsverzögerung in Millisekunden. Die Zeitspanne verdoppelt sich bei jedem Wiederholungsversuch bis der Wert von -R erreicht ist. Standard = 2000ms.
|-
| U <x.x.x.x:destport:listenport>|| Packet Radio AXUDP Einstieg mit Ziel-IP und Ziel-Port. Bei Listen Port = 0 wird dieser automatisch vergeben.
|-
| v|| Zeige Informationen in der Bildschirmausgabe.
|-
| V|| Zeige erweiterten Informationen in der Bildschirmausgabe.
|-
| w <n>|| Überprüfe auf doppelte AXUDP Frames in den letzten n Frames oder n*10ms
|}


== Beispiele ==
== Beispiele ==


=== Packet Radio Verbindung über AXUDP und Hamnet ===
Das folgende Beispiel ermöglicht eine PR-Verbindung im Terminal zu einem Packet Radio Knoten, welcher über AXUDP erreichbar ist, z.B. DB0FHN, DB0NU usw. Ein kleines Beispielskript dazu findet sich auch weiter unten im Artikel.
  <nowiki>
  <nowiki>
./l2cat -i MYCALL -U 44.130.60.100:93:0 -v -l -j 2 -n a n 40 -n a f 80 -n a F 150 -C DB0FHN
./l2cat -i MYCALL -U 44.130.60.100:93:0 -v -l -j 2 -n a n 40 -n a f 80 -n a F 150 -C DB0FHN
Zeile 58: Zeile 114:
* -j 2 = Wandelt Zeilenumbruch von PR zu Linux passend zurück
* -j 2 = Wandelt Zeilenumbruch von PR zu Linux passend zurück
* -n a n 40 = Setzt Layer 2 Parameter "Retries" auf 40
* -n a n 40 = Setzt Layer 2 Parameter "Retries" auf 40
* -n a f 80 = Setzt Layer 2 Parameter "T1 Timer" auf 80
* -n a f 80 = Setzt Layer 2 Parameter "T1 Timer" (FRACK) auf 80
* -n a F 150 = Setzt Layer 2 Parameter "FRACK" auf 150
* -n a F 150 = Setzt Layer 2 Parameter "T3 Timer" auf 150
* -C = Zielrufzeichen, mit dem man sich verbinden will (ansonsten wartet L2CAT drauf bis man selbst connected wird)
* -C = Zielrufzeichen, mit dem man sich verbinden will (ansonsten wartet L2CAT drauf bis man selbst connected wird)
Die Layer 2 Parameter diesen nur dazu die Verbindung stabil zu halten
[[Datei:L2cat.png|600px]]


== Beispielskript ==
== Beispielskript ==
Das folgende Beispielskript als pr.sh gespeichert und mit Ausführungsrechten versehen (chmod 755 pr.sh) erlaubt die schnelle Verbindung mit dem Packet Radio Netzwerk, vorausgesetzt man hat Zugriff auf das Hamnet per HF oder VPN.
Das folgende Beispielskript als pr.sh gespeichert und mit Ausführungsrechten versehen (chmod 755 pr.sh) erlaubt die schnelle Verbindung mit dem Packet Radio Netzwerk, vorausgesetzt man hat Zugriff auf das Hamnet per HF oder VPN. Getestet wurde das Skript unter dem aktuellem Raspberry Pi OS (Raspbian).


Man gibt das eigene Rufzeichen als Option mit an, z.B.
Man gibt das eigene Rufzeichen als Option mit an, z.B.
Zeile 72: Zeile 132:


# pr.sh öffnet ein Packet Radio Terminal über AXUDP zu DB0FHN
# pr.sh öffnet ein Packet Radio Terminal über AXUDP zu DB0FHN
# Voraussetzung: Es besteht im aktuellen Netzwerk Zugriff auf das HAMNET (Inter$
# Voraussetzung: Es besteht im aktuellen Netzwerk Zugriff auf das HAMNET.
# Bitte das eigene Rufzeichen als Option zum Aufruf angeben. SSID ist möglich.
#                Internetzugriff reicht nicht aus!
# Bitte das eigene Call als Parameter zum Aufruf angeben. SSID ist möglich.
# Beispiel:  ./pr.sh MY1CAL-5
# Beispiel:  ./pr.sh MY1CAL-5
# Mehr Infos hier: http://dxlwiki.dl1nux.de/index.php?title=L2cat
# Mehr Infos hier: http://dxlwiki.dl1nux.de/index.php?title=L2cat
Zeile 82: Zeile 143:
fi
fi


 
./l2cat -i $1 -U 44.130.60.100:93:0 -v -l -j 2 -n a n 40 -n a f 80 -n a F 150 -C DB0FHN
./l2cat -i $1 -U 44.130.60.100:93:0 -v -l -j 2 -n a n 40 -n a f 80 -n a F 150 -$
</nowiki>
</nowiki>

Aktuelle Version vom 10. November 2020, 21:41 Uhr

Dieser Artikel beschreibt bisher nur einen Teil der Möglichkeiten von l2cat. Weitere Beispielanwendungen können gerne mit aufgenommen werden

Über l2cat

l2cat ist unter anderem ein Packet Radio Terminal für die Kommandozeile.

  • PR-Verbindung über AXUDP (z.B. via Hamnet).
  • PR-Verbindung über HF in Zusammenarbeit mit afskmodem.
  • IP Verbindung über Packet Radio mit PPP und Komprimierung möglich.
  • Mit l2cat kann auch ein Server gebaut werden, der über Packet Radio connected und bedient werden kann (z.B. IRC Server, Winlink Server, APRS baken erzeugen usw.). Es sind vielfältige Anwendungsmöglichkeiten denkbar.

l2cat hat grundsätzlich keine weiteren Abhängigkeiten, ist also standalone lauffähig.

Parameter in der Kurzübersicht

l2cat -h

 -a                                autodetect deflate + ppp on first bytes
                                     ppp + deflate:"!p",deflate;"!d"
                                     LF to CR:"!l", strip LF:"!L", transparent:"!8"
 -C <destination>                  slave connect destination -C "OE0AAA-12 OE5XBL"
                                     if no "-C" run as server waiting for connect
 -c <cmdline>                      execute command on connect -c "/bin/bash bash %m %u"
                                     %m=mycall %u=usercall %U=same no SSID %%=%
                                     if no "-c" data path is stdin/stdout
 -D <bytes>                        discard longer ppp frames if pr tx buffer full
 -d                                deflate on
 -h                                this
 -i <mycall> <mycall> ...          connectable calls -i "OE0AAA OE0AAA-15"
                                     first mycall is digi and used to connect out
 -j <1..6>                         1:del LF, 2:del LF+CR>LF, 3:CR>LF, 4:del CR
                                     5:del CR+LF>CR, 6:LF>CR in stream from pr
 -l                                convert LF to CR in stream to pr
 -L                                strip LF in stream to pr
 -m <0..2>                         ax25 Monitor to stderr (2 with info)
 -n <port> <parm> <value>          layer 2 parms, "-n a" set on all ports
                                     parm t:txwait d:dwait o:maxfr f:t1 F:t3
                                     parm I:ipoll n:retr h:halfdup
 -P                                ppp + deflate on
 -p <filename>                     data to/from this device/pipe -p /dev/ttyS0
 -R <ms>                           enable slave "keep connected" with max reconnet delay
                                     (max 4000000ms) (120000)
 -r <ms>                           enable slave "keep connected" with min reconnet delay
                                     and doubles delay each conn try till "-R"  (2000)
 -U <x.x.x.x:destport:listenport>  axudp (autodetect axudp2)
                                     listenport=0 uses a free port
                                     repeat -U for more ports
 -v                                verbous
 -V                                more verbous
 -w <n>                            check dupe axudp frames last n frames or n*10ms


Ausführliche Beschreibung der Parameter

Parameter Beschreibung
a Erkenne deflate + ppp automatisch an den ersten Bytes
ppp + deflate:"!p",deflate;"!d"
LF to CR:"!l", strip LF:"!L", transparent:"!8"
C <destination> Zielrufzeichen, mit dem man sich verbinden will (ansonsten wartet L2CAT drauf bis man selbst connected wird).
c <cmdline> Führt Befehle nach den Connect aus
-c "/bin/bash bash %m %u"
%m=mycall %u=usercall %U=same no SSID %%=%
if no "-c" data path is stdin/stdout
D <bytes> Verwerfe längere ppp Frames wenn der PR Sendepuffer voll ist.
d deflate = an
h Parameterübersicht
i <mycall> <mycall> ... Eigenes Rufzeichen, ggf. mit SSID.
j <1..6> Wie der Zeilenumbruch behandelt werden soll.
1:del LF
2:del LF+CR>LF
3:CR>LF
4:del CR
5:del CR+LF>CR
6:LF>CR in stream from pr
l Konvertiert das Linux Zeilenende LF zu CR von Linux zu Packet Radio (es gibt sonst Probleme mit den Zeilenumbrüchen).
L Schneidet LF zu Packet Radio ab.
m <0..2> Zeigt den AX.25 Monitor an. "2" ist mit allen Informationen.
n <port> <parm> <value> Setzt die Layer 2 Parameter der Verbindung
"-n a" setzt den Parameter auf allen ports.
t=txwait, d=dwait o=maxfr f=T1 FRACK Timer, F:T3-Timer, I=ipoll n=Retries h=halbduplex.
P ppp und deflate = an
p <filename> Daten senden und emfpangen zu diesem Gerät bzw. zu dieser Pipe. Kann genutzt werden um ein eigenes "TNC" zu bauen oder ein anderes Terminal anzubinden.
Beispiel: -p /dev/ttyS0
R <ms> Aktiviere die Aufrechterhaltung der Verbindung als "Slave" mit einer maximalen Wiederverbindungsverzögerung in Millisekunden. Standard = 120000ms, Maximalgröße = 400000ms.
r <ms> Aktiviere die Aufrechterhaltung der Verbindung als "Slave" mit einer minimalen Wiederverbindungsverzögerung in Millisekunden. Die Zeitspanne verdoppelt sich bei jedem Wiederholungsversuch bis der Wert von -R erreicht ist. Standard = 2000ms.
U <x.x.x.x:destport:listenport> Packet Radio AXUDP Einstieg mit Ziel-IP und Ziel-Port. Bei Listen Port = 0 wird dieser automatisch vergeben.
v Zeige Informationen in der Bildschirmausgabe.
V Zeige erweiterten Informationen in der Bildschirmausgabe.
w <n> Überprüfe auf doppelte AXUDP Frames in den letzten n Frames oder n*10ms

Beispiele

Packet Radio Verbindung über AXUDP und Hamnet

Das folgende Beispiel ermöglicht eine PR-Verbindung im Terminal zu einem Packet Radio Knoten, welcher über AXUDP erreichbar ist, z.B. DB0FHN, DB0NU usw. Ein kleines Beispielskript dazu findet sich auch weiter unten im Artikel.

./l2cat -i MYCALL -U 44.130.60.100:93:0 -v -l -j 2 -n a n 40 -n a f 80 -n a F 150 -C DB0FHN

  • -i = Genutztes AFu Rufzeichen
  • -U = Packet Radio AXUDP Einstieg, im Beispiel DB0FHN auf Destination Port 93. Listen Port bleibt auf 0, dieser wird dann automatisch vergeben. Es kann natürlich jeder andere Einstieg genutzt werden sofern IP-Adresse und Port bekannt sind.
  • -v = gibt eventuelle Meldungen der Anwendung aus
  • -l = Konvertiert das Linux Zeilenende LF zu CR von Linux zu Packet Radio (es gibt sonst Probleme mit den Zeilenumbrüchen)
  • -j 2 = Wandelt Zeilenumbruch von PR zu Linux passend zurück
  • -n a n 40 = Setzt Layer 2 Parameter "Retries" auf 40
  • -n a f 80 = Setzt Layer 2 Parameter "T1 Timer" (FRACK) auf 80
  • -n a F 150 = Setzt Layer 2 Parameter "T3 Timer" auf 150
  • -C = Zielrufzeichen, mit dem man sich verbinden will (ansonsten wartet L2CAT drauf bis man selbst connected wird)

Die Layer 2 Parameter diesen nur dazu die Verbindung stabil zu halten

L2cat.png

Beispielskript

Das folgende Beispielskript als pr.sh gespeichert und mit Ausführungsrechten versehen (chmod 755 pr.sh) erlaubt die schnelle Verbindung mit dem Packet Radio Netzwerk, vorausgesetzt man hat Zugriff auf das Hamnet per HF oder VPN. Getestet wurde das Skript unter dem aktuellem Raspberry Pi OS (Raspbian).

Man gibt das eigene Rufzeichen als Option mit an, z.B.

./pr.sh DL1NUX-7
pr.sh

# pr.sh öffnet ein Packet Radio Terminal über AXUDP zu DB0FHN
# Voraussetzung: Es besteht im aktuellen Netzwerk Zugriff auf das HAMNET.
#                Internetzugriff reicht nicht aus!
# Bitte das eigene Call als Parameter zum Aufruf angeben. SSID ist möglich.
# Beispiel:  ./pr.sh MY1CAL-5
# Mehr Infos hier: http://dxlwiki.dl1nux.de/index.php?title=L2cat
if [ -z $1 ]; then
        echo "Bitte eigenes Rufzeichen als Option angeben!"
        echo "Beispiel:  ./pr.sh MY1CAL-5"
        exit 1
fi

./l2cat -i $1 -U 44.130.60.100:93:0 -v -l -j 2 -n a n 40 -n a f 80 -n a F 150 -C DB0FHN