Snapshot of my Linux AX.25 hacking available
- To: email@example.com, firstname.lastname@example.org, email@example.com
- Subject: Snapshot of my Linux AX.25 hacking available
- From: firstname.lastname@example.org (Bruce Perens)
- Date: Mon, 12 Dec 1994 09:15:35 -0800
Since I'm going to be working on a comment for the FCC for a few days
(they are about to take away another UHF Amateur band in the States, and
the comment deadline is a week from today), I'm not going to get any
time to work on Linux AX.25 stuff until next week. Thus, I've placed a
snapshot of my not-ready-for-prime-time work at
ftp.pixar.com:/pub/bruce/ax25.tar.gz . The only reason for you to
download this would be if you wanted to continue to work on it. It's not
for end-users yet. The only reason I'm uploading it is that I keep
hearing from people who are working on the same thing as I, and I want
us to be able to pool our efforts.
This is a tar archive that is meant to be extracted from the root, but
you'll probably want to extract it somewhere else first. It will
install all kernel sources needed to build an ax.25-capable system, all
the binaries you need (given that your "ifconfig" and "arp" are
built with AX.25 enabled as they are on Debian 0.93), and sources for
the binaries under /usr/src/ax25 . You'll have to edit config.in to
enable ax.25 before you rebuild the kernel.
This is Alan's AX.25 distribution with a few hacks of my own:
PMS is removed, because it's not useful for much in its present form.
we probably want to replace it with a port of N0ARY's full-service
Axaddarp, axdelarp, and axarp are removed because "arp" works.
Axsetcall is removed because "ifconfig" works.
Locations of programs and files are moved around to be FSSTD-compliant.
Look in /usr/src/ax25/ax25_paths.h , and the "install" section
of the Makefile.
"axattach" is enhanced so that it can run scripts to configure
the TCP/IP capabilities of an interface after it has attached an
interface. This was necessary because the scripts needed to know
which "sl" device axattach had selected, and on my system (which
runs dial-up SLIP), it didn't always get the same device.
There is a big new manual page for "axattach". I just wrote it on
Sunday evening, so it probably has lots of typos.
"axl" can now be passed a command to run instead of the PMS on the
command line. Parameters are substituted in the command. It can run
the command on a pseudo-tty. You can run remote logins with:
axl -c "/bin/login -h %r" -t
This even prints the remote AX.25 callsign as the remote host ID when
you run the "who" command, and sets the pseudo-tty Baud rate to match
the TNC's radio Baud rate. No man page for "axl" yet, but it will tell
you the options if you run "axl --help".
"call" no longer refuses to work if you aren't root.
A two-line kernel patch from Alan is installed.
My C++ version of "listen" is replaced by the C one that uses KA9Q
code (which was ported by G4LKX) in the hope that Phil will GPL the
source files we are using.
Usage: axattach [-c <command>] [-s <speed>] <device> <callsign>.
-c <command>: <command> will be executed by the shell after the
interface is initialized. Interface parameters can be
passed in the command by using these "%" patterns:
%i Network interface name.
%d Device name.
%% A single % character.
-s <speed>: Set the Baud rate for serial interfaces (default 0).
And here's axl:
Usage: axl [-c <command>] [-p <port>] [-t].
-c <command>: <command> will be executed for each connection.
The default command is "/usr/sbin/pms".
Parameters can be passed in <command> by using
these "%" patterns:
%c Local address (callsign).
%r Remote address (callsign).
%% A single % character.
-p <port>: Listen on the specified port.
-t: Run <command> on a pseudo-terminal. Required for
terminal-oriented commands such as "/bin/login".
"axl" should be re-written to look like "inetd", so that one program
could be used to listen on many radios, callsigns, and ssids.
Fred van Kempen did a version of that a while back, though he probably
didn't include the pseudo-terminal daemon stuff that my version has.
"axl" doesn't clear the utmp file entry when someone disconnects.
Thus, if you have "axl" running login, when the user logs out the
display from "who" will still have them logged in.
If you kill "axl", all of the pseudo-tty connections it has made are
closed, because "axl" contains the pseudo-tty daemon. This isn't going
to go away - it's much less overhead to have one pseudo-tty daemon for
all connections rather than one for each connection.
If you use a wire connection instead of a radio connection, it exposes
timing-related bugs in the AX.25 kernel software. I get hangs that can
be cleared by sending a carriage-return, and also a packet gets rejected
followed by thrashing in which two systems send receive-ready to each
other as fast as they can. These don't happen when you connect via
John Paul Morrison reports that multiple connects to the same callsign
can result in data from one connect being sent to the other connect.
I/O between the pseudo-terminal and the radio isn't being condensed
efficiently yet. If you have remote echo enabled, echo happens with
one packet per character.
Does anyone want to try porting N0ARY's (huge) BBS version 4.0? There's
a guy at HP who was working on it, but I hear he doesn't have time.
Does anyone want to port other Amateur Radio programs?
Does anyone want to chase down the authors of Amateur Radio programs
and persuade them to GPL their software so that we can distribute it
without trouble? I'm thinking of such things as "sattrack", antenna
design programs, code practice, theory tests, etc.
Bruce Perens AB6YM