Differences between current version and predecessor to the previous major change of HowToAX25HOWTO.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Thursday, October 21, 2004 5:04:41 pm | by AristotlePagaltzis | |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:05:27 am | by perry | Revert |
@@ -1,5127 +1 @@
-Linux Amateur Radio AX.25 HOWTO
-!!!Linux Amateur Radio AX.25 HOWTO
-!Jeff Tranter, VE3ICH
-
-tranter@pobox.com
-
-
-
-v2., 19 September 2001
-
-
-
-
-
-
-
-The Linux operating system is perhaps the only operating system in the
-world that can boast native and standard support for the AX.25 packet
-radio protocol utilized by Amateur Radio operators worldwide. This
-document describes how to install and configure this support.
-
-
-
-
-
-----; __Table of Contents__; 1. Introduction: ; 1.1. Changes from the previous version; 1.2. Where to obtain new versions of this document; 1.3. Other related documentation; 2. The Packet Radio Protocols and Linux: ; 2.1. How it all fits together; 3. The AX.25/NET/ROM/ROSE software components: ; 3.1. Finding the kernel, tools and utility packages; 4. Installing the AX.25/NET/ROM/ROSE software: ; 4.1. Compiling the kernel; 4.2. The AX.25 library, tools, and application programs; 5. A note on callsigns, addresses and things before we start: ; 5.1. What are all those T1, T2, N2 and things ?; 5.2. Run time configurable parameters; 6. Configuring an AX.25 port: ; 6.1. Creating the AX.25 network device; 6.2. Creating the /etc/ax25/axports file; 6.3. Configuring AX.25 routing; 7. Configuring an AX.25 interface for TCP/IP; 8. Configuring a NET/ROM port: ; 8.1. Configuring /etc/ax25/nrports; 8.2. Configuring /etc/ax25/nrbroadcast; 8.3. Creating the NET/ROM Network device; 8.4. Starting the NET/ROM daemon; 8.5. Configuring NET/ROM routing.; 9. Configuring a NET/ROM interface for TCP/IP; 10. Configuring a ROSE port: ; 10.1. Configuring /etc/ax25/rsports; 10.2. Creating the ROSE Network device; 10.3. Configuring ROSE Routing; 11. Making AX.25/NET/ROM/ROSE calls; 12. Configuring Linux to accept Packet connections: ; 12.1. Creating the /etc/ax25/ax25d.conf file; 12.2. A simple example ax25d.conf file; 12.3. Starting ''ax25d''; 13. Configuring the ''node'' software: ; 13.1. Creating the /etc/ax25/node.conf file; 13.2. Creating the /etc/ax25/node.perms file; 13.3. Configuring ''node'' to run from ''ax25d''; 13.4. Configuring ''node'' to run from ''inetd''; 14. Configuring ''axspawn'': ; 14.1. Creating the /etc/ax25/axspawn.conf file; 15. Configuring the ''pms'': ; 15.1. Create the /etc/ax25/pms.motd file; 15.2. Create the /etc/ax25/pms.info file; 15.3. Associate AX.25 callsigns with system users; 15.4. Add the PMS to the /etc/ax25/ax25d.conf file; 15.5. Test the PMS; 16. Configuring the ''user_call'' programs; 17. Configuring the ROSE Uplink and Downlink commands: ; 17.1. Configuring a ROSE downlink; 17.2. Configuring a ROSE uplink; 18. Associating AX.25 callsigns with Linux users; 19. Configuring APRS; 20. The /proc/ file system entries; 21. AX.25, NET/ROM, ROSE network programming: ; 21.1. The address families; 21.2. The header files; 21.3. Callsign mangling and examples; 22. Some sample configurations: ; 22.1. Small Ethernet LAN with Linux as a router to Radio LAN; 22.2. IPIP encapsulated gateway configuration; 22.3. AXIP encapsulated gateway configuration; 22.4. Linking NOS and Linux using a pipe device; 23. Summary of AX.25-related Linux commands; 24. Where do I find more information about .... ?: ; 24.1. Packet Radio; 24.2. Protocol Documentation; 24.3. Hardware Documentation; 24.4. Linux Ham Radio Software; 25. Discussion relating to Amateur Radio and Linux; 26. Acknowledgements; 27. Feedback; 28. Distribution Policy
-!!!1. Introduction
-
-Amateur radio is a non-profit, non-commercial activity enjoyed by
-hobbyists world-wide. Radio amateurs are licensed by government
-authorities to use portions of the radio spectrum allocated to them
-for non-commercial, non-profit activities including personal
-communication, public service, and technical experimentation. Packet
-Radio is a particular digital mode of communication that makes use of
-networking protocols to provide computer to computer communication.
-
-
-
-This document was originally an appendix to the HAM-HOWTO, but grew too large
-to be reasonably managed in that fashion. This document describes how to
-install and configure the native AX.25, NET/ROM and ROSE support for Linux. A
-few typical configurations are described that could be used as models to work
-from.
-
-
-
-The Linux implementation of the amateur radio protocols is very flexible.
-To people relatively unfamiliar with the Linux operating system the
-configuration process may look daunting and complicated. It will take you a
-little time to come to understand how the whole thing fits together. You
-will find configuration very difficult if you have not properly prepared
-yourself by learning about Linux in general. You cannot expect to switch
-from some other environment to Linux without learning about Linux itself.
-
-----
-!!1.1. Changes from the previous version
-
-
-
-
-*
-
-Document has a new maintainer.
-
-
-*
-*
-
-Converted to !DocBook SGML format. Converted most tabular information to use tables.
-
-
-*
-*
-
-Released under GNU FDL license.
-
-
-*
-*
-
-Added information on new drivers for Baycom, YAM, 6PACK, and user mode soundmodem.
-
-
-*
-*
-
-Added APRS section.
-
-
-*
-*
-
-Many miscellaneous updates to reflect changes since document
-was last updated in 1997. There are likely still many errors
-or outdated information.
-
-
-*----
-!!1.2. Where to obtain new versions of this document
-
-The best place to obtain the latest version of this document is from a
-Linux Documentation Project archive. The Linux Documentation Project runs
-a web server and this document appears there as
-the AX25-HOWTO.
-This document is also available in various formats from the
-Linux Documentation Project.
-
-
-
-You can always contact me, but I pass new versions of the document
-directly to the LDP HOWTO coordinator, so if it isn't there then
-chances are I haven't finished it.
-
-----
-!!1.3. Other related documentation
-
-There is a lot of related documentation. There are many documents that relate
-to Linux networking in more general ways and I strongly recommend you also
-read these as they will assist you in your efforts and provide you with
-deeper insight into other possible configurations. They are:
-
-
-
-
-
-
-*
-
-Linux Networking HOWTO
-
-
-*
-*
-
-Linux Ethernet HOWTO
-
-
-*
-*
-
-Linux Firewall and Proxy Server HOWTO
-
-
-*
-*
-
-Linux 2.4 Advanced Routing HOWTO
-
-
-*
-*
-
-Netrom-Node mini-Howto
-
-
-*
-
-You may come across references to a Linux HAM HOWTO. This document is
-obsolete and has been replaced by the Hamsoft Linux Ham Radio Applications
-and Utilities Database web site. More general Linux
-information may be found by referencing other Linux
-HOWTO documents.
-
-----
-!!!2. The Packet Radio Protocols and Linux
-
-The ''AX.25'' protocol offers both connected and connectionless modes of
-operation, and is used either by itself for point-point links, or to carry
-other protocols such as TCP/IP and NET/ROM.
-
-
-
-It is similar to X.25 level 2 in structure, with some extensions to make it
-more useful in the amateur radio environment.
-
-
-
-The NET/ROM protocol is an attempt at a full network protocol and uses AX.25 at
-its lowest layer as a datalink protocol. It provides a network layer that is
-an adapted form of AX.25. The NET/ROM protocol features dynamic routing and
-node aliases.
-
-
-
-The ROSE protocol was conceived and first implemented by Tom Moulton W2VY and
-is an implementation of the X.25 packet layer protocol and is designed to
-operate with AX.25 as its datalink layer protocol. It too provides a network
-layer. ROSE addresses take the form of 10 digit numbers. The first four digits
-are called the Data Network Identification Code (DNIC) and are taken from
-Appendix B of the CCITT X.121 recommendation. More information on the ROSE
-protocol may be obtained from the
-RATS Web server.
-
-
-
-Alan Cox developed some early kernel based AX.25 software support for
-Linux. Jonathon
-Naylor has taken up ongoing development of the code, has added
-NET/ROM and ROSE support and is now the developer of the AX.25 related
-kernel code. DAMA support was developed by
-Joerg, DL1BKE. Baycom and
-Soundmodem support were added by
-Thomas Sailer.
-The AX.25 software is now maintained by a small team of developers
-on !SourceForge.
-
-
-
-The Linux code supports KISS and 6PACK based TNC's (Terminal Node
-Controllers), the Ottawa PI card, the Gracilis !PacketTwin card and
-other Z8530 SCC based cards with the generic SCC driver, several
-parallel and serial port Baycom modems, and serial port YAM
-modems. Thomas Sailer's kernel soundmodem driver supports !SoundBlaster
-and sound cards based on the Crystal chip set, and his newer user-mode
-soundmodem uses the standard kernel sound drivers, so it should work
-with any sound card supported under Linux.
-
-
-
-The user programs contain a simple PMS (Personal Message System), a
-beacon facility, a line mode connect program,
-listen (an example of how to capture all AX.25
-frames at raw interface level), and programs to configure the NET/ROM
-protocol. Also included are an AX.25 server style program to handle
-and dispatch incoming AX.25 connections and a NET/ROM daemon which
-does most of the hard work for NET/ROM support.
-
-
-
-There are utility programs to support APRS, including digipeating and
-gatewaying to the Internet.
-
-----
-!!2.1. How it all fits together
-
-The Linux AX.25 implementation is a brand new implementation. While in many
-ways it may looks similar to NOS, or BPQ or other AX.25 implementations, it
-is none of these and is not identical to any of them. The Linux AX.25
-implementation is capable of being configured to behave almost identically
-to other implementations, but the configuration process is very different.
-
-
-
-To assist you in understanding how you need to think when configuring this
-section describes some of the structural features of the AX.25 implementation
-and how it fits into the context of the overall Linux structure.
-
-
-
-''Simplified Protocol Layering Diagram''
-
- _____________________________________________
-| | | | |
-| AF_AX25 | AF_NETROM | AF_INET | AF_ROSE |
-|=========|===========|=============|=========|
-| | | | |
-| | | TCP/IP | |
-| | |________ | |
-| | NET/ROM | | ROSE |
-| |____________________|____|_________|
-| AX.25 |
-|_____________________________________________|
-
-
-
-This diagram simply illustrates that NET/ROM, ROSE and TCP/IP all run directly
-on top of AX.25, but that each of these protocols is treated as a separate
-protocol at the programming interface. The `_' names are
-simply the names given to the `''Address Family''' of each of these
-protocols when writing programs to use them. The important thing to note here
-is the implicit dependence on the configuration of your AX.25 devices before
-you can configure your NET/ROM, ROSE or TCP/IP devices.
-
-
-
-''Software Module Diagram of Linux Network Implementation''
-
- ___________________________________________________________________________
-| | | || | |
-| User | Programs | call node || Daemons | ax25d mheardd |
-| | | pms mheard || | inetd netromd |
-|_________|___________|_______________________||__________|_________________|
-| | Sockets |open(), close(), listen(), read(), write(), connect()|
-| | |_____________________________________________________|
-| | | AF_AX25 | AF_NETROM | AF_ROSE | AF_INET |
-| |___________|_____________|_____________|_____________|___________|
-|Kernel | Protocols | AX.25 | !NetRom | ROSE | IP/TCP/UDP|
-| |___________|_____________|_____________|_____________|___________|
-| | Devices | ax0,ax1 | nr0,nr1 | rose0,rose1 | eth0,ppp0 |
-| |___________|_____________|_____________|_____________|___________|
-| | Drivers | Kiss PI2 !PacketTwin SCC BPQ | slip ppp |
-| | | Soundmodem Baycom | ethernet |
-|_________|___________|_________________________________________|___________|
-|Hardware | PI2 Card, !PacketTwin Card, SCC card, Serial port, Ethernet Card |
-|_________|_________________________________________________________________|
-
-
-
-This diagram is a little more general than the first. This diagram attempts to
-show the relationship between user applications, the kernel and the hardware.
-It also shows the relationship between the Socket application programming
-interface, the actual protocol modules, the kernel networking devices and the
-device drivers. Anything in this diagram is dependent on anything underneath
-it, and in general you must configure from the bottom of the diagram upwards.
-So for example, if you want to run the ''call'' program you must also
-configure the hardware, then ensure that the kernel has the appropriate device
-driver, that you create the appropriate network device, that the kernel
-includes the desired protocol that presents a programming interface that the
-''call'' program can use. I have attempted to lay out this document in
-roughly that order.
-
-----
-!!!3. The AX.25/NET/ROM/ROSE software components
-
-The AX.25 software is comprised of three components: the kernel source, the
-network configuration tools and the utility programs.
-
-
-
-AX.25 support in the Linux kernel has been fairly stable since the 2.2
-series of kernel versions. This document assumes you are using the
-most recent kernel, which as the time of writing was 2.4.9.
-
-
-
-
-
-
-
-
-Software versions listed in this document were the latest at the time
-of writing, but are subject to change. Check for newer versions
-when downloading them.
-
-----
-!!3.1. Finding the kernel, tools and utility packages
-!3.1.1. The kernel source
-
-The kernel source can be found at www.kernel.org and
-ftp.kernel.org.
-For the 2.4.9 kernel it would be downloaded from
-ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.9.tar.gz.
-
-----
-!3.1.2. The network tools
-
-The latest release of the standard Linux network tools support
-AX.25 and NET/ROM and can be found at
-http://www.tazenda.demon.co.uk/phil/net-tools.
-
-
-
-The latest ipchains package can be found at
-http://netfilter.filewatcher.org/ipchains.
-
-
-
-
-
-
-
-
-It is usually not necessary to download and install these as any
-recent Linux distribution should include them.
-
-----
-!3.1.3. The AX.25 utilities
-
-The old ax25-utils used with the 2.0 and 2.1 kernels is now obsolete
-and has been replaced with new packages hosted on
-!SourceForge at
-http://sourceforge.net/projects/hams.
-
-
-
-The software is distributed as three packages: the AX.25 library, tools, and
-applications. At the time of writing the most recent versions were
-the following:
-
-
-
-
-
-
-*
-
-ftp://hams.sourceforge.net/pub/hams/ax25/libax25-..7.tar.gz
-
-
-*
-*
-
-ftp://hams.sourceforge.net/pub/hams/ax25/ax25-tools-..6.tar.gz
-
-
-*
-*
-
-ftp://hams.sourceforge.net/pub/hams/ax25/ax25-apps-..4.tar.gz
-
-
-*----
-!3.1.4. The APRS utilities
-
-If you want to use APRS you can download aprsd and aprsdigi:
-
-
-
-
-
-*
-
-http://prdownloads.sourceforge.net/aprsd/aprsd-2.1.4.tar.gz
-
-
-*
-*
-
-http://www.users.cloud9.net/~alan/ham/aprs/aprsdigi-2.-pre3.tar.gz
-
-
-*
-
-----
-!!!4. Installing the AX.25/NET/ROM/ROSE software
-
-To successfully install AX.25 support on your Linux system you must configure
-and install an appropriate kernel and then install the AX.25 utilities.
-
-
-
-
-
-
-
-
-Rather than building and installing from source, you may prefer to
-install prebuilt binary packages for your system. Debian and RPM
-format packages are available on various archive sites including
-http://www.debian.org and
-http://rpmfind.net; look for
-"ax25". Incidently, the Debian Linux distribution is considered by
-many people to be one of the more "Amateur Radio friendly"
-distributions, and provides many amateur radio applications as Debian
-packages (one of the founders of the project is a ham).
-
-----
-!!4.1. Compiling the kernel
-
-If you are already familiar with the process of compiling the Linux kernel
-then you can skip this section, just be sure to select the appropriate options
-when compiling the kernel. If you are not, then read on. You may also want to
-read the
-Linux Kernel HOWTO.
-
-
-
-The normal place for the kernel source to be unpacked to is the
-/usr/src directory into a subdirectory called linux.
-To do this you should be logged in as root and execute a series
-of commands similar to the following:
-
-
-
-
-# cd /usr/src
-# mv linux linux.old
-# tar xzvf linux-2.4.9.tar.gz
-# cd linux
-
-
-
-After you have unpacked the kernel source, you need to run the
-configuration script and choose the options that suit your hardware
-configuration and the options that you wish built into your kernel.
-You do this by using the command:
-
-
-
-
-# make menuconfig
-
-
-
-If you are running X you can get a graphical interface using:
-
-
-
-
-# make xconfig
-
-
-
-You might also try:
-
-
-
-
-# make config
-
-
-
-I'm going to describe the full screen method (menuconfig) because it is easier
-to move around, but use whichever you are most comfortable with.
-
-
-
-In either case you will be offered a range of options at which you must
-answer `Y' or `N'. (Note you may also answer `M' if you are using modules.
-For the sake of simplicity I will assume you are not, please make appropriate
-modifications if you are).
-
-
-
-The options most relevant to an AX.25 configuration are:
-
-
-
-
-Code maturity level options ---b
-
[[*
] Prompt for development and/or incomplete code/drivers
-...
-General setup ---b
-...
-[[*] Networking support
-...
-Networking options ---b
-`*b UNIX domain sockets
-...
-[[*] TCP/IP networking
-...
-[[?] IP: tunneling
-...
-Amateur Radio Support ---b
---- Packet Radio protocols
-[[*] Amateur Radio AX.25 Level 2 protocol
-[[?] AX.25 DAMA Slave support
-[[?] Amateur Radio NET/ROM protocol
-[[?] Amateur Radio X.25 PLP (Rose)
-AX.25 network device drivers ---b
-`?b Serial port KISS driver
-`?b Serial port 6PACK driver
-`?b BPQ Ethernet driver
-`?b High-speed (DMA) SCC driver for AX.25
-`?b Z8530 SCC driver
-`?b BAYCOM ser12 fullduplex driver for AX.25
-`?b BAYCOM ser12 halfduplex driver for AX.25
-`?b BAYCOM picpar and par96 driver for AX.25
-`?b BAYCOM epp driver for AX.25
-`?b Soundcard modem driver
-[[?] soundmodem support for Soundblaster and compatible cards
-[[?] soundmodem support for WSS and Crystal cards
-[[?] soundmodem support for 1200 baud AFSK modulation
-[[?] soundmodem support for 2400 baud AFSK modulation (7.3728MHz crystal)
-[[?] soundmodem support for 2400 baud AFSK modulation (8MHz crystal)
-[[?] soundmodem support for 2666 baud AFSK modulation
-[[?] soundmodem support for 4800 baud HAPN-1 modulation
-[[?] soundmodem support for 4800 baud PSK modulation
-[[?] soundmodem support for 9600 baud FSK G3RUH modulation
-`?b YAM driver for AX.25
-
-
-
-The options I have flagged with a `*' are those
-that you ''must'' must answer `Y' to. The rest are
-dependent on what hardware you have and what other options you want to
-include. Some of these options are described in more detail later on,
-so if you don't know what you want yet, then read ahead and come back
-to this step later.
-
-
-
-After you have completed the kernel configuration you should be able to
-cleanly compile your new kernel:
-
-
-
-
-# make dep
-# make clean
-# make zImage
-
-
-
-Make sure you move your arch/i386/boot/zImage file
-wherever you want it and then edit your
-/etc/lilo.conf file and rerun
-''lilo'' to ensure that you actually boot from it.
-
-----
-!4.1.1. A word about kernel modules
-
-Compiling drivers as modules is useful if you only use AX.25
-occasionally and want to be able to load and unload them on demand to
-save system resources. However, some people have problems getting the
-modularized drivers working because they are more complicated to
-configure. If you've chosen to compile any drivers as modules, then
-you'll also need to run the commands:
-
-
-
-
-# make modules
-# make modules_install
-
-
-
-to install your modules in the appropriate location.
-
-
-
-You will also need to add some entries into your /etc/modules.conf
-file to ensure that the ''kerneld'' program knows how to locate the
-kernel modules. You should add/modify the following:
-
-
-
-
-alias net-pf-3 ax25
-alias net-pf-6 netrom
-alias net-pf-11 rose
-alias tty-ldisc-1 slip
-alias tty-ldisc-3 ppp
-alias tty-ldisc-5 mkiss
-alias bc0 baycom
-alias nr0 netrom
-alias pi0a pi2
-alias pt0a pt
-alias scc0 optoscc (or one of the other scc drivers)
-alias sm0 soundmodem
-alias tunl0 newtunnel
-alias char-major-4 serial
-alias char-major-5 serial
-alias char-major-6 lp
-
-
-
-
-
-
-
-
-On Debian-based Linux systems these entries should go into the file
-/etc/modutils/aliases and then you need to run
-/sbin/update-mpodules.
-
-----
-!!4.2. The AX.25 library, tools, and application programs
-
-After you have successfully compiled and booted your new kernel you
-need to compile and install the ax25 library, tools, and application
-programs.
-
-
-
-To compile and install libax25 you should use a series of commands
-similar to the following:
-
-
-
-
-# cd /usr/src
-# tar xzvf libax25-..7.tar.gz
-# cd libax25-..7
-# ./configure --exec_prefix=/usr --sysconfdir=/etc --localstatedir=/var
-# make
-# make install
-
-
-
-
-
-
-
-
-The arguments to the configure command ensure that
-the files will be installed in the "standard" places under the
-directory /usr in subdirectories
-bin, sbin,
-etc and man. If you simply run
-configure with no options it will default to putting all files under
-/usr/local. This can cause the situation where you
-have configuration files in both /usr and
-/usr/local. If you want to ensure that this can't
-happen you can make /usr/local/etc/ax25 a symbolic
-link to /etc/ax25 at the very beginning of the
-install process and then you won't have to worry about it.
-
-
-
-If this is a first time installation, that is you've never installed any
-ax25 code on your machine before, you should also use the:
-
-
-
-
-# make installconf
-
-
-
-command to install some sample configuration files into the /etc/ax25/
-directory from which to work.
-
-
-
-You can now build install the AX.25 tools in a similar fashion:
-
-
-
-
-# cd /usr/src
-# tar xzvf ax25-tools-..6.tar.gz
-# cd ax25-tools-..6
-# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
-# make
-# make install
-# make installconf (if you want to install the configuration files)
-
-
-
-And finally you can install the AX.25 applications:
-
-
-
-
-# cd /usr/src
-# tar xzvf ax25-apps-..4.tar.gz
-# cd ax25-apps-..4
-# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
-# make
-# make install
-# make installconf (if you want to install the configuration files)
-
-
-
-If you get messages something like:
-
-
-
-
-gcc -Wall -Wstrict-prototypes -O2 -I../lib -c call.c
-call.c: In function `statline':
-call.c:268: warning: implicit declaration of function `attron'
-call.c:268: `A_REVERSE' undeclared (first use this function)
-call.c:268: (Each undeclared identifier is reported only once
-call.c:268: for each function it appears in.)
-
-
-
-then you should double check that you have the
-''ncurses'' package properly installed on your
-system. The configuration script attempts to locate your package in
-the common locations, but some installations have it badly installed
-and it is unable to locate them.
-
-----
-!!!5. A note on callsigns, addresses and things before we start
-
-Each AX.25 and NET/ROM port on your system must have a callsign/ssid allocated
-to it. These are configured in the configuration files that will be described
-in detail later on.
-
-
-
-Some AX.25 implementations such as NOS and BPQ will allow you to configure
-the same callsign/ssid on each AX.25 and NET/ROM port. For somewhat complicated
-technical reasons Linux does not allow this. This isn't as big a problem in
-practice as it might seem.
-
-
-
-This means that there are things you should be aware of and take into
-consideration when doing your configurations.
-
-
-
-
-
-
-
-
-#
-
-Each AX.25 and NET/ROM port must be configured with a unique callsign/ssid.
-
-
-#
-#
-
-TCP/IP will use the callsign/ssid of the AX.25 port it is being
-transmitted or received by, ie the one you configured for the AX.25 interface
-in point 1.
-
-
-#
-#
-
-NET/ROM will use the callsign/ssid specified for it in its
-configuration file, but this callsign is only used when your NET/ROM is
-speaking to another NET/ROM, this is ''not'' the
-callsign/ssid that AX.25 users who wish to use your NET/ROM `node' will
-use. More on this later.
-
-
-#
-#
-
-ROSE will, by default, use the callsign/ssid of the AX.25 port, unless
-the ROSE callsign has been specifically set using the
-`''rsparms''' command. If you set a callsign/ssid
-using the `''rsparms''' command then ROSE will use
-this callsign/ssid on all ports.
-
-
-#
-#
-
-Other programs, such as the `''ax25d''' program can listen using
-any callsign/ssid that they wish and these may be duplicated across different
-ports.
-
-
-#
-#
-
-If you are careful with routing you can configure the same IP address on
-all ports if you wish.
-
-
-#
-
-----
-!!5.1. What are all those T1, T2, N2 and things ?
-
-Not every AX.25 implementation is a TNC2. Linux uses nomenclature that
-differs in some respects from that you will be used to if your sole
-experience with packet is a TNC. The following table should help you
-interpret what each of the configurable items are, so that when you come
-across them later in this text you'll understand what they mean.
-
-
-
-
-
-
-
-
-LinuxTAPR TNCDescriptionT1FRACKHow long to wait before retransmitting an unacknowledged frame.T2RESPTIMEThe minimum amount of time to wait for another frame to be received
-before transmitting an acknowledgement.T3CHECKThe period of time we wait between sending a check that the link is still active.N2RETRYHow many times to retransmit a frame before assuming the connection has failed.Idle The period of time a connection can be idle before we close it down.WindowMAXFRAMEThe maximum number of unacknowledged transmitted frames.
-
-
-
-
-
-----
-!!5.2. Run time configurable parameters
-
-The kernel allows you to change many parameters at run time. If you
-take a careful look at the /proc/sys/net/ directory
-structure you will see many files with useful names that describe
-various parameters for the network configuration. The files in the
-/proc/sys/net/ax25/ directory each represent one
-configured AX.25 port. The name of the file relates to the name of the
-port.
-
-
-
-The structure of the files in
-/proc/sys/net/ax25/''portname''/
-is as follows:
-
-
-
-
-
-
-
-
-!FilenameMeaningValuesDefaultip_default_modeIP Default Mode0=DG 1=VC0ax25_default_modeAX.25 Default Mode0=Normal 1=Extended0backoff_typeBackoff0=Linear 1=Exponential1connect_modeConnected Mode0=No 1=Yes1standard_window_sizeStandard Window1 .. 72extended_window_sizeExtended Window1 .. 6332t1_timeoutT1 Timeout1s .. 30s10st2_timeoutT2 Timeout1s .. 20s3st3_timeoutT3 Timeout0s .. 3600s300sidle_timeoutIdle Timeout0m or greater20mmaximum_retry_countN21 .. 3110maximum_packet_lengthAX.25 Frame Length1 .. 512256
-
-
-
-
-
-
-
-In the table T1, T2 and T3 are given in seconds, and the Idle Timeout
-is given in minutes. But please note that the values used in the sysctl
-interface are given in internal units where the time in seconds is
-multiplied by 10, this allows resolution down to 1/10 of a second. With
-timers that are allowed to be zero, e.g. T3 and Idle, a zero value indicates
-that the timer is disabled.
-
-
-
-The structure of the files in /proc/sys/net/netrom/
-is as follows:
-
-
-
-
-
-
-
-
-!FilenameMeaningValuesDefaultdefault_path_quality 10link_fails_count 2network_ttl_initialiser 16obsolescence_count_initialiser 6routing_control 1transport_acknowledge_delay 50transport_busy_delay 1800transport_maximum_tries 3transport_requested_window_size 4transport_timeout 1200
-
-
-
-
-
-
-
-The structure of the files in /proc/sys/net/rose/
-is as follows:
-
-
-
-
-
-
-
-
-!FilenameMeaningValuesDefaultacknowledge_hold_back_timeout 50call_request_timeout 2000clear_request_timeout 1800link_fail_timeout 1200maximum_virtual_circuits 50reset_request_timeout 1800restart_request_timeout 1800routing_control 1window_size 3
-
-
-
-
-
-
-
-To set a parameter all you need to do is write the desired value to the file
-itself, for example to check and set the ROSE window size you'd use something
-like:
-
-
-
-
-# cat /proc/sys/net/rose/window_size
-3
-# echo 4 b/proc/sys/net/rose/window_size
-# cat /proc/sys/net/rose/window_size
-4
-
-----
-!!!6. Configuring an AX.25 port
-
-Each of the AX.25 applications read a particular configuration file to obtain
-the parameters for the various AX.25 ports configured on your Linux machine.
-For AX.25 ports the file that is read is the /etc/ax25/axports file.
-You must have an entry in this file for each AX.25 port you want on your
-system.
-
-----
-!!6.1. Creating the AX.25 network device
-
-The network device is what is listed when you use the `''ifconfig'''
-command. This is the object that the Linux kernel sends and receives network
-data from. Nearly always the network device has a physical port associated
-with it, but there are occasions where this isn't necessary. The network
-device does relate directly to a device driver.
-
-
-
-In the Linux AX.25 code there are a number of device drivers. The most common
-is probably the KISS driver, but others are the SCC driver(s), the Baycom
-driver and the Soundmodem driver.
-
-
-
-Each of these device drivers will create a network device when it is started.
-
-----
-!6.1.1. Creating a KISS device
-
-''Kernel Compile Options'':
-
-Amateur Radio support ---b
-[[*] Amateur Radio support
---- Packet Radio protocols
-`*b Amateur Radio AX.25 Level 2 protocol
-...
-AX.25 network device drivers ---b
---- AX.25 network device drivers
-`*b Serial port KISS driver
-...
-
-
-
-Probably the most common configuration will be for a KISS TNC on a
-serial port. You will need to have the TNC preconfigured and
-connected to your serial port. You can use a communications program
-like ''minicom'' or ''seyon'' to
-configure the TNC into kiss mode.
-
-
-
-To create a KISS device you use the ''kissattach''
-program. In it simplest form you can use the
-''kissattach'' program as follows:
-
-
-
-
-# /usr/sbin/kissattach /dev/ttyS0 radio 44.135.96.242
-# kissparms -p radio -t 100 -s 100 -r 25
-
-
-
-The ''kissattach'' command will create a KISS network
-device. These devices are called `ax[[-9]'. The
-first time you use the ''kissattach'' command it
-creates `ax0', the second time it creates
-`ax1' etc. Each KISS device has an associated
-serial port.
-
-
-
-The ''kissparms'' command allows you to set various
-KISS parameters on a KISS device.
-
-
-
-Specifically the example presented would create a KISS network device
-using the serial device `/dev/ttyS0' and the entry
-from the /etc/ax25/axports with a port name of
-`radio'. It then configures it with a
-''txdelay'' and ''slottime'' of 100
-milliseconds and a ''ppersist'' value of 25.
-
-
-
-Please refer to the ''man'' pages for more information.
-
-----__6.1.1.1. Configuring for Dual Port TNC's__
-
-The ''mkiss'' utility included in the ax25-utils
-distribution allows you to make use of both modems on a dual port
-TNC. Configuration is fairly simple. It works by taking a single
-serial device connected to a single multiport TNC and making it look
-like a number of devices each connected to a single port TNC. You do
-this ''before'' you do any of the AX.25
-configuration. The devices that you then do the AX.25 configuration on
-are pseudo-TTY interfaces, (/dev/ttyq*), and not
-the actual serial device. Pseudo-TTY devices create a kind of pipe
-through which programs designed to talk to tty devices can talk to
-other programs designed to talk to tty devices. Each pipe has a master
-and a slave end. The master end is generally called
-`/dev/ptyq*' and the slave ends are called
-`/dev/ttyq*'. There is a one to one relationship
-between masters and slaves, so /dev/ptyq0 is the
-master end of a pipe with /dev/ttyq0 as its
-slave. You must open the master end of a pipe before opening the slave
-end. ''mkiss'' exploits this mechanism to split a
-single serial device into separate devices.
-
-
-
-Example: if you have a dual port TNC and it is connected to your
-/dev/ttyS0 serial device at 9600 bps, the command:
-
-
-
-
-# /usr/sbin/mkiss -s 9600 /dev/ttyS0 /dev/ptyq0 /dev/ptyq1
-# /usr/sbin/kissattach /dev/ttyq0 port1 44.135.96.242
-# /usr/sbin/kissattach /dev/ttyq1 port2 44.135.96.242
-
-
-
-would create two pseudo-tty devices that each look like a normal
-single port TNC. You would then treat /dev/ttyq0
-and /dev/ttyq1 just as you would a conventional
-serial device with TNC connected. This means you'd then use the
-''kissattach'' command as described above, on each of
-those, in the example for AX.25 ports called port1
-and port2. You shouldn't use
-''kissattach'' on the actual serial device as the
-''mkiss'' program uses it.
-
-
-
-The ''mkiss'' command has a number of optional
-arguments that you may wish to use. They are summarized as follows:
-
-
-
-
-; -c:
-
-enables the addition of a one byte checksum to each KISS frame.
-This is not supported by most KISS implementations, it is supported by the
-G8BPG KISS ROM.
-
-; -s `speedb:
-
-sets the speed of the serial port.
-
-; -h:
-
-enables hardware handshaking on the serial port, it is off by
-default. Most KISS implementation do not support this, but some do.
-
-; -l:
-
-enables logging of information to the ''syslog'' log file.
-
-
-
-----
-!6.1.2. Creating a 6PACK device
-
-''Kernel Compile Options'':
-
-Amateur Radio support ---b
-[[*] Amateur Radio support
---- Packet Radio protocols
-`*b Amateur Radio AX.25 Level 2 protocol
-...
-AX.25 network device drivers ---b
---- AX.25 network device drivers
-...
-`*b Serial port 6PACK driver
-...
-
-
-
-6PACK is a protocol that is supported by some TNCs as an alternative
-to KISS. It is used in a similar fashion to the KISS driver, using the
-slattach command instead of kissattach.
-
-
-
-A mini HOWTO on the 6PACK driver is included in the kernel source code
-as the file
-/usr/src/linux/Documentation/networking/6pack.txt.
-
-----
-!6.1.3. Creating a Baycom device
-
-''Kernel Compile Options'':
-
-Amateur Radio support ---b
-[[*] Amateur Radio support
---- Packet Radio protocols
-`*b Amateur Radio AX.25 Level 2 protocol
-...
-AX.25 network device drivers ---b
---- AX.25 network device drivers
-...
-`?b BAYCOM ser12 fullduplex driver for AX.25
-`?b BAYCOM ser12 halfduplex driver for AX.25
-`?b BAYCOM picpar and par96 driver for AX.25
-`?b BAYCOM epp driver for AX.25
-...
-
-
-
-Thomas Sailer,
-despite the popularly held belief that it would not work very well,
-has developed Linux support for Baycom modems. His driver supports the
-Ser12 serial port, Par96 and the
-enhanced !PicPar parallel port modems. Further
-information about the modems themselves may be obtained from the
-Baycom Web site.
-
-
-
-Your first step should be to determine the i/o and addresses of the
-serial or parallel port(s) you have Baycom modem(s) connected to.
-When you have these you must configure the Baycom driver with them.
-
-
-
-The Baycom driver creates network devices called:
-bc0, bc1, bc2
-etc. when it is configured.
-
-
-
-The ''sethdlc'' utility allows you to configure the
-driver with these parameters, or, if you have only one Baycom modem
-installed you may specify the parameters on the
-''insmod'' command line when you load the Baycom
-module.
-
-
-
-For example, a simple configuration.
-Disable the serial driver for COM1: then configure the Baycom driver for a
-Ser12 serial port modem on COM1: with the software DCD option enabled:
-
-
-
-
-# setserial /dev/ttyS0 uart none
-# insmod hdlcdrv
-# insmod baycom mode="ser12*" iobase=0x3f8 irq=4
-
-
-
-Par96 parallel port type modem on LPT1: using hardware DCD detection:
-
-
-
-
-# insmod hdlcdrv
-# insmod baycom mode="par96" iobase=0x378 irq=7 options=
-
-
-
-This is not really the preferred way to do it. The ''sethdlc'' utility
-works just as easily with one device as with many.
-
-
-
-The ''sethdlc'' ''man'' page has the
-full details, but a couple of examples will illustrate the most
-important aspects of this configuration. The following examples assume
-you have already loaded the Baycom module using:
-
-
-
-
-# insmod hdlcdrv
-# insmod baycom
-
-
-
-or that you compiled the kernel with the driver inbuilt.
-
-
-
-Configure the bc0 device driver as a Parallel port Baycom modem on LPT1:
-with software DCD:
-
-
-
-
-# sethdlc -p -i bc0 mode par96 io 0x378 irq 7
-
-
-
-Configure the bc1 device driver as a Serial port Baycom modem on COM1:
-
-
-
-
-# sethdlc -p -i bc1 mode "ser12*" io 0x3f8 irq 4
-
-----
-!6.1.4. Configuring the AX.25 channel access parameters
-
-The AX.25 channel access parameters are the equivalent of the KISS ppersist,
-txdelay and slottime type parameters. Again you use the ''sethdlc'' utility
-for this.
-
-
-
-Again the ''sethdlc'' man page is the source of the most complete information
-but another example of two won't hurt:
-
-
-
-Configure the bc0 device with !TxDelay of 200 mS, !SlotTime of 100 mS,
-PPersist of 40 and half duplex:
-
-
-
-
-# sethdlc -i bc0 -a txd 200 slot 100 ppersist 40 half
-
-
-
-Note that the timing values are in milliseconds.
-
-----__6.1.4.1. Configuring the Kernel AX.25 to use the Baycom device__
-
-The Baycom driver creates standard network devices that the AX.25
-Kernel code can use. Configuration is much the same as that for a PI
-or !PacketTwin card.
-
-
-
-The first step is to configure the device with an AX.25 callsign. The
-''ifconfig'' utility may be used to perform this.
-
-
-
-
-# /sbin/ifconfig bc0 hw ax25 VK2KTJ-15 up
-
-
-
-will assign the Baycom device bc0 the AX.25
-callsign VK2KTJ-15. Alternatively you can use the
-''axparms'' command, you'll still need to use the
-''ifconfig'' command to bring the device up though:
-
-
-
-
-# ifconfig bc0 up
-# axparms -setcall bc0 vk2ktj-15
-
-
-
-The next step is to create an entry in the /etc/ax25/axports file
-as you would for any other device. The entry in the axports file is
-associated with the network device you've configured by the callsign you
-configure. The entry in the axports file that has the callsign that
-you configured the Baycom device with is the one that will be used to
-refer to it.
-
-
-
-You may then treat the new AX.25 device as you would any other. You can
-configure it for TCP/IP, add it to ax25d and run NET/ROM or ROSE over it
-as you please.
-
-----
-!6.1.5. Creating a kernel Soundmodem device
-
-''Kernel Compile Options'':
-
-Amateur Radio support ---b
-[[*] Amateur Radio support
---- Packet Radio protocols
-`*b Amateur Radio AX.25 Level 2 protocol
-...
-AX.25 network device drivers ---b
---- AX.25 network device drivers
-...
-`*b Soundcard modem driver
-[[?] soundmodem support for Soundblaster and compatible cards
-[[?] soundmodem support for WSS and Crystal cards
-[[?] soundmodem support for 1200 baud AFSK modulation
-[[?] soundmodem support for 2400 baud AFSK modulation (7.3728MHz crystal)
-[[?] soundmodem support for 2400 baud AFSK modulation (8MHz crystal)
-[[?] soundmodem support for 2666 baud AFSK modulation
-[[?] soundmodem support for 4800 baud HAPN-1 modulation
-[[?] soundmodem support for 4800 baud PSK modulation
-[[?] soundmodem support for 9600 baud FSK G3RUH modulation
-...
-
-
-
-Thomas Sailer has built a driver for the kernel that allows you to
-use your soundcard as a modem. Connect your radio directly to your
-soundcard to play packet! Thomas recommends at least a 486DX2/66 if you
-want to use this software as all of the digital signal processing is done
-by the main CPU.
-
-
-
-The driver currently emulates 1200 bps AFSK, 4800 HAPN and 9600 FSK (G3RUH
-compatible) modem types. The only sound cards currently supported are
-!SoundBlaster and Windows Sound System Compatible models. If you have a sound
-card of another type, you can try the user-mode soundmodem described later
-in this document.
-
-
-
-The sound cards require some circuitry to help them drive the
-Push-To-Talk circuitry, and information on this is available from
-Thomas's
-Soundmodem PTT circuit web page. There are quite a few
-possible options, they are: detect the sound output from the
-soundcard, or use output from a parallel port, serial port or MIDI
-port. Circuit examples for each of these are on Thomas's site.
-
-
-
-The Soundmodem driver creates network devices called:
-sm0, sm1, sm2 etc when it is configured.
-
-
-
-
-
-
-
-
-The Soundmodem driver competes for the same resources as the Linux
-sound driver, so if you wish to use the Soundmodem driver you must
-ensure that the Linux sound driver is not installed. You can, of
-course, compile them both as modules and insert and remove them as you
-wish.
-
-----__6.1.5.1. Configuring the sound card__
-
-The Soundmodem driver does not initialize the sound card. The ax25-utils
-package includes a utility to do this called `''setcrystal''' that may
-be used for sound cards based on the Crystal chip set. If you have some other
-card then you will have to use some other software to initialize it.
-Its syntax is fairly straightforward:
-
-
-
-
-setcrystal [[-w wssio] [[-s sbio] [[-f synthio] [[-i irq] [[-d dma] [[-c dma2]
-
-
-
-So, for example, if you wished to configure a !SoundBlaster card at i/o
-base address 0x388, irq 10 and DMA 1 you would use:
-
-
-
-
-# setcrystal -s 0x388 -i 10 -d 1
-
-
-
-To configure a Window Sound System card at i/o base address 0x534, irq 5, DMA 3
-you would use:
-
-
-
-
-# setcrystal -w 0x534 -i 5 -d 3
-
-
-
-The [[-f synthio] parameter is the set the synthesizer address, and the
-[[-c dma2] parameter is to set the second DMA channel to allow full duplex
-operation.
-
-----__6.1.5.2. Configuring the Soundmodem driver__
-
-When you have configured the soundcard you need to configure the driver
-telling it where the sound card is located and what sort of modem you wish
-it to emulate.
-
-
-
-The ''sethdlc'' utility allows you to configure the driver with these
-parameters, or, if you have only one soundcard installed you may specify
-the parameters on the ''insmod'' command line when you load the
-Soundmodem module.
-
-
-
-For example, a simple configuration, with one !SoundBlaster soundcard
-configured as described above emulating a 1200 bps modem:
-
-
-
-
-# insmod hdlcdrv
-# insmod soundmodem mode="sbc:afsk1200" iobase=0x220 irq=5 dma=1
-
-
-
-This is not really the preferred way to do it. The ''sethdlc'' utility
-works just as easily with one device as with many.
-
-
-
-The ''sethdlc'' man page has the full details, but a couple of examples
-will illustrate the most important aspects of this configuration. The
-following examples assume you have already loaded the Soundmodem modules
-using:
-
-
-
-
-# insmod hdlcdrv
-# insmod soundmodem
-
-
-
-or that you compiled the kernel with the driver inbuilt.
-
-
-
-Configure the driver to support the Windows Sound System card we configured
-above to emulate a G3RUH 9600 compatible modem as device sm0 using a
-parallel port at 0x378 to key the Push-To-Talk:
-
-
-
-
-# sethdlc -p -i sm0 mode wss:fsk9600 io 0x534 irq 5 dma 3 pario 0x378
-
-
-
-Configure the driver to support the !SoundBlaster card we configured above
-to emulate a 4800 bps HAPN modem as device sm1 using the serial port
-located at 0x2f8 to key the Push-To-Talk:
-
-
-
-
-# sethdlc -p -i sm1 mode sbc:hapn4800 io 0x388 irq 10 dma 1 serio 0x2f8
-
-
-
-Configure the driver to support the !SoundBlaster card we configured above
-to emulate a 1200 bps AFSK modem as device sm1 using the serial port
-located at 0x2f8 to key the Push-To-Talk:
-
-
-
-
-# sethdlc -p -i sm1 mode sbc:afsk1200 io 0x388 irq 10 dma 1 serio 0x2f8
-
-----__6.1.5.3. Configuring the AX.25 channel access parameters__
-
-The AX.25 channel access parameters are the equivalent of the KISS ppersist,
-txdelay and slottime type parameters. You use the ''sethdlc'' utility for
-this as well.
-
-
-
-Again the ''sethdlc'' man page is the source of the most complete information
-but another example of two won't hurt:
-
-
-
-Configure the sm0 device with !TxDelay of 100 mS, !SlotTime of 50mS,
-PPersist of 128 and full duplex:
-
-
-
-
-# sethdlc -i sm0 -a txd 100 slot 50 ppersist 128 full
-
-
-
-Note that the timing values are in milliseconds.
-
-----__6.1.5.4. Setting the audio levels and tuning the driver__
-
-It is very important that the audio levels be set correctly for any radio
-based modem to work. This is equally true of the Soundmodem.
-Thomas has developed some utility programs that make this task easier.
-They are called ''smdiag'' and ''smmixer''.
-
-
-
-
-
-
-
-; ''smdiag'':
-
-provides two types of display, either an oscilloscope
-type display or an eye pattern type display.
-
-; ''smmixer'':
-
-allows you to actually adjust the transmit and
-receive audio levels.
-
-
-To start the ''smdiag'' utility in 'eye' mode for the Soundmodem device
-sm0 you would use:
-
-
-
-
-# smdiag -i sm0 -e
-
-
-
-To start the ''smmixer'' utility for the Soundmodem
-device sm0 you would use:
-
-
-
-
-# smmixer -i sm0
-
-----__6.1.5.5. Configuring the Kernel AX.25 to use the Soundmodem__
-
-The Soundmodem driver creates standard network devices that the AX.25
-Kernel code can use. Configuration is much the same as that for a PI
-or !PacketTwin card.
-
-
-
-The first step is to configure the device with an AX.25 callsign.
-The ''ifconfig'' utility may be used to perform this.
-
-
-
-
-# /sbin/ifconfig sm0 hw ax25 VK2KTJ-15 up
-
-
-
-will assign the Soundmodem device sm0 the AX.25
-callsign VK2KTJ-15. Alternatively you can use the
-''axparms'' command, but you still need the
-''ifconfig'' utility to bring the device up:
-
-
-
-
-# ifconfig sm0 up
-# axparms -setcall sm0 vk2ktj-15
-
-
-
-The next step is to create an entry in the /etc/ax25/axports file
-as you would for any other device. The entry in the axports file is
-associated with the network device you've configured by the callsign you
-configure. The entry in the axports file that has the callsign that
-you configured the Soundmodem device with is the one that will be used to
-refer to it.
-
-
-
-You may then treat the new AX.25 device as you would any other. You can
-configure it for TCP/IP, add it to ax25d and run NET/ROM or ROSE over it
-as you please.
-
-----
-!6.1.6. Creating a user-mode Soundmodem device
-
-''Kernel Compile Options'': not applicable
-
-
-
-Thomas Sailer has written a sound modem driver that runs in user-mode
-using the kernel sound drivers, so it should work with any sound card
-supported under Linux.
-
-
-
-The driver is implemented as the user-mode program
-soundmodem. The graphical
-soundmodemconfig program allows configuring and
-testing the soundmodem driver. As well as kernel sound support you
-need the kernel AX.25 mkiss driver.
-
-
-
-The software and documentation can be downloaded from
-http://www.baycom.org/~tom/ham/soundmodem.
-
-----
-!6.1.7. Creating a YAM device
-
-''Kernel Compile Options'':
-
-Amateur Radio support ---b
-[[*] Amateur Radio support
---- Packet Radio protocols
-`*b Amateur Radio AX.25 Level 2 protocol
-...
-AX.25 network device drivers ---b
---- AX.25 network device drivers
-...
-`?b YAM driver for AX.25
-...
-
-
-
-YAM is Yet Another Modem, a 9600 baud modem designed by Nico Palermo.
-Information on the Linux driver can be found at
-http://www.teaser.fr/~frible/yam.html
-while general information on the modem can be found at
-http://www.microlet.com/yam/
-
-----
-!6.1.8. Creating a PI card device
-
-''Kernel Compile Options'':
-
-General setup ---b
-[[*] Networking support
-Network device support ---b
-[[*] Network device support
-...
-[[*] Radio network interfaces
-[[*] Ottawa PI and PI/2 support for AX.25
-
-
-
-The PI card device driver creates devices named
-`pi[[-9][[ab]'. The first PI card detected will be
-allocated `pi0', the second
-`pi1' etc. The `a' and
-`b' refer to the first and second physical
-interface on the PI card. If you have built your kernel to include the
-PI card driver, and the card has been properly detected then you can
-use the following command to configure the network device:
-
-
-
-
-# /sbin/ifconfig pi0a hw ax25 VK2KTJ-15 up
-
-
-
-This command would configure the first port on the first PI card
-detected with the callsign VK2KTJ-15 and make it
-active. To use the device all you now need to do is to configure an
-entry into your /etc/ax25/axports file with a
-matching callsign/ssid and you will be ready to continue on.
-
-
-
-The PI card driver was written by
-David Perry.
-
-----
-!6.1.9. Creating a !PacketTwin device
-
-''Kernel Compile Options'':
-
-General setup ---b
-[[*] Networking support
-Network device support ---b
-[[*] Network device support
-...
-[[*] Radio network interfaces
-[[*] Gracilis !PackeTwin support for AX.25
-
-
-
-The !PacketTwin card device driver creates devices named
-`pt[[-9][[ab]'. The first !PacketTwin card detected
-will be allocated `pt0', the second
-`pt1' etc. The `a' and
-`b' refer to the first and second physical
-interface on the !PacketTwin card. If you have built your kernel to
-include the !PacketTwin card driver, and the card has been properly
-detected then you can use the following command to configure the
-network device:
-
-
-
-
-# /sbin/ifconfig pt0a hw ax25 VK2KTJ-15 up
-
-
-
-This command would configure the first port on the first !PacketTwin
-card detected with the callsign VK2KTJ-15 and make
-it active. To use the device all you now need to do is to configure an
-entry into your /etc/ax25/axports file with a
-matching callsign/ssid and you will be ready to continue on.
-
-
-
-The !PacketTwin card driver was written by
-Craig Small, VK2XLZ.
-
-----
-!6.1.10. Creating a generic SCC device
-
-''Kernel Compile Options'':
-
-General setup ---b
-[[*] Networking support
-Network device support ---b
-[[*] Network device support
-...
-[[*] Radio network interfaces
-[[*] Z8530 SCC KISS emulation driver for AX.25
-
-
-
-Joerg Reuter, DL1BKE,
-has developed generic support for Z8530 SCC based cards. His driver is
-configurable to support a range of different types of cards and
-present an interface that looks like a KISS TNC so you can treat it as
-though it were a KISS TNC.
-
-----__6.1.10.1. Obtaining and building the configuration tool package__
-
-While the kernel driver is included in the standard kernel distribution,
-Joerg distributes more recent versions of his driver with the suite of
-configuration tools that you will need to obtain as well.
-
-
-
-You can obtain the configuration tools package from:
-Joerg's web page,
-ftp://db0bm.automation.fh-aachen.de/incoming/dl1bke,
-ftp://insl1.etec.uni-karlsruhe.de/pub/hamradio/linux/z8530,
-ftp://ftp.ucsd.edu/hamradio/packet/tcpip/linux, or
-ftp://ftp.ucsd.edu/hamradio/packet/tcpip/incoming.
-
-
-
-You will find multiple versions, choose the one that best suits the
-kernel you intend to use:
-z8530drv-2.4a.dl1bke.tar.gz for 2..* kernels and
-z8530drv-utils-3..tar.gz for 2.1.6 or later kernels.
-
-
-
-The following commands were what I used to compile and install the package
-for kernel version 2..30:
-
-
-
-
-# cd /usr/src
-# gzip -dc z8530drv-2.4a.dl1bke.tar.gz | tar xvpofz -
-# cd z8530drv
-# make clean
-# make dep
-# make module # If you want to build the driver as a module
-# make for_kernel # If you want the driver to built into your kernel
-# make install
-
-
-
-After the above is complete you should have three new programs
-installed in your /sbin directory:
-''gencfg'', ''sccinit'' and
-''sccstat''. It is these programs that you will use
-to configure the driver for your card.
-
-
-
-You will also have a group of new special device files created in your
-/dev called
-scc0-scc7. These will be used
-later and will be the `KISS' devices you will end up using.
-
-
-
-If you chose to 'make for_kernel' then you will need to recompile your
-kernel. To ensure that you include support for the z8530 driver you must be
-sure to answer `Y' to:
-`Z8530 SCC kiss emulation driver for AX.25' when asked during a
-kernel `make config'.
-
-
-
-If you chose to 'make module' then the new scc.o will have been
-installed in the appropriate /lib/modules directory and you do
-not need to recompile your kernel. Remember to use the ''insmod'' command
-to load the module before your try and configure it.
-
-----__6.1.10.2. Configuring the driver for your card__
-
-The z8530 SCC driver has been designed to be as flexible as possible so as
-to support as many different types of cards as possible. With this flexibility
-has come some cost in configuration.
-
-
-
-There is more comprehensive documentation in the package and you should
-read this if you have any problems. You should particularly look at
-doc/scc_eng.doc or doc/scc_ger.doc for more detailed
-information. I've paraphrased the important details, but as a result there
-is a lot of lower level detail that I have not included.
-
-
-
-The main configuration file is read by the ''sccinit'' program and is
-called /etc/z8530drv.conf. This file is broken into two main stages:
-Configuration of the hardware parameters and channel configuration. After
-you have configured this file you need only add:
-
-
-
-
-# sccinit
-
-
-
-into the rc file that configures your network and the driver will
-be initialized according to the contents of the configuration file. You must
-do this before you attempt to use the driver.
-
-----__6.1.10.2.1. Configuration of the hardware parameters__
-
-The first section is broken into stanzas, each stanza representing an 8530
-chip. Each stanza is a list of keywords with arguments. You may specify up
-to four SCC chips in this file by default. The #define MAXSCC 4 in
-scc.c can be increased if you require support for more.
-
-
-
-The allowable keywords and arguments are:
-
-
-
-
-
-
-
-; chip:
-
-the chip keyword is used to separate stanzas. It will
-take anything as an argument. The arguments are not used.
-
-; data_a:
-
-this keyword is used to specify the address of the data
-port for the z8530 channel `A'. The argument is a hexadecimal number
-e.g. 0x300
-
-; ctrl_a:
-
-this keyword is used to specify the address of the control
-port for the z8530 channel `A'. The arguments is a hexadecimal number
-e.g. 0x304
-
-; data_b:
-
-this keyword is used to specify the address of the data
-port for the z8530 channel `B'. The argument is a hexadecimal number
-e.g. 0x301
-
-; ctrl_b:
-
-this keyword is used to specify the address of the control
-port for the z8530 channel `B'. The arguments is a hexadecimal number
-e.g. 0x305
-
-; irq:
-
-this keyword is used to specify the IRQ used by the 8530 SCC
-described in this stanza. The argument is an integer e.g. 5
-
-; pclock:
-
-this keyword is used to specify the frequency of the clock
-at the PCLK pin of the 8530. The argument is an integer frequency in Hz which
-defaults to 4915200 if the keyword is not supplied.
-
-; board:
-
-the type of board supporting this 8530 SCC. The argument is
-a character string. The allowed values are:
-
-
-
-
-; PA0HZP:
-
-the PA0HZP SCC Card
-
-; EAGLE:
-
-the Eagle card
-
-; PC100:
-
-the DRSI PC100 SCC card
-
-; PRIMUS:
-
-the PRIMUS-PC (DG9BL) card
-
-; BAYCOM:
-
-!BayCom (U)SCC card
-
-
-
-; escc:
-
-this keyword is optional and is used to enable support for the
-Extended SCC chips (ESCC) such as the 8580, 85180, or the 85280. The argument
-is a character string with allowed values of `yes' or `no'. The default is
-`no'.
-
-; vector:
-
-this keyword is optional and specifies the address of the
-vector latch (also known as "intack port") for PA0HZP cards. There can be only
-one vector latch for all chips. The default is .
-
-; special:
-
-this keyword is optional and specifies the address of the
-special function register on several cards. The default is .
-
-; option:
-
-this keyword is optional and defaults to .
-
-
-
-
-
-Some example configurations for the more popular cards are as follows:
-
-
-
-
-
-
-
-; !BayCom USCC:
-
-
-chip 1
-data_a 0x300
-ctrl_a 0x304
-data_b 0x301
-ctrl_b 0x305
-irq 5
-board BAYCOM
-#
-# SCC chip 2
-#
-chip 2
-data_a 0x302
-ctrl_a 0x306
-data_b 0x303
-ctrl_b 0x307
-board BAYCOM
-
-; PA0HZP SCC card:
-
-
-chip 1
-data_a 0x153
-data_b 0x151
-ctrl_a 0x152
-ctrl_b 0x150
-irq 9
-pclock 4915200
-board PA0HZP
-vector 0x168
-escc no
-#
-#
-#
-chip 2
-data_a 0x157
-data_b 0x155
-ctrl_a 0x156
-ctrl_b 0x154
-irq 9
-pclock 4915200
-board PA0HZP
-vector 0x168
-escc no
-
-; DRSI SCC card:
-
-
-chip 1
-data_a 0x303
-data_b 0x301
-ctrl_a 0x302
-ctrl_b 0x300
-irq 7
-pclock 4915200
-board DRSI
-escc no
-
-
-
-
-
-If you already have a working configuration for your card under NOS, then
-you can use the ''gencfg'' command to convert the PE1CHL NOS driver
-commands into a form suitable for use in the z8530 driver configuration
-file.
-
-
-
-To use ''gencfg'' you simply invoke it with the same parameters as you
-used for the PE1CHL driver in NET/NOS. For example:
-
-
-
-
-# gencfg 2 0x150 4 2 0 1 0x168 9 4915200
-
-
-
-will generate a skeleton configuration for the OptoSCC card.
-
-----__6.1.10.3. Channel Configuration__
-
-The Channel Configuration section is where you specify all of the other
-parameters associated with the port you are configuring. Again this
-section is broken into stanzas. One stanza represents one logical port, and
-therefore there would be two of these for each one of the hardware parameters
-stanzas as each 8530 SCC supports two ports.
-
-
-
-These keywords and arguments are also written to the /etc/z8530drv.conf
-file and must appear ''after'' the hardware parameters section.
-
-
-
-Sequence is very important in this section, but if you stick with the suggested
-sequence it should work okay. The keywords and arguments are:
-
-
-
-
-; device:
-
-this keyword must be the first line of a port definition and
-specifies the name of the special device file that the rest of the
-configuration applies to. e.g. /dev/scc0
-
-; speed:
-
-this keyword specifies the speed in bits per second of the
-interface. The argument is an integer: e.g. 1200
-
-; clock:
-
-this keyword specifies where the clock for the data will
-be sourced. Allowable values are:
-
-
-
-
-; dpll:
-
-normal halfduplex operation
-
-; external:
-
-MODEM supplies its own Rx/Tx clock
-
-; divider:
-
-use fullduplex divider if installed.
-
-
-
-; mode:
-
-this keyword specifies the data coding to be used. Allowable
-arguments are: nrzi or nrz
-
-; rxbuffers:
-
-this keyword specifies the number of receive buffers to
-allocate memory for. The argument is an integer, e.g. 8.
-
-; txbuffers:
-
-this keyword specifies the number of transmit buffers to
-allocate memory for. The argument is an integer, e.g. 8.
-
-; bufsize:
-
-this keyword specifies the size of the receive and transmit
-buffers. The arguments is in bytes and represents the total length of the
-frame, so it must also take into account the AX.25 headers and not just the
-length of the data field. This keyword is optional and default to 384
-
-; txdelay:
-
-the KISS transmit delay value, the argument is an integer in mS.
-
-; persist:
-
-the KISS persist value, the argument is an integer.
-
-; slot:
-
-the KISS slot time value, the argument is an integer in mS.
-
-; tail:
-
-the KISS transmit tail value, the argument is an integer in mS.
-
-; fulldup:
-
-the KISS full duplex flag, the argument is an integer.
-1==Full Duplex, ==Half Duplex.
-
-; wait:
-
-the KISS wait value, the argument is an integer in mS.
-
-; min:
-
-the KISS min value, the argument is an integer in S.
-
-; maxkey:
-
-the KISS maximum keyup time, the argument is an integer in S.
-
-; idle:
-
-the KISS idle timer value, the argument is an integer in S.
-
-; maxdef:
-
-the KISS maxdef value, the argument is an integer.
-
-; group:
-
-the KISS group value, the argument is an integer.
-
-; txoff:
-
-the KISS txoff value, the argument is an integer in mS.
-
-; softdcd:
-
-the KISS softdcd value, the argument is an integer.
-
-; slip:
-
-the KISS slip flag, the argument is an integer.
-
-
-
-----__6.1.10.4. Using the driver__
-
-To use the driver you simply treat the /dev/scc* devices just as
-you would a serial tty device with a KISS TNC connected to it. For example,
-to configure Linux Kernel networking to use your SCC card you could use
-something like:
-
-
-
-
-# kissattach -s 4800 /dev/scc0 VK2KTJ
-
-
-
-You can also use NOS to attach to it in precisely the same way. From JNOS
-for example you would use something like:
-
-
-
-
-attach asy scc0 0 ax25 scc0 256 256 4800
-
-----__6.1.10.5. The ''sccstat'' and ''sccparam'' tools__
-
-To assist in the diagnosis of problems you can use the ''sccstat''
-program to display the current configuration of an SCC device. To use it
-try:
-
-
-
-
-# sccstat /dev/scc0
-
-
-
-you will displayed a very large amount of information relating to the
-configuration and health of the /dev/scc0 SCC port.
-
-
-
-The ''sccparam'' command allows you to change or modify a configuration
-after you have booted. Its syntax is very similar to the NOS param
-command, so to set the txtail setting of a device to 100mS you
-would use:
-
-
-
-
-# sccparam /dev/scc0 txtail 0x8
-
-----
-!6.1.11. Creating a BPQ ethernet device
-
-''Kernel Compile Options'':
-
-General setup ---b
-[[*] Networking support
-Network device support ---b
-[[*] Network device support
-...
-[[*] Radio network interfaces
-[[*] BPQ Ethernet driver for AX.25
-
-
-
-Linux supports BPQ Ethernet compatibility. This enables you to run the AX.25
-protocol over your Ethernet LAN and to interwork your linux machine with
-other BPQ machines on the LAN.
-
-
-
-The BPQ network devices are named `bpq[[-9]'. The
-`bpq0' device is associated with the
-`eth0' device, the `bpq1' device
-with the `eth1' device etc.
-
-
-
-Configuration is quite straightforward. You firstly must have configured
-a standard Ethernet device. This means you will have compiled your kernel
-to support your Ethernet card and tested that this works. Refer to the
-Ethernet-HOWTO
-for more information on how to do this.
-
-
-
-To configure the BPQ support you need to configure the Ethernet device with
-an AX.25 callsign. The following command will do this for you:
-
-
-
-
-# /sbin/ifconfig bpq0 hw ax25 vk2ktj-14 up
-
-
-
-Again, remember that the callsign you specify should match the entry in the
-/etc/ax25/axports file that you wish to use for this port.
-
-----
-!6.1.12. Configuring the BPQ Node to talk to the Linux AX.25 support
-
-BPQ Ethernet normally uses a multicast address. The Linux implementation does
-not, and instead it uses the normal Ethernet broadcast address. The NET.CFG
-file for the BPQ ODI driver should therefore be modified to look similar to
-this:
-
-
-
-
-LINK SUPPORT
-MAX STACKS 1
-MAX BOARDS 1
-LINK DRIVER E2000 ; or other MLID to suit your card
-INT 10 ;
-PORT 300 ; to suit your card
-FRAME ETHERNET_II
-PROTOCOL BPQ 8FF ETHERNET_II ; required for BPQ - can change PID
-BPQPARAMS ; optional - only needed if you want
-; to override the default target addr
-ETH_ADDR FF:FF:FF:FF:FF:FF ; Target address
-
-----
-!!6.2. Creating the /etc/ax25/axports file
-
-The /etc/ax25/axports is a simple text file that you create with
-a text editor. The format of the /etc/ax25/axports file is as follows:
-
-
-
-
-portname callsign baudrate paclen window description
-
-
-
-where:
-
-
-
-
-
-
-
-; portname:
-
-is a text name that you will refer to the port by.
-
-; callsign:
-
-is the AX.25 callsign you want to assign to the port.
-
-; baudrate:
-
-is the speed at which you wish the port to communicate with
-your TNC.
-
-; paclen:
-
-is the maximum packet length you want to configure the port
-to use for AX.25 connected mode connections.
-
-; window:
-
-is the AX.25 window (K) parameter. This is the same as the
-MAXFRAME setting of many TNC's.
-
-; description:
-
-is a textual description of the port.
-
-
-
-
-
-In my case, mine looks like:
-
-
-
-
-radio VK2KTJ-15 4800 256 2 4800bps 144.800 MHz
-ether VK2KTJ-14 10000000 256 2 BPQ/ethernet device
-
-
-
-Remember, you must assign unique callsign/ssid to each AX.25 port you create.
-Create one entry for each AX.25 device you want to use, this includes KISS,
-Baycom, SCC, PI, PT and Soundmodem ports. Each entry
here will describe exactly
-one AX.25 network device. The entries in this file are associated with the
-network devices by the callsign/ssid. This is at least one good reason for
-requiring unique callsign/ssid.
-
-----
-!!6.3. Configuring AX.25 routing
-
-You may wish to configure default digipeaters paths for specific
-hosts. This is useful for both normal AX.25 connections and also IP
-based connections. The ''axparms'' command enables
-you to do this. Again, the ''man'' page offers a
-complete description, but a simple example might be:
-
-
-
-
-# /usr/sbin/axparms -route add radio VK2XLZ VK2SUT
-
-
-
-This command would set a digipeater entry for
-VK2XLZ via VK2SUT on the AX.25
-port named radio.
-
-----
-!!!7. Configuring an AX.25 interface for TCP/IP
-
-It is very simple to configure an AX.25 port to carry TCP/IP. If you
-have KISS interfaces then there are two methods for configuring an IP
-address. The ''kissattach'' command has an option
-that allows you to specify an IP address. The more conventional method
-using the ''ifconfig'' command will work on all
-interface types.
-
-
-
-So, modifying the previous KISS example:
-
-
-
-
-# /usr/sbin/kissattach -i 44.136.8.5 -m 512 /dev/ttyS0 radio
-# /sbin/route add -net 44.136.8.0 netmask 255.255.255.0 ax0
-# /sbin/route add default ax0
-
-
-
-to create the AX.25 interface with an IP address of 44.136.8.5 and
-an MTU of 512 bytes. You should still use the
-''ifconfig'' to configure the other parameters if necessary.
-
-
-
-If you have any other interface type then you use the ''ifconfig'' program
-to configure the ip address and netmask details for the port and add a route
-via the port, just as you would for any other TCP/IP interface. The following
-example is for a PI card device, but would work equally well for any other
-AX.25 network device:
-
-
-
-
-# /sbin/ifconfig pi0a 44.136.8.5 netmask 255.255.255.0 up
-# /sbin/ifconfig pi0a broadcast 44.136.8.255 mtu 512
-# /sbin/route add -net 44.136.8.0 netmask 255.255.255.0 pi0a
-# /sbin/route add default pi0a
-
-
-
-The commands listed above are typical of the sort of configuration many of
-you would be familiar with if you have used NOS or any of its derivatives
-or any other TCP/IP software. Note that the default route might not be required
-in your configuration if you have some other network device configured.
-
-
-
-To test it out, try a ping or a telnet to a local host.
-
-
-
-
-# ping -i 5 44.136.8.58
-
-
-
-Note the use of the `-i 5' arguments to
-''ping'' to tell it to send pings every 5 seconds
-instead of its default of 1 second.
-
-----
-!!!8. Configuring a NET/ROM port
-
-The NET/ROM protocol relies on, and uses the AX.25 ports you have created.
-The NET/ROM protocol rides on top of the AX.25 protocol. To configure NET/ROM
-on an AX.25 interface you must configure two files. One file describes the
-NET/ROM interfaces, and the other file describes which of the AX.25 ports
-will carry NET/ROM. You can configure multiple NET/ROM ports, each with its
-own callsign and alias, the same procedure applies for each.
-
-----
-!!8.1. Configuring /etc/ax25/nrports
-
-The first is the /etc/ax25/nrports file. This file describes
-the NET/ROM ports in much the same way as the /etc/ax25/axports
-file describes the AX.25 ports. Each NET/ROM device you wish to create
-must have an entry in the /etc/ax25/nrports file. Normally
-a Linux machine would have only one NET/ROM device configured that would
-use a number of the AX.25 ports defined. In some situations you might
-wish a special service such as a BBS to have a separate NET/ROM alias and
-so you would create more than one.
-
-
-
-This file is formatted as follows:
-
-
-
-
-name callsign alias paclen description
-
-
-
-Where:
-
-
-
-
-; name:
-
-is the text name that you wish to refer to the port by.
-
-; callsign:
-
-is the callsign that the NET/ROM traffic from this port will use. Note,
-this is ''not'' that address that users should
-connect to to get access to a ''node'' style
-interface. (The node program is covered later). This callsign/ssid
-should be unique and should not appear elsewhere in either of the
-/etc/ax25/axports or the
-/etc/ax25/nrports files.
-
-; alias:
-
-is the NET/ROM alias this port will have assigned to it.
-
-; paclen:
-
-is the maximum size of NET/ROM frames transmitted by this port.
-
-; description:
-
-is a free text description of the port.
-
-
-
-
-
-An example would look something like the following:
-
-
-
-
-netrom VK2KTJ-9 LINUX 236 Linux Switch Port
-
-
-
-This example creates a NET/ROM port known to the rest of the NET/ROM network
-as `LINUX:VK2KTJ-9'.
-
-
-
-This file is used by programs such as the ''call'' program.
-
-----
-!!8.2. Configuring /etc/ax25/nrbroadcast
-
-The second file is the /etc/ax25/nrbroadcast file. This file may
-contain a number of entries. There would normally be one entry for each
-AX.25 port that you wish to allow NET/ROM traffic on.
-
-
-
-This file is formatted as follows:
-
-
-
-
-axport min_obs def_qual worst_qual verbose
-
-
-
-Where:
-
-
-
-
-; axport:
-
-is the port name obtained from the
-/etc/ax25/axports file. If you do not have an entry in
-/etc/ax25/nrbroadcasts for a port then this means that no NET/ROM
-routing will occur and any received NET/ROM broadcasts will be ignored for that
-port.
-
-; min_obs:
-
-is the minimum obselesence value for the port.
-
-; def_qual:
-
-is the default quality for the port.
-
-; worst_qual:
-
-is the worst quality value for the port, any routes under
-this quality will be ignored.
-
-; verbose:
-
-is a flag determining whether full NET/ROM routing broadcasts
-will occur from this port or only a routing broadcast advertising the node
-itself.
-
-
-
-
-
-An example would look something like the following:
-
-
-
-
-radio 1 200 100 1
-
-----
-!!8.3. Creating the NET/ROM Network device
-
-When you have the two configuration files completed you must create
-the NET/ROM device in much the same way as you did for the AX.25
-devices. This time you use the ''nrattach''
-command. The ''nrattach'' works in just the same way
-as the ''axattach'' command except that it creates
-NET/ROM network devices called `nr[[-9]'. Again, the
-first time you use the ''nrattach'' command it
-creates the `nr0' device, the second time it
-creates the `nr1' network devices etc. To create
-the network device for the NET/ROM port we've defined we would use:
-
-
-
-
-# nrattach netrom
-
-
-
-This command would start the NET/ROM device (nr0)
-named netrom configured with the details specified
-in the /etc/ax25/nrports file.
-
-----
-!!8.4. Starting the NET/ROM daemon
-
-The Linux kernel does all of the NET/ROM protocol and switching, but does not
-manage some functions. The NET/ROM daemon manages the NET/ROM routing tables
-and generates the NET/ROM routing broadcasts. You start NET/ROM daemon with
-the command:
-
-
-
-
-# /usr/sbin/netromd -i
-
-
-
-You should soon see the /proc/net/nr_neigh file filling up with
-information about your NET/ROM neighbours.
-
-
-
-Remember to put the /usr/sbin/netromd command in your
-''rc'' files so that it is started automatically each time you reboot.
-
-----
-!!8.5. Configuring NET/ROM routing.
-
-You may wish to configure static NET/ROM routes for specific hosts.
-The ''nrparms'' command enables you to do
-this. Again, the ''man'' page offers a complete
-description, but a simple example might be:
-
-
-
-
-# /usr/sbin/nrparms -nodes VK2XLZ-10 + #MINTO 120 5 radio VK2SUT-9
-
-
-
-This command would set a NET/ROM route to #MINTO:VK2XLZ-10 via a neighbour
-VK2SUT-9 on my AX.25 port called `radio'.
-
-
-
-You can manually create entries for new neighbours using the ''nrparms''
-command as well. For example:
-
-
-
-
-# /usr/sbin/nrparms -routes radio VK2SUT-9 + 120
-
-
-
-This command would create VK2SUT-9 as a NET/ROM neighbour with a quality
-of 120 and this will be locked and will not be deleted automatically.
-
-----
-!!!9. Configuring a NET/ROM interface for TCP/IP
-
-Configuring a NET/ROM interface for TCP/IP is almost identical to configuring
-an AX.25 interface for TCP/IP.
-
-
-
-Again you can either specify the ip address and mtu on the ''nrattach''
-command line, or use the ''ifconfig'' and ''route'' commands, but
-you need to manually add ''arp'' entries for hosts you wish to route to
-because there is no mechanism available for your machine to learn what
-NET/ROM address it should use to reach a particular IP host.
-
-
-
-So, to create an nr0 device with an IP address of 44.136.8.5,
-an mtu of 512 and configured with the details from the
-/etc/ax25/nrports file for a NET/ROM port named netrom
-you would use:
-
-
-
-
-# /usr/sbin/nrattach -i 44.136.8.5 -m 512 netrom
-# route add 44.136.8.5 nr0
-
-
-
-or you could use something like the following commands manually:
-
-
-
-
-# /usr/sbin/nrattach netrom
-# ifconfig nr0 44.136.8.5 netmask 255.255.255.0 hw netrom VK2KTJ-9
-# route add 44.136.8.5 nr0
-
-
-
-Then for each IP host you wish to reach via NET/ROM you need to set route and
-arp entries. To reach a destination host with an IP address of
-44.136.80.4 at NET/ROM address BBS:VK3BBS via a NET/ROM
-neighbour with callsign VK2SUT-0 you would use commands as follows:
-
-
-
-
-# route add 44.136.80.4 nr0
-# arp -t netrom -s 44.136.80.4 vk2sut-
-# nrparms -nodes vk3bbs + BBS 120 6 sl0 vk2sut-
-
-
-
-The `120' and `6' arguments to
-the ''nrparms'' command are the NET/ROM
-''quality'' and ''obsolescence
-count'' values for the route.
-
-----
-!!!10. Configuring a ROSE port
-
-The ROSE packet layer protocol is similar to layer three of the X.25
-specification. The kernel based ROSE support is a ''modified'' version of the
-FPAC Rose implementation.
-
-
-
-The ROSE packet layer protocol protocol relies on, and uses the AX.25 ports
-you have created. The ROSE protocol rides on top of the AX.25 protocol.
-To configure ROSE you must create a configuration file that describes the
-ROSE ports you want. You can create multiple ROSE ports if you wish, the same
-procedure applies for each.
-
-----
-!!10.1. Configuring /etc/ax25/rsports
-
-The file where you configure your ROSE interfaces is the
-/etc/ax25/rsports file. This file describes the ROSE port in much
-the same way as the /etc/ax25/axports file describes the AX.25 ports.
-
-
-
-This file is formatted as follows:
-
-
-
-
-name address description
-
-
-
-Where:
-
-
-
-
-; name:
-
-is the text name that you wish to refer to the port by.
-
-; address:
-
-is the 10 digit ROSE address you wish to assign to this port.
-
-; description:
-
-is a free text description of the port.
-
-
-
-
-
-An example would look something like the following:
-
-
-
-
-rose 5050294760 Rose Port
-
-
-
-Note that ROSE will use the default callsign/ssid configured on each
-AX.25 port unless you specify otherwise.
-
-
-
-To configure a separate callsign/ssid for ROSE to use on each port you
-use the ''rsparms'' command as follows:
-
-
-
-
-# /usr/sbin/rsprams -call VK2KTJ-10
-
-
-
-This example would make Linux listen for and use the callsign/ssid
-VK2KTJ-10 on all of the configured AX.25 ports for ROSE calls.
-
-----
-!!10.2. Creating the ROSE Network device
-
-When you have created the /etc/ax25/rsports file
-you may create the ROSE device in much the same way as you did for the
-AX.25 devices. This time you use the ''rsattach''
-command. The ''rsattach'' command creates network
-devices named `rose[[-5]'. The first time you use
-the ''rsattach'' command it create the
-`rose0' device, the second time it creates the
-`rose1' device etc. For example:
-
-
-
-
-# rsattach rose
-
-
-
-This command would start the ROSE device (rose0) configured with the
-details specified in the /etc/ax25/rsports file for the entry
-named `rose'.
-
-----
-!!10.3. Configuring ROSE Routing
-
-The ROSE protocol currently supports only static routing. The ''rsparms''
-utility allows you to configure your ROSE routing table under Linux.
-
-
-
-For example:
-
-
-
-
-# rsparms -nodes add 5050295502 radio vk2xlz
-
-
-
-would add a route to ROSE node 5050295502 via an
-AX.25 port named `radio' in your
-/etc/ax25/axports file to a neighbour with the
-callsign VK2XLZ.
-
-
-
-You may specify a route with a mask to capture a number of ROSE destinations
-into a single routing entry. The syntax looks like:
-
-
-
-
-# rsparms -nodes add 5050295502/4 radio vk2xlz
-
-
-
-which would be identical to the previous example except that it would match
-any destination address that matched the first four digits supplied, in this
-case any address commencing with the digits 5050. An alternate form
-for this command is:
-
-
-
-
-# rsparms -nodes add 5050/4 radio vk2xlz
-
-
-
-which is probably the less ambiguous form.
-
-----
-!!!11. Making AX.25/NET/ROM/ROSE calls
-
-Now that you have all of your AX.25, NET/ROM and ROSE interfaces configured
-and active, you should be able to make test calls.
-
-
-
-The AX.25 Utilities package includes a program called `''call''' which
-is a split screen terminal program for AX.25, NET/ROM and ROSE.
-
-
-
-A simple AX.25 call would look like:
-
-
-
-
-/usr/bin/call radio VK2DAY via VK2SUT
-
-
-
-A simple NET/ROM call to a node with an alias of SUNBBS would look like:
-
-
-
-
-/usr/bin/call netrom SUNBBS
-
-
-
-A simple ROSE call to HEARD at node
-5050882960 would look like:
-
-
-
-
-/usr/bin/call rose HEARD 5050882960
-
-
-
-Note: you must tell ''call'' which port you wish to
-make the call on, as the same destination node might be reachable on
-any of the ports you have configured.
-
-
-
-The ''call'' program is a line mode terminal program for making
-AX.25 calls. It recognizes lines that start with `#732' as command lines.
-The `#732.' command will close the connection.
-
-
-
-Please refer to the man page in /usr/man for more information.
-
-----
-!!!12. Configuring Linux to accept Packet connections
-
-Linux is a powerful operating system and offers a great deal of flexibility
-in how it is configured. With this flexibility comes a cost in configuring
-it to do what you want. When configuring your Linux machine to accept incoming
-AX.25, NET/ROM or ROSE connections there are a number of questions you need to
-ask yourself. The most important of which is: "What do I want users to see when
-they connect?". People are developing neat little applications that may be
-used to provide services to callers, a simple example is the ''pms'' program
-included in the AX.25 utilities, a more complex example is the ''node'' program
-also included in the AX.25 utilities. Alternatively you might want to give
-users a login prompt so that they can make use of a shell account, or you
-might even have written your own program, such as a customized database or a
-game, that you want people to connect to. Whatever you choose, you must tell
-the AX.25 software about this so that it knows what software to run when it
-accepts an incoming AX.25 connection.
-
-
-
-The ''ax25d'' program is similar to the ''inetd'' program commonly used
-to accept incoming TCP/IP connections on UNIX machines. It sits and listens
-for incoming connections, when it detects one it goes away and checks a
-configuration file to determine what program to run and connect to that
-connection. Since this the standard tool for accepting incoming AX.25, NET/ROM
-and ROSE connections I'll describe how to configure it.
-
-----
-!!12.1. Creating the /etc/ax25/ax25d.conf file
-
-This file is the configuration file for the ''ax25d'' AX.25 daemon which
-handles incoming AX.25, NET/ROM and ROSE connections.
-
-
-
-The file is a little cryptic looking at first, but you'll soon discover
-it is very simple in practice, with a small trap for you to be wary of.
-
-
-
-The general format of the ax25d.conf file is as follows:
-
-
-
-
-# This is a comment and is ignored by the ax25d program.
-[[port_name] || `port_nameb || {port_name}
-`peer1b window T1 T2 T3 idle N2 `modeb `uidb `cmdb `cmd-nameb `argumentsb
-`peer2b window T1 T2 T3 idle N2 `modeb `uidb `cmdb `cmd-nameb `argumentsb
-parameters window T1 T2 T3 idle N2 `modeb
-`peer3b window T1 T2 T3 idle N2 `modeb `uidb `cmdb `cmd-nameb `argumentsb
-...
-default window T1 T2 T3 idle N2 `modeb `uidb `cmdb `cmd-nameb `argumentsb
-
-
-
-Where:
-
-
-
-
-; #:
-
-at the start of a line marks a comment and is completely ignored
-by the ''ax25d'' program.
-
-; `port_nameb:
-
-is the name of the AX.25, NET/ROM or ROSE port as specified in the
-/etc/ax25/axports,
-/etc/ax25/nrports and
-/etc/ax25/rsports files. The name of the port is
-surrounded by the `[[]' brackets if it is an AX.25
-port, the ``b' brackets if it is a NET/ROM
-port, or the `{}' brackets if it is a
-ROSE port. There is an alternate form for this field, and that is use
-prefix the port name with `callsign/ssid via' to
-indicate that you wish accept calls to the callsign/ssid via this
-interface. The example should more clearly illustrate this.
-
-; `peerb:
-
-is the callsign of the peer node that this particular
-configuration applies to. If you don't specify an SSID here then any SSID will
-match.
-
-; window:
-
-is the AX.25 Window parameter (K) or MAXFRAME parameter for
-this configuration.
-
-; T1:
-
-is the Frame retransmission (T1) timer in half second units.
-
-; T2:
-
-is the amount of time the AX.25 software will wait for another
-incoming frame before preparing a response in 1 second units.
-
-; T3:
-
-is the amount of time of inactivity before the AX.25 software
-will disconnect the session in 1 second units.
-
-; idle:
-
-is the idle timer value in seconds.
-
-; N2:
-
-is the number of consecutive retransmissions that will occur
-before the connection is closed.
-
-; `modeb:
-
-provides a mechanism for determining certain types of
-general permissions. The modes are enabled or disabled by supplying a
-combination of characters, each representing a permission. The characters
-may be in either upper or lower case and must be in a single block with no
-spaces.
-
-
-
-
-; u/U:
-
-UTMP - currently unsupported.
-
-; v/V:
-
-Validate call - currently unsupported.
-
-; q/Q:
-
-Quiet - Don't log connection
-
-; n/N:
-
-check NET/ROM Neighbour - currently unsupported.
-
-; d/D:
-
-Disallow Digipeaters - Connections must be direct, not digipeated.
-
-; l/L:
-
-Lockout - Don't allow connection.
-
-; */:
-
-marker - place marker, no mode set.
-
-
-
-; `uidb:
-
-is the userid that the program to be run to support the
-connection should be run as.
-
-; `cmdb:
-
-is the full pathname of the command to be run, with no
-arguments specified.
-
-; `cmd-nameb:
-
-is the text that should appear in a ''ps'' as
-the command name running (normally the same as `cmdb except without the
-directory path information.
-
-; `argumentsb:
-
-are the command line argument to be passed to the
-`:cmdb when it is run. You pass useful information into these arguments
-by use of the following tokens:
-
-
-
-
-; %d:
-
-Name of the port the connection was received on.
-
-; %U:
-
-AX.25 callsign of the connected party without the SSID, in
-uppercase.
-
-; %u:
-
-AX.25 callsign of the connected party without the SSID, in
-lowercase.
-
-; %S:
-
-AX.25 callsign of the connected party with the SSID, in
-uppercase.
-
-; %s:
-
-AX.25 callsign of the connected party with the SSID, in
-lowercase.
-
-; %P:
-
-AX.25 callsign of the remote node that the connection came
-in from without the SSID, in uppercase.
-
-; %p:
-
-AX.25 callsign of the remote node that the connection came
-in from without the SSID, in lowercase.
-
-; %R:
-
-AX.25 callsign of the remote node that the connection came
-in from with the SSID, in uppercase.
-
-; %r:
-
-AX.25 callsign of the remote node that the connection came
-in from with the SSID, in lowercase.
-
-
-
-
-
-
-
-You need one section in the above format for each AX.25, NET/ROM or ROSE
-interface you want to accept incoming AX.25, NET/ROM or ROSE connections on.
-
-
-
-There are two special lines in the paragraph, one starts with the string
-`parameters' and the other starts with the string `default'
-(yes there is a difference). These lines serve special functions.
-
-
-
-The `default' lines purpose should be obvious, this line acts as a
-catch-all, so that any incoming connection on the `interface_callb
-interface that doesn't have a specific rule will match the `default'
-rule. If you don't have a `default' rule, then any connections not
-matching any specific rule will be disconnected immediately without notice.
-
-
-
-The `parameters' line is a little more subtle, and
-here is the trap I mentioned earlier. In any of the fields for any
-definition for a peer you can use the `*' character to say `use the
-default value'. The `parameters' line is what sets
-those default values. The kernel software itself has some defaults
-which will be used if you don't specify any using the
-`parameters' entry. The trap is that the these
-defaults apply ''only'' to those rules
-''below'' the `parameters' line,
-not to those above. You may have more than one
-`parameters' rule per interface definition, and in
-this way you may create groups of default configurations. It is
-important to note that the `parameters' rule does
-not allow you to set the `uid' or
-`command' fields.
-
-----
-!!12.2. A simple example ax25d.conf file
-
-Okay, an illustrative example:
-
-
-
-
-# ax25d.conf for VK2KTJ - 02/03/97
-# This configuration uses the AX.25 port defined earlier.
-# `peerb Win T1 T2 T3 idl N2 `modeb `uidb `execb `argv[[]b[[`args....b]
-[[VK2KTJ-0 via radio]
-parameters 1 10 * * * * *
-VK2XLZ * * * * * * * root /usr/sbin/axspawn axspawn %u +
-VK2DAY * * * * * * * root /usr/sbin/axspawn axspawn %u +
-NOCALL * * * * * * L
-default 1 10 5 100 180 5 * root /usr/sbin/pms pms -a -o vk2ktj
-[[VK2KTJ-1 via radio]
-default * * * * * 0 root /usr/sbin/node node
-`netromb
-parameters 1 10 * * * * *
-NOCALL * * * * * * L
-default * * * * * * 0 root /usr/sbin/node node
-{VK2KTJ-0 via rose}
-parameters 1 10 * * * * *
-VK2XLZ * * * * * * * root /usr/sbin/axspawn axspawn %u +
-VK2DAY * * * * * * * root /usr/sbin/axspawn axspawn %u +
-NOCALL * * * * * * L
-default 1 10 5 100 180 5 * root /usr/sbin/pms pms -a -o vk2ktj
-{VK2KTJ-1 via rose}
-default * * * * * 0 root /usr/sbin/node node radio
-
-
-
-This example says that anybody attempting to connect to the callsign
-`VK2KTJ-' heard on the AX.25 port called `radio' will have
-the following rules applied:
-
-
-
-Anyone whose callsign is set to `NOCALL' should be locked out, note the
-use of mode `L'.
-
-
-
-The parameters line changes two parameters from the
-kernel defaults (Window and T1) and will run the
-''/usr/sbin/axspawn'' program for them. Any copies of
-''/usr/sbin/axspawn'' run this way will appear as
-''axspawn'' in a ''ps'' listing for
-convenience. The next two lines provide definitions for two stations
-who will receive those permissions.
-
-
-
-The last line in the paragraph is the `catch all' definition that everybody
-else will get (including VK2XLZ and VK2DAY using any other SSID other than -1).
-This definition sets all of the parameters implicitly and will cause the
-''pms'' program to be run with a command line argument indicating that
-it is being run for an AX.25 connection, and that the owner callsign is
-VK2KTJ. (See the `Configuring the PMS' section below for more details).
-
-
-
-The next configuration accepts calls to VK2KTJ-1
-via the radio port. It runs the
-''node'' program for everybody that connects to it.
-
-
-
-The next configuration is a NET/ROM configuration, note the use of the
-greater-then and less-than braces instead of the square brackets. These
-denote a NET/ROM configuration. This configuration is simpler, it simply
-says that anyone connecting to our NET/ROM port called `netrom' will
-have the ''node'' program run for them, unless they have a callsign of
-`NOCALL' in which case they will be locked out.
-
-
-
-The last two configurations are for incoming ROSE connections. The first
-for people who have placed calls to `vk2ktj-' and the second for
-`VK2KTJ-1 at the our ROSE node address. These work precisely the same
-way. Not the use of the curly braces to distinguish the port as a ROSE
-port.
-
-
-
-This example is a contrived one but I think it illustrates clearly the
-important features of the syntax of the configuration file. The
-configuration file is explained fully in the
-ax25d.conf ''man'' page. A more
-detailed example is included in the ax25-utils
-package that might be useful to you too.
-
-----
-!!12.3. Starting ''ax25d''
-
-When you have the two configuration files completed you start ''ax25d''
-with the command:
-
-
-
-
-# /usr/sbin/ax25d
-
-
-
-When this is run people should be able to make AX.25 connections to
-your Linux machine. Remember to put the ax25d
-command in your ''rc'' files so that it is started
-automatically when you reboot each time.
-
-----
-!!!13. Configuring the ''node'' software
-
-The ''node'' software was developed by
-Tomi Manninen
-and was based on the original PMS program. It provides a fairly
-complete and flexible node capability that is easily configured. It
-allows users once they are connected to make Telnet, NET/ROM, ROSE, and
-AX.25 connections out and to obtain various sorts of information such
-as Finger, Nodes and Heard lists etc. You can configure the node to
-execute any Linux command you wish fairly simply.
-
-
-
-The node would normally be invoked from the ''ax25d''
-program although it is also capable of being invoked from the TCP/IP
-''inetd'' program to allow users to telnet to your
-machine and obtain access to it, or by running it from the command
-line.
-
-----
-!!13.1. Creating the /etc/ax25/node.conf file
-
-The node.conf file is where the main configuration of the node
-takes place. It is a simple text file and its format is as follows:
-
-
-
-
-# /etc/ax25/node.conf
-# configuration file for the node(8) program.
-#
-# Lines beginning with '#' are comments and are ignored.
-# Hostname
-# Specifies the hostname of the node machine
-hostname radio.gw.vk2ktj.ampr.org
-# Local Network
-# allows you to specify what is consider 'local' for the
-# purposes of permission checking using nodes.perms.
-localnet 44.136.8.96/29
-# Hide Ports
-# If specified allows you to make ports invisible to users. The
-# listed ports will not be listed by the (P)orts command.
-hiddenports rose netrom
-# Node Identification.
-# this will appear in the node prompt
-!NodeId LINUX:VK2KTJ-9
-# NET/ROM port
-# This is the name of the NET/ROM port that will be used for
-# outgoing NET/ROM connections from the node.
-!NrPort netrom
-# Node Idle Timeout
-# Specifies the idle time for connections to this node in seconds.
-idletimout 1800
-# Connection Idle Timeout
-# Specifies the idle timer for connections made via this node in
-# seconds.
-conntimeout 1800
-# Reconnect
-# Specifies whether users should be reconnected to the node
-# when their remote connections disconnect, or whether they
-# should be disconnected complete.
-reconnect on
-# Command Aliases
-# Provide a way of making complex node commands simple.
-alias CONV "telnet vk1xwt.ampr.org 3600"
-alias BBS "connect radio vk2xsb"
-# External Command Aliases
-# Provide a means of executing external commands under the node.
-# extcmd `cmdnameb `flagb `useridb `commandb
-# Flag == 1 is the only implemented function.
-# `commandb is formatted as per ax25d.conf
-extcmd PMS 1 root /usr/sbin/pms pms -u %U -o VK2KTJ
-# Logging
-# Set logging to the system log. 3 is the noisiest, 0 is disabled.
-loglevel 3
-# The escape character
-# 20 = (Control-T)
-!EscapeChar 20
-
-----
-!!13.2. Creating the /etc/ax25/node.perms file
-
-The ''node'' allows you to assign permissions to users. These permissions
-allow you to determine which users should be allowed to make use of options
-such as the (T)elnet, and (C)onnect commands, for example, and which
-shouldn't. The node.perms file is where this information is stored
-and contains five key fields. For all fields an asterisk `*'
-character matches anything. This is useful for building default rules.
-
-
-
-
-
-
-
-; user:
-
-The first field is the callsign or user to which the permissions should apply.
-Any SSID value is ignored, so you should just place the base callsign here.
-
-; method:
-
-Each protocol or access method is also given permissions. For example you
-might allow users who have connected via AX.25 or NET/ROM to use the (C)onnect
-option, but prevent others, such as those who are telnet connected from a
-non-local node from having access to it. The second field therefore allows
-you to select which access method this permissions rule should apply to.
-The access methods allowed are:
-
-
-
-
-
-!MethodDescriptionamprUser is telnet connected from an amprnet address (44...)ax25User connected by AX.25hostUser started node from command lineinetuser is telnet connected from a non-loca, non-ampr address.localUser is telnet connected from a 'local' hostnetromUser connected by NET/ROMroseUser connected by ROSE*User connected by any means.
-
-
-
-
-
-; port:
-
-For AX.25 users you can control permissions on a port by port basis too if you
-choose. This allows you to determine what AX.25 are allowed to do based on
-which of your ports they have connected to. The third field contains the port
-name if you are using this facility. This is useful only for AX.25 connections.
-
-; password:
-
-You may optionally configure the node so that it prompts users to enter a
-password when they connect. This might be useful to help protect specially
-configured users who have high authority levels. If the fourth field is
-set then its value will be the password that will be accepted.
-
-; permissions:
-
-The permissions field is the final field in each entry in the file.
-The permissions field is coded as a bit field, with each facility having a bit
-value which if set allows the option to be used and if not set prevents the
-facility being used. The list of controllable facilities and their
-corresponding bit values are:
-
-
-
-
-
-
-
-
-ValueDescription1Login allowed.2AX.25 (C)onnects allowed.4NET/ROM (C)onnects allowed.8(T)elnet to local hosts allowed.16(T)elnet to amprnet (44...) hosts allowed.32(T)elnet to non-local, non-amprnet hosts allowed.64Hidden ports allowed for AX.25 (C)onnects.128ROSE (C)onnects allowed.
-
-
-
-
-
-
-
-To code the permissions value for a rule, simply take each of the permissions
-you want that user to have and add their values together. The resulting number
-is what you place in field five.
-
-
-
-
-
-A sample nodes.perms might look like:
-
-
-
-
-# /etc/ax25/node.perms
-#
-# The node operator is VK2KTJ, has a password of 'secret' and
-# is allowed all permissions by all connection methods
-vk2ktj * * secret 255
-# The following users are banned from connecting
-NOCALL * * *
-PK232 * * *
-PMS * * *
-# INET users are banned from connecting.
-* inet * *
-# AX.25, NET/ROM, Local, Host and AMPR users may (C)onnect and (T)elnet
-# to local and ampr hosts but not to other IP addresses.
-* ax25 * * 159
-* netrom * * 159
-* local * * 159
-* host * * 159
-* ampr * * 159
-
-----
-!!13.3. Configuring ''node'' to run from ''ax25d''
-
-The ''node'' program would normally be run by the
-''ax25d'' program. To do this you need to add
-appropriate rules to the /etc/ax25/ax25d.conf
-file. In my configuration I wanted users to have a choice of either
-connecting to the ''node'' or connecting to other
-services. ''ax25d'' allows you to do this by cleverly
-creating creating port aliases. For example, given the
-''ax25d'' configuration presented above, I want to
-configure ''node'' so that all users who connect to
-VK2KTJ-1 are given the node. To do this I add the
-following to my /etc/ax25/ax25d.conf file:
-
-
-
-
-[[vk2ktj-1 via radio]
-default * * * * * 0 root /usr/sbin/node node
-
-
-
-This says that the Linux kernel code will answer any connection
-requests for the callsign `VK2KTJ-1' heard on the
-AX.25 port named `radio', and will cause the
-''node'' program to be run.
-
-----
-!!13.4. Configuring ''node'' to run from ''inetd''
-
-If you want users to be able to telnet a port on your machine and obtain
-access to the ''node'' you can go this fairly easily. The first thing
-to decide is what port users should connect to. In this example I've
-arbitrarily chosen port 4000, though Tomi gives details on how you could
-replace the normal telnet daemon with the ''node'' in his documentation.
-
-
-
-You need to modify two files.
-
-
-
-To /etc/services you should add:
-
-
-
-
-node 3694/tcp #OH2BNS's node software
-
-
-
-and to /etc/inetd.conf you should add:
-
-
-
-
-node stream tcp nowait root /usr/sbin/node node
-
-
-
-When this is done, and you have restarted the ''inetd'' program any user
-who telnet connects to port 3694 of your machine will be prompted to login
-and if configured, their password and then they will be connected to the
-''node''.
-
-----
-!!!14. Configuring ''axspawn''
-
-The ''axspawn'' program is a simple program that
-allows AX.25 stations who connect to be logged in to your machine. It
-may be invoked from the ''ax25d'' program as
-described above in a manner similar to the ''node''
-program. To allow a user to log in to your machine you should add a
-line similar to the following into your
-/etc/ax25/ax25d.conf file:
-
-
-
-
-default * * * * * 1 root /usr/sbin/axspawn axspawn %u
-
-
-
-If the line ends in the + character then the connecting user must
-hit return before they will be allowed to login. The default is to not wait.
-Any individual host configurations that follow this line will have the
-''axspawn'' program run when they connect. When ''axspawn'' is
-run it first checks that the command line argument it is supplied is a legal
-callsign, strips the SSID, then it checks that /etc/passwd file to
-see if that user has an account configured. If there is an account, and the
-password is either "" (null) or + then the user is logged
-in, if there is anything in the password field the user is prompted to enter
-a password. If there is not an existing account in the /etc/passwd
-file then ''axspawn'' may be configured to automatically create one.
-
-----
-!!14.1. Creating the /etc/ax25/axspawn.conf file
-
-You can alter the behaviour of ''axspawn'' in various ways by use of
-the /etc/ax25/axspawn.conf file. This file is formatted as
-follows:
-
-
-
-
-# /etc/ax25/axspawn.conf
-#
-# allow automatic creation of user accounts
-create yes
-#
-# guest user if above is 'no' or everything else fails. Disable with "no"
-guest no
-#
-# group id or name for autoaccount
-group ax25
-#
-# first user id to use
-first_uid 2001
-#
-# maximum user id
-max_uid 3000
-#
-# where to add the home directory for the new users
-home /home/ax25
-#
-# user shell
-shell /bin/bash
-#
-# bind user id to callsign for outgoing connects.
-associate yes
-
-
-
-The eight configurable characteristics of ''axspawn'' are as follows:
-
-
-
-
-
-
-
-; #:
-
-indicates a comment.
-
-; create:
-
-if this field is set to yes then ''axspawn''
-will attempt to automatically create a user account for any user who connects
-and does not already have an entry in the /etc/passwd file.
-
-; guest:
-
-this field names the login name of the account that will
-be used for people who connect who do not already have accounts if
-''create'' is set to no. This is usually ax25 or
-guest.
-
-; group:
-
-this field names the group name that will be used for any
-users who connect and do not already have an entry in the /etc/passwd
-file.
-
-; first_uid:
-
-this is the number of the first userid that will be
-automatically created for new users.
-
-; max_uid:
-
-this is the maximum number that will be used for the userid
-of new users.
-
-; home:
-
-this is the home (login) directory of new users.
-
-; shell:
-
-this is the login shell of any new users.
-
-; associate:
-
-this flag indicates whether outgoing AX.25 connections
-made by this user after they login will use their own callsign, or your
-stations callsign.
-
-
-
-----
-!!!15. Configuring the ''pms''
-
-The ''pms'' program is an implementation of a simple personal message
-system. It was originally written by Alan Cox.
-Dave Brown, N2RJT,
-has taken on further development of it. At present it is still very
-simple, supporting only the ability to send mail to the owner of the
-system and to obtain some limited system information but Dave is
-working to expand its capability to make it more useful.
-
-
-
-After that is done there are a couple of simple files that you should create
-that give users some information about the system and then you need to add
-appropriate entries into the ax25d.conf file so that connected users
-are presented with the PMS.
-
-----
-!!15.1. Create the /etc/ax25/pms.motd file
-
-The /etc/ax25/pms.motd file contains the `message of the day' that
-users will be presented with after they connect and receive the usual BBS
-id header. The file is a simple text file, any text you include in this file
-will be sent to users.
-
-----
-!!15.2. Create the /etc/ax25/pms.info file
-
-The /etc/ax25/pms.info file is also a simple text file in which
-you would put more detailed information about your station or configuration.
-This file is presented to users in response to their issuing of the
-Info command from the PMSb prompt.
-
-----
-!!15.3. Associate AX.25 callsigns with system users
-
-When a connected user sends mail to an AX.25 callsign, the ''pms'' expects
-that callsign to be mapped, or associated with a real system user on your
-machine. This is described in a section of its own.
-
-----
-!!15.4. Add the PMS to the /etc/ax25/ax25d.conf file
-
-Adding the ''pms'' to your ax25d.conf file is very simple.
-There is one small thing you need to think about though. Dave has added command
-line arguments to the PMS to allow it to handle a number of different text
-end-of-line conventions. AX.25 and NET/ROM by convention expect the end-of-line
-to be ''carriage return, linefeed'' while the standard UNIX end-of-line is
-just ''newline''. So, for example, if you wanted to add an entry that
-meant that the default action for a connection received on an AX.25 port is
-to start the PMS then you would add a line that looked something like:
-
-
-
-
-default 1 10 5 100 5 0 root /usr/sbin/pms pms -a -o vk2ktj
-
-
-
-This simply runs the ''pms'' program, telling it that it is an AX.25
-connection it is connected to and that the PMS owner is vk2ktj.
-Check the ''man'' page for what you should specify for other connection
-methods.
-
-----
-!!15.5. Test the PMS
-
-To test the PMS, you can try the following command from the command line:
-# /usr/sbin/pms -u vk2ktj -o vk2ktj
-Substitute your own callsign for mine and this will run the pms, telling it
-that it is to use the UNIX end-of-line convention, and that user logging in
-is vk2ktj. You can do all the things connected users can.
-
-
-
-Additionally you might try getting some other node to connect to you to
-confirm that your ax25d.conf configuration works.
-
-----
-!!!16. Configuring the ''user_call'' programs
-
-The `''user_call''' programs are really called:
-''ax25_call'' and
-''netrom_call''. They are very simple programs
-designed to be called from ''ax25d'' to automate
-network connections to remote hosts. They may of course be called from
-a number of other places such as shell scripts or other daemons such
-as the ''node'' program.
-
-
-
-They are like a very simple ''call'' program. They don't do any meddling
-with the data at all, so the end of line handling you'll have to worry about
-yourself.
-
-
-
-Let's start with an example of how you might use them. Imagine you have
-a small network at home and that you have one linux machine acting as your
-Linux radio gateway and another machine, lets say a BPQ node connected to it
-via an ethernet connection.
-
-
-
-Normally if you wanted radio users to be able to connect
-to the BPQ node they would either have to digipeat through your linux node,
-or connect to the node program on your linux node and then connect from it.
-The ''ax25_call'' program can simplify this if it is called from the
-''ax25d'' program.
-
-
-
-Imagine the BPQ node has the callsign VK2KTJ-9 and that the linux
-machine has the AX.25/ethernet port named `bpq'. Let us also imagine
-the Linux gateway machine has a radio port called `radio'.
-
-
-
-An entry in the /etc/ax25/ax25d.conf that looked like:
-
-
-
-
-[[VK2KTJ-1 via radio]
-default * * * * * * *
-root /usr/sbin/ax25_call ax25_call bpq %u vk2ktj-9
-
-
-
-would enable users to connect direct to `VK2KTJ-1'
-which would actually be the Linux ''ax25d'' daemon
-and then be automatically switched to an AX.25 connection to
-`VK2KTJ-9' via the `bpq'
-interface.
-
-
-
-There are all sorts of other possible configurations that you might try.
-The `''netrom_call''' and `''rose_call''' utilities work in
-similar ways. One amateur has used this utility to make connections to a
-remote BBS easier. Normally the users would have to manually enter a long
-connection string to make the call so he created an entry that made the BBS
-appear as though it were on the local network by having his ''ax25d'' proxy
-the connection to the remote machine.
-
-----
-!!!17. Configuring the ROSE Uplink and Downlink commands
-
-If you are familiar with the ROM based ROSE implementation you will be
-familiar with the method by which AX.25 users make calls across a ROSE
-network. If a users local ROSE node has the callsign VK2KTJ-5 and
-the AX.25 user wants to connect to VK5XXX at remote ROSE node
-5050882960 then they would issue the command:
-
-
-
-
-c vk5xxx v vk2ktj-5 5050 882960
-
-
-
-At the remote node, VK5XXX would see an incoming connection with the
-local AX.25 users callsign and being digipeated via the remote ROSE nodes
-callsign.
-
-
-
-The Linux ROSE implementation does not support this capability in the
-kernel, but there are two application programs called
-''rsuplnk'' and ''rsdwnlnk'' which
-perform this function.
-
-----
-!!17.1. Configuring a ROSE downlink
-
-To configure your Linux machine to accept a ROSE connection and establish an
-AX.25 connection to any destination callsign that is not being listened for
-on your machine you need to add an entry to your /etc/ax25/ax25d.conf
-file. Normally you would configure this entry to be the default behaviour for
-incoming ROSE connections. For example you might have ROSE listeners operating
-for destinations like NODE-0 or HEARD-0 that you wish to handle
-locally, but for all other destination calls you may want to pass them to
-the ''rsdwnlink'' command and assume they are AX.25 users.
-
-
-
-A typical configuration would look like:
-
-
-
-
-#
-{* via rose}
-NOCALL * * * * * * L
-default * * * * * * - root /usr/sbin/rsdwnlnk rsdwnlnk 4800 vk2ktj-5
-#
-
-
-
-With this configuration any user who established a ROSE connection to your
-Linux nodes address with a destination call of something that you were not
-specifically listening for would be converted into an AX.25 connection on the
-AX.25 port named 4800 with a digipeater path of VK2KTJ-5.
-
-----
-!!17.2. Configuring a ROSE uplink
-
-To configure your Linux machine to accept AX.25 connections in the same way
-that a ROM ROSE node would you must add an entry into your
-/etc/ax25/ax25d.conf file that looks similar to the following:
-
-
-
-
-#
-[[VK2KTJ-5* via 4800]
-NOCALL * * * * * * L
-default * * * * * * - root /usr/sbin/rsuplnk rsuplnk rose
-#
-
-
-
-Note the special syntax for the local callsign. The `*' character
-indicates that the application should be invoked if the callsign is heard in
-the digipeater path of a connection.
-
-
-
-This configuration would allow an AX.25 user to establish ROSE calls
-using the example connect sequence presented in the
-introduction. Anybody attempting to digipeat via
-VK2KTJ-5 on the AX.25 port named
-4800 would be handled by the
-''rsuplnk'' command.
-
-----
-!!!18. Associating AX.25 callsigns with Linux users
-
-There are a number of situations where it is highly desirable to associate
-a callsign with a linux user account. One example might be where a number of
-amateur radio operators share the same linux machine and wish to use their
-own callsign when making calls. Another is the case of PMS users wanting to
-talk to a particular user on your machine.
-
-
-
-The AX.25 software provides a means of managing this association of linux
-user account names with callsigns. We've mentioned it once already in the PMS
-section, but I'm spelling it out here to be sure you don't miss it.
-
-
-
-You make the association with the ''axparms'' command. An example looks
-like:
-
-
-
-
-# axparms -assoc vk2ktj terry
-
-
-
-This command associates that AX.25 callsign vk2ktj with the user
-terry on the machine. So, for example, any mail for vk2ktj
-on the ''pms'' will be sent to Linux account terry.
-
-
-
-Remember to put these associations into your ''rc'' file so that they
-are available each time your reboot.
-
-
-
-''Note'' you should never associate a callsign with the root
-account as this can cause configuration problems in other programs.
-
-----
-!!!19. Configuring APRS
-
-
-
-
-
-
-This section has yet to be written. It should cover aprsd, aprsdigi,
-aprsmon, xastir, JavAPRS, etc.
-
-----
-!!!20. The /proc/ file system entries
-
-The /proc filesystem contains a number of files specifically
-related to the AX.25 and NET/ROM kernel software. These files are normally
-used by the AX52 utilities, but they are plainly formatted so you may
-be interested in reading them. The format is fairly easily understood so
-I don't think much explanation will be necessary.
-
-
-
-
-
-
-
-; /proc/net/arp:
-
-contains the list of Address Resolution Protocol
-mappings of IP addresses to MAC layer protocol addresses. These can can AX.25,
-ethernet or some other MAC layer protocol.
-
-; /proc/net/ax25:
-
-contains a list of AX.25 sockets opened. These might
-be listening for a connection, or active sessions.
-
-; /proc/net/ax25_bpqether:
-
-contains the AX.25 over ethernet BPQ
-style callsign mappings.
-
-; /proc/net/ax25_calls:
-
-contains the linux userid to callsign
-mappings set my the ''axparms -assoc'' command.
-
-; /proc/net/ax25_route:
-
-contains AX.25 digipeater path
-information.
-
-; /proc/net/nr:
-
-contains a list of NET/ROM sockets opened. These might
-be listening for a connection, or active sessions.
-
-; /proc/net/nr_neigh:
-
-contains information about the NET/ROM
-neighbours known to the NET/ROM software.
-
-; /proc/net/nr_nodes:
-
-contains information about the NET/ROM
-nodes known to the NET/ROM software.
-
-; /proc/net/rose:
-
-contains a list of ROSE sockets opened. These might
-be listening for a connection, or active sessions.
-
-; /proc/net/rose_nodes:
-
-contains a mapping of ROSE destinations
-to ROSE neighbours.
-
-; /proc/net/rose_neigh:
-
-contains a list of known ROSE neighbours.
-
-; /proc/net/rose_routes:
-
-contains a list of all established ROSE
-connections.
-
-
-
-----
-!!!21. AX.25, NET/ROM, ROSE network programming
-
-Probably the biggest advantage of using the kernel based implementations of
-the amateur packet radio protocols is the ease with which you can develop
-applications and programs to use them.
-
-
-
-While the subject of Unix Network Programming is outside the scope of this
-document I will describe the elementary details of how you can make use of
-the AX.25, NET/ROM and ROSE protocols within your software.
-
-----
-!!21.1. The address families
-
-Network programming for AX.25, NET/ROM and ROSE is quite similar to programming
-for TCP/IP under Linux. The major differences being the address families used,
-and the address structures that need to be mangled into place.
-
-
-
-The address family names for AX.25, NET/ROM and ROSE are AF_AX25,
-AF_NETROM and AF_ROSE respectively.
-
-----
-!!21.2. The header files
-
-You must always include the `netax25/ax25.h' header
-file, and also the `netrom/netrom.h' or
-`netrose/rose.h' header files if you are dealing
-with those protocols. Simple top level skeletons would look something
-like the following:
-
-
-
-For AX.25:
-
-
-
-
-#include `netax25/ax25.hb
-int s, addrlen = sizeof(struct full_sockaddr_ax25);
-struct full_sockaddr_ax25 sockaddr;
-sockaddr.fsa_ax25.sax25_family = AF_AX25
-
-
-
-For NET/ROM:
-
-
-
-
-#include `netax25/ax25.hb
-#include `netrom/netrom.hb
-int s, addrlen = sizeof(struct full_sockaddr_ax25);
-struct full_sockaddr_ax25 sockaddr;
-sockaddr.fsa_ax25.sax25_family = AF_NETROM;
-
-
-
-For ROSE:
-
-
-
-
-#include `netax25/ax25.hb
-#include `netrose/rose.hb
-int s, addrlen = sizeof(struct sockaddr_rose);
-struct sockaddr_rose sockaddr;
-sockaddr.srose_family = AF_ROSE;
-
-----
-!!21.3. Callsign mangling and examples
-
-There are routines within the lib/ax25.a library built in the
-AX.25 utilities package that manage the callsign conversions for you. You can
-write your own of course if you wish.
-
-
-
-The ''user_call'' utilities are excellent examples from which to
-work. The source code for them is included in the AX.25 utilities package.
-If you spend a little time working with those you will soon see that
-ninety percent of the work is involved in just getting ready to open the
-socket. Actually making the connection is easy, the preparation takes time.
-
-
-
-The examples are simple enough to not be very confusing. If you have any
-questions, you should feel to direct them to the linux-hams mailing
-list and someone there will be sure to help you.
-
-----
-!!!22. Some sample configurations
-
-Following are examples of the most common types of configurations. These
-are guides only as there are as many ways of configuring your network as there
-are networks to configure, but they may give you a start.
-
-----
-!!22.1. Small Ethernet LAN with Linux as a router to Radio LAN
-
-Many of you may have small local area networks at home and want to
-connect the machines on that network to your local radio LAN. This is
-the type of configuration I use at home. I arranged to have a suitable
-block of addresses allocated to me that I could capture in a single route
-for convenience and I use these on my Ethernet LAN. Your local IP coordinator
-will assist you in doing this if you want to try it as well. The addresses
-for the Ethernet LAN form a subset of the radio LAN addresses. The following
-configuration is the actual one for my linux router on my network at home:
-
-
-
-
- . . . . . .
-___ _________ .
-| Network / \ . Network
-| 44.136.8.96/29| | . 44.136.8/24 \ | /
-| | Linux | . \|/
-| | | . _____ __________ |
-| eth0 | Router | . / \ / \ |
-|_______________| |_____| TNC |____| Radio |__/
-| 44.136.8.97 | and | . \_____/ \__________/
-| | | sl0
-| | Server | 44.136.8.5
-| | | .
-| | | .
-| \_________/ .
-_|_ . . . . . .
-
-
-
-
-#!/bin/sh
-# /etc/rc.net
-# This configuration provides one KISS based AX.25 port and one
-# Ethernet device.
-echo "/etc/rc.net"
-echo " Configuring:"
-echo -n " loopback:"
-/sbin/ifconfig lo 127...1
-/sbin/route add 127...1
-echo " done."
-echo -n " ethernet:"
-/sbin/ifconfig eth0 44.136.8.97 netmask 255.255.255.248 \
-broadcast 44.136.8.103 up
-/sbin/route add 44.136.8.97 eth0
-/sbin/route add -net 44.136.8.96 netmask 255.255.255.248 eth0
-echo " done."
-echo -n " AX.25: "
-kissattach -i 44.136.8.5 -m 512 /dev/ttyS1 4800
-ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.8.255
-route add -host 44.136.8.5 sl0
-route add -net 44.136.8.0 window 1024 sl0
-echo -n " NET/ROM: "
-nrattach -i 44.136.8.5 netrom
-echo " Routing:"
-/sbin/route add default gw 44.136.8.68 window 1024 sl0
-echo " default route."
-echo done.
-# end
-
-
-
-/etc/ax25/axports
-
-# name callsign speed paclen window description
-4800 VK2KTJ-0 4800 256 2 144.800 MHz
-
-
-
-/etc/ax25/nrports
-
-# name callsign alias paclen description
-netrom VK2KTJ-9 LINUX 235 Linux Switch Port
-
-
-
-/etc/ax25/nrbroadcast
-
-# ax25_name min_obs def_qual worst_qual verbose
-4800 1 120 10 1
-
-
-
-
-
-
-
-
-*
-
-You must have IP_FORWARDING enabled in your kernel.
-
-
-*
-*
-
-The AX.25 configuration files are pretty much those used as examples
-in the earlier sections, refer to those where necessary.
-
-
-*
-*
-
-I've chosen to use an IP address for my radio port that is not within
-my home network block. I needn't have done so, I could have easily used
-44.136.8.97 for that port too.
-
-
-*
-*
-
-44.136.8.68 is my local IPIP encapsulated gateway and hence
-is where I point my default route.
-
-
-*
-*
-
-Each of the machines on my Ethernet network have a route:
-
-
-
-
-route add -net 44...0 netmask 255...0 \
-gw 44.136.8.97 window 512 mss 512 eth0
-
-
-
-The use of the ''mss'' and ''window'' parameters means that I can
-get optimum performance from both local Ethernet and radio based connections.
-
-
-*
-*
-
-I also run my smail, http, ftp and other daemons on the router machine
-so that it needs to be the only machine to provide others with facilities.
-
-
-*
-*
-
-The router machine is a lowly 386DX20 with a 20Mb hard drive and a very
-minimal linux configuration.
-
-
-*
-
-----
-!!22.2. IPIP encapsulated gateway configuration
-
-
-
-
-
-
-Some information here on tunnelling is out of date. The setup has
-changed since the 2..x kernel, now the "ip" command from the iproute2
-package should be used, as described in the Advanced Routing
-HOWTO.
-
-
-
-Linux is now very commonly used for TCP/IP encapsulated gateways around
-the world. The new tunnel driver supports multiple encapsulated routes
-and makes the older ''ipip'' daemon obsolete.
-
-
-
-A typical configuration would look similar to the following.
-
-
-
-
- . . . . . .
-___ _________ .
-| Network / \ . Network
-| 154.27.3/24 | | . 44.136.16/24 \ | /
-| | Linux | . \|/
-| | | . _____ __________ |
-| eth0 | IPIP | . / \ / \ |
-___|_______________| |_____| TNC |____| Radio |___/
-| 154.27.3.20 | Gateway | . \_____/ \__________/
-| | | sl0
-| | | 44.136.16.1
-| | | .
-| | | .
-| \_________/ .
-_|_ . . . . . .
-
-
-
-The configuration files of interest are:
-
-
-
-
-# /etc/rc.net
-# This file is a simple configuration that provides one KISS AX.25
-# radio port, one Ethernet device, and utilizes the kernel tunnel driver
-# to perform the IPIP encapsulation/decapsulation
-#
-echo "/etc/rc.net"
-echo " Configuring:"
-#
-echo -n " loopback:"
-/sbin/ifconfig lo 127...1
-/sbin/route add 127...1
-echo " done."
-#
-echo -n " ethernet:"
-/sbin/ifconfig eth0 154.27.3.20 netmask 255.255.255.0 \
-broadcast 154.27.3.255 up
-/sbin/route add 154.27.3.20 eth0
-/sbin/route add -net 154.27.3.0 netmask 255.255.255.0 eth0
-echo " done."
-#
-echo -n " AX.25: "
-kissattach -i 44.136.16.1 -m 512 /dev/ttyS1 4800
-/sbin/ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.16.255
-/sbin/route add -host 44.136.16.1 sl0
-/sbin/route add -net 44.136.16.0 netmask 255.255.255.0 window 1024 sl0
-#
-echo -n " tunnel:"
-/sbin/ifconfig tunl0 44.136.16.1 mtu 512 up
-#
-echo done.
-#
-echo -n "Routing ... "
-source /etc/ipip.routes
-echo done.
-#
-# end.
-
-
-
-and:
-
-
-
-
-# /etc/ipip.routes
-# This file is generated using the munge script
-#
-/sbin/route add -net 44.134.8.0 netmask 255.255.255.0 tunl0 gw 134.43.26.1
-/sbin/route add -net 44.34.9.0 netmask 255.255.255.0 tunl0 gw 174.84.6.17
-/sbin/route add -net 44.13.28.0 netmask 255.255.255.0 tunl0 gw 212.37.126.3
-...
-...
-...
-
-
-
-/etc/ax25/axports
-
-# name callsign speed paclen window description
-4800 VK2KTJ-0 4800 256 2 144.800 MHz
-
-
-
-Some points to note here are:
-
-
-
-
-
-
-
-
-*
-
-The new tunnel driver uses the ''gw'' field in the routing table
-in place of the ''pointopoint'' parameter to specify the address of
-the remote IPIP gateway. This is why it now supports multiple routes per
-interface.
-
-
-*
-*
-
-You ''can'' configure two network devices with the same address.
-In this example both the sl0 and the tunl0 devices have
-been configured with the IP address of the radio port. This is done so that
-the remote gateway sees the correct address from your gateway in encapsulated
-datagrams sent to it.
-
-
-*
-*
-
-The route commands used to specify the encapsulated routes can be
-automatically generated by a modified version of the ''munge'' script.
-This is included below. The route commands would then be written to a separate
-file and read in using the ''bash'' source /etc/ipip.routes
-command (assuming you called the file with the routing commands
-/etc/ipip.routes) as illustrated. The source file must be in the
-NOS route command format.
-
-
-*
-*
-
-Note the use of the ''window'' argument on the
-''route'' command. Setting this parameter to an
-appropriate value improves the performance of your radio link.
-
-
-*
-
-
-
-The new tunnel-munge script:
-
-
-
-
-#!/bin/sh
-#
-# From: Ron Atkinson `n8fow@hamgate.cc.wayne.edub
-#
-# This script is basically the 'munge' script written by Bdale N3EUA
-# for the IPIP daemon and is modified by Ron Atkinson N8FOW. It's
-# purpose is to convert a KA9Q NOS format gateways route file
-# (usually called 'encap.txt') into a Linux routing table format
-# for the IP tunnel driver.
-#
-# Usage: Gateway file on stdin, Linux route format file on stdout.
-# eg. tunnel-munge ` encap.txt b ampr-routes
-#
-# NOTE: Before you use this script be sure to check or change the
-# following items:
-#
-# 1) Change the 'Local routes' and 'Misc user routes' sections
-# to routes that apply to your own area (remove mine please!)
-# 2) On the fgrep line be sure to change the IP address to YOUR
-# gateway Internet address. Failure to do so will cause serious
-# routing loops.
-# 3) The default interface name is 'tunl0'. Make sure this is
-# correct for your system.
-echo "#"
-echo "# IP tunnel route table built by $LOGNAME on `date`"
-echo "# by tunnel-munge script v960307."
-echo "#"
-echo "# Local routes"
-echo "route add -net 44.xxx.xxx.xxx netmask 255.mmm.mmm.mmm dev sl0"
-echo "#"
-echo "# Misc user routes"
-echo "#"
-echo "# remote routes"
-fgrep encap | grep "^route" | grep -v " XXX.XXX.XXX.XXX" | \
-awk '{
-split($3, s, "/")
-split(s[[1], n,".")
-if (n[[1] == "") n[[1]=""
-if (n[[2] == "") n[[2]=""
-if (n[[3] == "") n[[3]=""
-if (n[[4] == "") n[[4]=""
-if (s[[2] == "1") mask="128..."
-else if (s[[2] == "2") mask="192..."
-else if (s[[2] == "3") mask="224..."
-else if (s[[2] == "4") mask="240..."
-else if (s[[2] == "5") mask="248..."
-else if (s[[2] == "6") mask="252..."
-else if (s[[2] == "7") mask="254..."
-else if (s[[2] == "8") mask="255..."
-else if (s[[2] == "9") mask="255.128.."
-else if (s[[2] == "10") mask="255.192.."
-else if (s[[2] == "11") mask="255.224.."
-else if (s[[2] == "12") mask="255.240.."
-else if (s[[2] == "13") mask="255.248.."
-else if (s[[2] == "14") mask="255.252.."
-else if (s[[2] == "15") mask="255.254.."
-else if (s[[2] == "16") mask="255.255.."
-else if (s[[2] == "17") mask="255.255.128."
-else if (s[[2] == "18") mask="255.255.192."
-else if (s[[2] == "19") mask="255.255.224."
-else if (s[[2] == "20") mask="255.255.240."
-else if (s[[2] == "21") mask="255.255.248."
-else if (s[[2] == "22") mask="255.255.252."
-else if (s[[2] == "23") mask="255.255.254."
-else if (s[[2] == "24") mask="255.255.255."
-else if (s[[2] == "25") mask="255.255.255.128"
-else if (s[[2] == "26") mask="255.255.255.192"
-else if (s[[2] == "27") mask="255.255.255.224"
-else if (s[[2] == "28") mask="255.255.255.240"
-else if (s[[2] == "29") mask="255.255.255.248"
-else if (s[[2] == "30") mask="255.255.255.252"
-else if (s[[2] == "31") mask="255.255.255.254"
-else mask="255.255.255.255"
-if (mask == "255.255.255.255")
-printf "route add -host %s.%s.%s.%s gw %s dev tunl0\n"\
-,n[[1],n[[2],n[[3],n[[4],$5
-else
-printf "route add -net %s.%s.%s.%s gw %s netmask %s dev tunl0\n"\
-,n[[1],n[[2],n[[3],n[[4],$5,mask
-}'
-echo "#"
-echo "# default the rest of amprnet via mirrorshades.ucsd.edu"
-echo "route add -net 44...0 gw 128.54.16.18 netmask 255...0 dev tunl0"
-echo "#"
-echo "# the end"
-
-----
-!!22.3. AXIP encapsulated gateway configuration
-
-Many Amateur Radio Internet gateways encapsulate AX.25, NET/ROM and ROSE in
-addition to tcp/ip. Encapsulation of AX.25 frames within IP datagrams is
-described in RFC-1226 by Brian Kantor. Mike Westerhof wrote an implementation
-of an AX.25 encapsulation daemon for UNIX in 1991. The ax25-utils package
-includes a marginally enhanced version of it for Linux.
-
-
-
-An AXIP encapsulation program accepts AX.25 frames at one end, looks at the
-destination AX.25 address to determine what IP address to send them to,
-encapsulates them in a tcp/ip datagram and then transmits them to
-the appropriate remote destination. It also accepts tcp/ip datagrams
-that contain AX.25 frames, unwraps them and processes them as if it had
-received them directly from an AX.25 port. To distinguish IP datagrams
-containing AX.25 frames from other IP datagrams which don't, AXIP datagrams
-are coded with a protocol id of 4 (or 94 which is now deprecated). This
-process is described in RFC-1226.
-
-
-
-The ''ax25ipd'' program included in the ax25-utils package presents itself
-as a program supporting a KISS interface across which you pass AX.25 frames,
-and an interface into the tcp/ip protocols. It is configured with a single
-configuration file called /etc/ax25/ax25ipd.conf.
-
-----
-!22.3.1. AXIP configuration options
-
-The ''ax25ipd'' program has two major modes of operation. "digipeater"
-mode and "tnc" mode. In "tnc" mode the daemon is treated as though it
-were a kiss TNC, you pass KISS encapsulated frames to it and it will
-transmit them, this is the usual configuration. In "digipeater" mode, you
-treat the daemon as though it were an AX.25 digipeater. There are subtle
-differences between these modes.
-
-
-
-In the configuration file you configure "routes" or mappings between
-destination AX.25 callsigns and the IP addresses of the hosts that you
-want to send the AX.25 packets too. Each route has options which will be
-explained later.
-
-
-
-Other options that are configured here are:
-
-
-
-
-
-*
-
-the tty that the ''ax25ipd'' daemon will open and its speed (usually
-one end of a pipe)
-
-
-*
-*
-
-what callsign you want to use in "digipeater" mode
-
-
-*
-*
-
-beacon interval and text
-
-
-*
-*
-
-whether you want to encapsulate the AX.25 frames in IP datagrams or in
-UDP/IP datagrams. Nearly all AXIP gateways use IP encapsulation, but some
-gateways are behind firewalls that will not allow IP with the AXIP protocol id
-to pass and are forced to use UDP/IP. Whatever you choose must match
-what the tcp/ip host at the other end of the link is using.
-
-
-*
-
-----
-!22.3.2. A typical /etc/ax25/ax25ipd.conf file
-
-
-#
-# ax25ipd configuration file for station floyd.vk5xxx.ampr.org
-#
-# Select axip transport. 'ip' is what you want for compatibility
-# with most other gateways.
-#
-socket ip
-#
-# Set ax25ipd mode of operation. (digi or tnc)
-#
-mode tnc
-#
-# If you selected digi, you must define a callsign. If you selected
-# tnc mode, the callsign is currently optional, but this may change
-# in the future! (2 calls if using dual port kiss)
-#
-#mycall vk5xxx-4
-#mycall2 vk5xxx-5
-#
-# In digi mode, you may use an alias. (2 for dual port)
-#
-#myalias svwdns
-#myalias2 svwdn2
-#
-# Send an ident every 540 seconds ...
-#
-#beacon after 540
-#btext ax25ip -- tncmode rob/vk5xxx -- Experimental AXIP gateway
-#
-# Serial port, or pipe connected to a kissattach in my case
-#
-device /dev/ttyq0
-#
-# Set the device speed
-#
-speed 9600
-#
-# loglevel 0 - no output
-# loglevel 1 - config info only
-# loglevel 2 - major events and errors
-# loglevel 3 - major events, errors, and AX.25 frame trace
-# loglevel 4 - all events
-# log 0 for the moment, syslog not working yet ...
-#
-loglevel 2
-#
-# If we are in digi mode, we might have a real tnc here, so use param to
-# set the tnc parameters ...
-#
-#param 1 20
-#
-# Broadcast Address definition. Any of the addresses listed will be forwarded
-# to any of the routes flagged as broadcast capable routes.
-#
-broadcast QST-0 NODES-
-#
-# ax.25 route definition, define as many as you need.
-# format is route (call/wildcard) (ip host at destination)
-# ssid of 0 routes all ssid's
-#
-# route `destcallb `destaddrb [[flags]
-#
-# Valid flags are:
-# b - allow broadcasts to be transmitted via this route
-# d - this route is the default route
-#
-route vk2sut-0 44.136.8.68 b
-route vk5xxx 44.136.188.221 b
-route vk2abc 44.1.1.1
-#
-#
-
-----
-!22.3.3. Running ''ax25ipd''
-
-
-
-
-
-; Create your /etc/ax25/axports entry::
-
-
-# /etc/ax25/axports
-#
-axip VK2KTJ-13 9600 256 AXIP port
-#
-
-; Run the ''kissattach'' command to create that port::
-
-
-/usr/sbin/kissattach /dev/ptyq0 axip 44.135.96.242
-
-; Run the ''ax25ipd'' program::
-
-
-/usr/sbin/ax25ipd 8
-
-; Test the AXIP link::
-
-
-call axip vk5xxx
-
-
-
-----
-!22.3.4. Some notes about the routes and route flags
-
-The "route" command is where you specify where you want your AX.25
-packets encapsulated and sent to. When the ''ax25ipd'' daemon receives
-a packet from its interface, it compares the destination callsign with each
-of the callsigns in its routing table. If if finds a match then the ax.25
-packet is encapsulated in an IP datagram and then transmitted to the host
-at the specified IP address.
-
-
-
-There are two flags you can add to any of the route commands in the
-ax25ipd.conf file. The two flags are:
-
-
-
-
-; b:
-
-traffic with a destination address matching any of those on
-the list defined by the "broadcast" keyword should be transmitted via
-this route.
-
-; d:
-
-any packets not matching any route should be transmitted via
-this route.
-
-
-
-
-
-The broadcast flag is very useful, as it enables informations that is normally
-destined for all stations to a number of AXIP destinations. Normally axip
-routes are point-to-point and unable to handle 'broadcast' packets.
-
-----
-!!22.4. Linking NOS and Linux using a pipe device
-
-Many people like to run some version of NOS under Linux because it has
-all of the features and facilities they are used to. Most of those people
-would also like to have the NOS running on their machine capable of talking
-to the Linux kernel so that they can offer some of the linux capabilities
-to radio users via NOS.
-
-
-
-Brandon S. Allbery, KF8NH, contributed the following information to explain
-how to interconnect the NOS running on a Linux machine with the kernel
-code using the Linux pipe device.
-
-
-
-Since both Linux and NOS support the slip protocol it is possible to link
-the two together by creating a slip link. You could do this by using two
-serial ports with a loopback cable between them, but this would be slow
-and costly. Linux provides a feature that many other Unix-like operating
-systems provide called `pipes'. These are special pseudo devices that
-look like a standard tty device to software but in fact loopback to another
-pipe device. To use these pipes the first program must open the ''master''
-end of the pipe, and the open then the second program can open the
-''slave'' end of the pipe. When both ends are open the programs can
-communicate with each other simply by writing characters to the pipes in the
-way they would if they were terminal devices.
-
-
-
-To use this feature to connect the Linux Kernel and a copy of NOS, or some
-other program you first must choose a pipe device to use. You can find one
-by looking in your /dev directory. The master end of the pipes are
-named: ptyq[[1-f] and the slave end of the pipes are known as:
-ttyq[[1-f]. Remember they come in pairs, so if you select
-/dev/ptyqf as your master end then you must use /dev/ttyqf
-as the slave end.
-
-
-
-Once you have chosen a pipe device pair to use you should allocate the master
-end to you linux kernel and the slave end to the NOS program, as the Linux
-kernel starts first and the master end of the pipe must be opened first.
-You must also remember that your Linux kernel must have a different IP address
-to your NOS, so you will need to allocate a unique address for it if you
-haven't already.
-
-
-
-You configure the pipe just as if it were a serial device, so to create
-the slip link from your linux kernel you can use commands similar to the
-following:
-
-
-
-
-# /sbin/slattach -s 38400 -p slip /dev/ptyqf 8
-# /sbin/ifconfig sl0 broadcast 44.255.255.255 pointopoint 44.70.248.67 /
-mtu 1536 44.70.4.88
-# /sbin/route add 44.70.248.67 sl0
-# /sbin/route add -net 44...0 netmask 255...0 gw 44.70.248.67
-
-
-
-In this example the Linux kernel has been given IP address 44.70.4.88
-and the NOS program is using IP address 44.70.248.67. The
-''route'' command in the last line simply tells your linux kernel to route
-all datagrams for the amprnet via the slip link created by the
-''slattach'' command. Normally you would put these commands into your
-/etc/rc.d/rc.inet2 file after all your other network configuration
-is complete so that the slip link is created automatically when you reboot.
-Note: there is no advantage in using ''cslip'' instead of ''slip''
-as it actually reduces performance because the link is only a virtual
-one and occurs fast enough that having to compress the headers first takes
-longer than transmitting the uncompressed datagram.
-
-
-
-To configure the NOS end of the link you could try the following:
-
-
-
-
-# you can call the interface anything you want; I use "linux" for convenience.
-attach asy ttyqf - slip linux 1024 1024 38400
-route addprivate 44.70.4.88 linux
-
-
-
-These commands will create a slip port named `linux' via the slave end of
-the pipe device pair to your linux kernel, and a route to it to make it
-work. When you have started NOS you should be able to ping and telnet to
-your NOS from your Linux machine and vice versa. If not, double check that
-you have made no mistakes especially that you have the addresses configured
-properly and have the pipe devices around the right way.
-
-----
-!!!23. Summary of AX.25-related Linux commands
-
-This section summarizes all of the commands that are specific to AX.25.
-
-
-
-
-
-
-
-
-CommandPackageDescriptionmheardax25-toolsDisplay AX.25 calls recently heardax25dax25-toolsGeneral purpose AX.25, NET/ROM and ROSE daemonaxctlax25-toolsConfigure/Kill running AX.25 connectionsaxparmsax25-toolsConfigure AX.25 interfacesaxspawnax25-toolsAllow automatic login to a Linux systembeaconax25-toolsTransmit periodic messages on an AX.25 portbpqparmsax25-toolsConfigure BPQ ethernet devicesmhearddax25-toolsCollect information about packet activityrxechoax25-toolsRoute AX.25 packets between ports transparentlysethdlcax25-toolsGet/set Linux HDLC packet radio modem driver port informationsmmixerax25-toolsGet/set Linux soundcard packet radio modem driver mixersmdiagax25-toolsLinux soundcard packet radio modem driver diagnostics utilitykissattachax25-toolsAttach a KISS or 6PACK interfacekissnetdax25-toolsCreate a virtual networkkissparmsax25-toolsConfigure KISS TNCsnet2kissax25-toolsConvert a network AX.25 driver to a KISS stream on a pseudo-ttymkissax25-toolsAttach a multi KISS interfacenodesaveax25-toolsSaves NET/ROM routing informationnrattachax25-toolsStart a NET/ROM interfacenrparmsax25-toolsConfigure the NET/ROM interfacenrsdrvax25-toolsKISS to NET/ROM serial converternetromdax25-toolsSend and receive NET/ROM routing messagesrsattachax25-toolsStart a ROSE interfacersdwnlnkax25-toolsUser exit from the ROSE networkrsparmsax25-toolsConfigure the ROSE interfacersuplnkax25-toolsUser entry into the ROSE networkttylinkdax25-toolsTTYlink daemon for AX.25, NET/ROM, ROSE and IPrip98dax25-toolsSend and receive RIP98 routing messagesax25_callax25-toolsMake an AX.25, NET/ROM, ROSE or TCP connectionnetrom_callax25-toolsMake an AX.25, NET/ROM, ROSE or TCP connectionrose_callax25-toolsMake an AX.25, NET/ROM, ROSE or TCP connectiontcp_callax25-toolsMake an AX.25, NET/ROM, ROSE or TCP connectionyamcfgax25-toolsConfigure YAM driver parametersdmascc_cfgax25-toolsConfigure dmascc devicesax25ipdax25-appsAX.25 into IP Encapsulatorax25rtdax25-appsAX.25 routing daemonax25rtctlax25-appsAX.25 routing daemon control utilitycallax25-appsMake an AX.25, NET/ROM or ROSE connectionlistenax25-appsMonitor AX.25 trafficax25mondax25-appsDump the AX.25 network traffic and and provide sockets where the received data will be retransmittedsoundmodemsoundmodemSoundcard modem driversoundmodemconfigsoundmodemSoundcard modem configuration utilityaprsdaprsdAPRS daemonaprspassaprsdAPRS passcode generatoraprsdigiaprsdigiAPRS digipeateraprsmonaprsdigiMonitor APRS AX.25 traffic for JavAPRS
-
-
-
-
-
-----
-!!!24. Where do I find more information about .... ?
-
-Since this document assumes you already have some experience with packet
-radio, and that this might not be the case, I've collected a set of references
-to other information that you might find useful.
-
-----
-!!24.1. Packet Radio
-
-You can get general information about Packet Radio from these sites:
-
-
-
-
-
-*
-
-American Radio Relay League
-
-
-*
-*
-
-Radio Amateur Teleprinter Society
-
-
-*
-*
-
-Tucson Amateur Packet Radio Group
-
-
-*
-
-----
-!!24.2. Protocol Documentation
-
-
-
-
-
-
-*
-
-AX.25, NET/ROM - Jonathon Naylor has collated a variety of documents that
-relate to the packet radio protocols themselves. This documentation has been
-packaged up into
-ax25-doc-1..tar.gz
-
-
-*
-
-----
-!!24.3. Hardware Documentation
-
-
-
-
-
-
-*
-
-Information on the ''PI2 Card'' is provided by the
-Ottawa Packet Radio Group.
-
-
-*
-*
-
-Information on ''Baycom hardware'' is available at the
-Baycom Web Page.
-
-
-*
-
-----
-!!24.4. Linux Ham Radio Software
-
-John Ackermann has a web site with information related to configuring
-AX.25 on Linux at
-http://www.febo.com/linux-ax25/index.html.
-
-
-
-The Hamsoft Linux Ham Radio Applications and Utilities Database
-attempts to maintain a complete list of Amateur Radio related
-applications for Linux. It can be found at http://radio.linux.org.au.
-
-----
-!!!25. Discussion relating to Amateur Radio and Linux
-
-There are various places that discussion relating to Amateur Radio and
-Linux take place. They take place in the
-comp.os.linux.* newsgroups, they also take place on
-the linux-hams list on
-vger.kernel.org. Other places where they are held
-include the tcp-group mailing list at
-ucsd.edu (the home of amateur radio TCP/IP
-discussions), and you might also try the
-#linpeople channel on the
-linuxnet irc network.
-
-
-
-To join the Linux ''linux-hams'' channel on the mail
-list server, send mail to majordomo@vger.kernel.org
-with the line subscribe linux-hams in the message
-body. The subject line is ignored.
-
-
-
-The ''linux-hams'' mailing list is archived at:
-http://hes.iki.fi/archive/linux-hams/
-and http://web.gnu.walfield.org/mail-archive/linux-hams.
-Please use the archives when you are first starting, because many
-common questions are answered there.
-
-
-
-To join the tcp-group send mail to
-listserver@ucsd.edu with the line subscribe
-tcp-group in the body of the text.
-
-
-
-
-
-
-
-
-Please remember that the tcp-group is primarily for
-discussion of the use of advanced protocols, of which TCP/IP is one,
-in Amateur Radio. ''Linux specific questions should not
-ordinarily go there.''
-
-----
-!!!26. Acknowledgements
-
-Terry Dawson was the original author and maintainer of this HOWTO.
-Jeff Tranter took over as maintainer in 2001 to allow Terry more time
-to concentrate on AX.25 software development.
-
-
-
-The following people have contributed to this document in one way or another,
-knowingly or unknowingly. In no particular order (as I find them):
-Jonathon Naylor, Thomas Sailer, Joerg Reuter, Ron Atkinson, Alan Cox, Craig
-Small, John Tanner, Brandon Allbery, Hans Alblas, Klaus Kudielka, Carl Makin,
-John Ackermann, Riley Williams.
-
-----
-!!!27. Feedback
-
-I rely on you, the reader, to make this HOWTO useful. If you have any
-suggestions, corrections, or comments, please send them to me, tranter@pobox.com, and I will
-try to incorporate them in the next revision.
-
-
-
-If you publish this document on a CD-ROM or in hardcopy form, a
-complimentary copy would be appreciated; mail me for my postal
-address. Also consider making a donation to the Linux Documentation
-Project to help support free documentation for Linux. Contact the
-LDP at feedback@linuxdoc.org
-for more information.
-
-----
-!!!28. Distribution Policy
-
-Copyright (c) 1996-1997 by Terry Dawson, Copyright (c) 2001 by Jeff
-Tranter. Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License,
-Version 1.1 or any later version published by the Free Software
-Foundation; with no Invariant Sections, with no Front-Cover Texts, and
-with no Back-Cover Texts. A copy of the license is available at
-http://www.gnu.org/copyleft/fdl
.html
+Describe
[HowToAX25HOWTO
] here.