====== AX.25 ======
* It is assumed that Linux kernel you have is [[plu:verify_kernel | AX.25 ready]] if it is not you need to:
* Build a new kernel with AX.25 enabled OR
* Install the AX.25 kernel module
Below is a collection of links of good tutorials for setting up AX.25. I recommend you read them as what follows in this wiki is just a summary of what is needed to get AX.25 configured to run paclink-unix.
* [[http://www.febo.com/packet/linux-ax25/index.html | Linux AX.25 Configuration]] - by John Ackermann, N8UR
* Also check out [[http://www.faqs.org/docs/Linux-HOWTO/AX25-HOWTO.html | Linux Amateur Radio AX.25 HOWTO]] - by Jeff Tranter, VE3ICH
====== Install AX.25 library, apps & tools ======
* I usually pull the ax25 library from [[https://github.com/ve7fet/linuxax25/tree/master/libax25 | Craig Small VE7FET's github repo]]
* You could also install libax25, apps & tools from [[http://www.linux-ax25.org/wiki/Main_Page | linux-ax25.org Main page]]
* Download the 3 files under 'Latest Versions' from right hand side
* There are other versions of these packages that have been modified or patched to be 'better' but let's get this going with the vanilla sanctioned packages first.
* The packages available from the Debian/Ubuntu repositories tend to be at least one rev behind current so **don't install** from them.
==== Building the 3 tarballs ====
* Note: build libax25 first then enable the run time Lib files so that the ax25 apps and ax25 tools use the ax25 library functions.
* To enable run time Lib after libax25 is built, execute this as root:
echo "/usr/local/lib" >> /etc/ld.so.conf && /sbin/ldconfig
* Note: libncurses is a build dependency for ax25-apps, be sure it is installed.
* As root
apt-get install libncurses5-dev
* Extract the three gzipped tar balls
tar -xvzf libax25-0.0.12-rc4.tar.gz
tar -xvzf ax25-apps-0.0.8-rc4.tar.gz
tar -xvzf ax25-tools-0.0.10-rc4.tar.gz
* for each tar ball build the source from each of these tar balls.
* Do not need to be root until //make install//
cd
./configure
make
sudo make install
* After installing these 3 tar balls verify your AX.25 setup by running a [[plu:install_packet_spy | packet spy]]
* By installing a [[plu:install_packet_spy | packet spy]] you will verify that your TNC, radio, cables & Linux AX.25 config are all working ... and that's a big step.
====== Configure AX.25 ======
* [[plu:example_config_files:systemd | example config using systemd]]
===== Basic Setup for Config files =====
==== Starting AX.25 at boot up ====
* You will need a script to start the ax.25 service at bootup.
* The ///etc/init.d/ax25// script points to /usr/local/etc/ax25/ax25-up to start and /usr/local/etc/ax25/ax25-down to stop the ax25 service.
* It has four options [ start | stop | restart | status ]
* Start by placing the //ax25// script found below in /etc/init.d/ and update the start up process by executing this command as root:
cd /etc/init.d
update-rc.d ax25 defaults 95
* NOTE according to Debian file location policy if the ax25-tools/ax25-apps are:
* **compiled from source**, their config will be installed to ///usr/local/etc/ax25//
* **installed from a package**, their config will be installed to ///etc/ax25//
==== AX.25 start-up & config scripts ====
* Below are simple **examples** of the scripts & parameters required to bring up the AX.25 interface.
* **At the very least you will need to edit /usr/local/etc/ax25-up**
* Need scripts:
* [[plu:example_config_files:ax25_init.d | /etc/init.d/ax25]]
* [[plu:example_config_files:ax25_up | /etc/init.d/ax25-up]]
* [[plu:example_config_files:ax25_down | /etc/init.d/ax25-down]]
* Need to edit these files:
* [[plu:example_config_files:axports | /etc/ax25/axports]]
* [[plu:example_config_files:lanparms | /etc/ax25/Lanparms]]
=== startup script install ===
* Scripts: ax25, ax25-up, ax25-down need to be copied/installed to these directories:
/etc/init.d/ax25
/usr/local/etc/ax25-up
/usr/local/etc/ax25-down
* The /etc/init.d directory should ONLY contain scripts to start & stop services.
* These services are normally started at boot time.
* ax25-up & ax25-down are support scripts called by ax25 (read the scripts).
* You can manually stop the ax.25 service as root:
/etc/init.d/ax25 stop
* or start the ax.25 service as root:
/etc/init.d/ax25 start
* or get the status of the ax.25 service:
/etc/init.d/ax25 status
* You need to supply the complete /etc/init.d/ path because it won't be in your PATH environment.
echo $PATH
* **DO NOT** put /etc/init.d/ in your path!
* All 3 files are bash scripts (so read them) and you **absolutely need to edit the ax25-up script** to customize at least for your call sign and ax.25 port name.
* Permissions on these scripts should look like this, please verify:
ls -al /etc/init.d/ax25
-rwxr-xr-x 1 root root 2533 Feb 24 2011 /etc/init.d/ax25
ls -al /usr/local/etc/ax25/ax25-*
-rwxr-xr-x 1 root root 1743 Feb 24 2011 /usr/local/etc/ax25/ax25-down
-rwxr-xr-x 1 root root 2758 Dec 1 16:32 /usr/local/etc/ax25/ax25-up
* Make sure all these scripts are executable.
* Look for the x in the ls -al response.
* If the scripts are not executable then give them that permission as root.
chmod +x /etc/init.d/ax25
chmod +x /usr/local/etc/ax25/ax25-up
chmod +x /usr/local/etc/ax25/ax25-down
===== Linux AX.25 & TNC's =====
==== Note about KISS mode ====
Unlike the Windows programs RMS Express & Airmail, Linux AX.25 does not know about different TNCs and their command modes. The //kissattach// program assumes the TNC is in KISS mode. You can ensure that the TNC is in KISS mode by modifying the AX.25 startup script before //kissattach// is run. In the example described in this wiki that would be in the //ax25-up// script in /etc/ax25 or /usr/local/etc/ax25 directories.
A brief comparison of TNCs can be found [[plu:install_ax25:tnc | here]]
===== Misc Notes =====
==== Is AX.25 Enabled in your kernel ====
netstat --ax25
==== Network Broadcast All ports ====
* Note that bringing up another network interface, like AX.25 on Linux, causes any daemons that broadcast out ALL ports to broadcast out the new port as well.
* Examples: Samba, DropBox, ntp
* Depending on what is installed on your Linux machine you will have to go to each daemon's config to specify which ports they're allowed to broadcast on.
=== ntp broadcast check ===
* NTP is implemented via UDP over port 123,
* restrict ntp to using eth0 and **not** ax0 in ///etc/ntp.conf//
* when using //netstat -an// you should **not** see any reference to the 44.128.0.0 net
interface listen eth0
interface ignore ax0
* If you see ntp using the 44.128.0.0 net then check /etc/ntp.conf
$ netstat -an | grep 123
==== USB WiFi dies after kissattach ====
* After running kissattach USB WiFi stops working
* Edit file ///etc/default/ifplugd// as shown below
* original lines commented out
#INTERFACES="all"
INTERFACES=wlan0
#HOTPLUG_INTERFACES="all"
HOTPLUG_INTERFACES=wlan0