====== 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