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.
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.
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:
# mv linux linux.old
# cd /usr/src
# tar xvfz linux-2.0.31.tar.gz
# tar xvfz /pub/net/ax25/ax25-module-14e.tar.gz
# patch -p0 </usr/src/ax25-module-14/ax25-2.0.31-2.1.47-2.diff
# cd linux
After you have unpacked the kernel source and applied the upgrade, 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
You might also try:
# make config
I'm going to describe the full screen method (menuconfig) because it is easier to move around, but you 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 ---> ... [*] Prompt for development and/or incomplete code/drivers ... General setup ---> ... [*] Networking support ... Networking options ---> ... [*] TCP/IP networking [?] IP: forwarding/gatewaying ... [?] IP: tunneling ... [?] IP: Allow large windows (not recommended if <16Mb of memory) ... [*] Amateur Radio AX.25 Level 2 [?] Amateur Radio NET/ROM [?] Amateur Radio X.25 PLP (Rose) ... Network device support ---> [*] Network device support ... [*] Radio network interfaces [?] BAYCOM ser12 and par96 driver for AX.25 [?] Soundcard modem driver for AX.25 [?] Soundmodem support for Soundblaster and compatible cards [?] Soundmodem support for WSS and Crystal cards [?] Soundmodem support for 1200 baud AFSK modulation [?] Soundmodem support for 4800 baud HAPN-1 modulation [?] Soundmodem support for 9600 baud FSK G3RUH modulation [?] Serial port KISS driver for AX.25 [?] BPQ Ethernet driver for AX.25 [?] Gracilis PackeTwin support for AX.25 [?] Ottawa PI and PI/2 support for AX.25 [?] Z8530 SCC KISS emulation 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
maake 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.
I recommend that you don't compile any of the drivers as modules. In nearly all installations you gain nothing but additional complexity. Many people have problems trying to get the modularised components working, not because the software is faulty but because modules are more complicated to install and configure.
If you've chosen to compile any of the components as modules, then you'll also need to use:
# make modules
# make modules_install
to install your modules in the appropriate location.
You will also need to add some entries into your /etc/conf.modules
file that will ensure that the kerneld program knows how to handle 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
The 2.1.*
kernels have enhanced versions of nearly all of the protocols
and drivers. The most significant of the enhancements are:
the protocols and drivers have all been modularised so that you can insmod and rmmod them whenever you wish. This reduces the kernel memory requirements for infrequently used modules and makes development and bug hunting much simpler. That being said, it also makes configuration slightly more difficult.
all of the network devices such as Baycom, SCC, PI, Packettwin etc now present a normal network interface, that is they now look like the ethernet driver does, they no longer look like KISS TNC's. A new utility called net2kiss allows you to build a kiss interface to these devices if you wish.
there have been many bug fixes and new features added to the drivers and protocols. The Rose protocol is one important addition.
Now that you have compiled the kernel you should compile the new network configuration tools. These tools allow you to modify the configuration of network devices and to add routes to the routing table.
The new alpha release of the standard net-tools
package includes
support for AX.25 and NetRom support. I've tested this and it seems to
work well for me.
The standard net-tools-1.33.tar.gz package has some small bugs that affect the AX.25 and NetRom support. I've made a small patch kit that corrects these and adds Rose support to the tools as well.
You can get the patch from: zone.pspt.fi.
Don't forget to read the Release
file and follow any instructions
there. The steps I used to compile the tools were:
# cd /usr/src
# tar xvfz net-tools-1.33.tar.gz
# zcat net-tools-1.33.rose.tjd.diff.gz | patch -p0
# cd net-tools-1.33
# make config
At this stage you will be presented with a series of configuration questions, similar to the kernel configuration questions. Be sure to include support for all of the protocols and network devices types that you intend to use. If you do not know how to answer a particular question then answer `Y'.
When the compilation is complete, you should use the:
# make install
command to install the programs in their proper place.
If you wish to use the IP firewall facilities then you will need the latest
firewall administration tool ipfwadm
. This tool replaces the older
ipfw
tool which will not work with new kernels.
I compiled the ipfwadm
utility with the following commands:
# cd /usr/src
# tar xvfz ipfwadm-2.0beta2.tar.gz
# cd ipfwadm-2.0beta2
# make install
# cp ipfwadm.8 /usr/man/man8
# cp ipfw.4 /usr/man/man4
After you have successfully compiled and booted your new kernel, you need to compile the user programs. To compile and install the user programs you should use a series of commands similar to the following:
# cd /usr/src
# tax xvfz ax25-utils-2.1.42a.tar.gz
# cd ax25-utils-2.1.42a
# make config
# make
# make install
The files will be installed under the /usr
directory by default
in subdirectories: bin
, sbin
, etc
and man
.
If this is a first time installation, that is you've never installed any ax25 utilities 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.
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 ncurses packages in the common locations, but some installations have ncurses badly installed and it is unable to locate them.