This is the source repository for the linux port of N6TR's DOS contest logging program TRlog.
If you prefer, the latest source release along with a compiled version is available under the Releases tag on Github. The binary file is automatically compiled by github runners using 64 bit ubuntu-latest on Intel hardware. This is currently Ubuntu 20.04. Check Runners for the current version if this readme is out of date. Mint and other linux versions based on Ubuntu should also work with that binary. If you are running a different distribution or a 32 bit operating system please build from source.
I assume you will be running TR in an xterm under X11. There is an unsupported console only mode and corresponding Makefile in the repository. You need the following two compilers installed
- Gnu C compiler gcc
- Free pascal compiler fpc
My shack computer runs Slackware linux. All of the required libraries and headers are part of the standard full Slackware installation. For other distributions development packages for these libraries often need to be installed.
- libusb-1.0
- libieee1284
- libcurl
- libasound
- libsndfile
- ncat
For Slackware you can find a slackbuild script for free pascal on Slackbuilds.
Most other distributions will have readily available packages for all the dependencies. I'll give a detailed description below on how I built the code on a Raspberry Pi Zero W running Raspberry Pi OS starting from a fresh installation.
The documentation is written in latex. On my shack computer I use texlive which is available for Slackware on Slackbuilds.
Choose a convenient directory and execute the following commands as a normal (not root) user:
git clone https://github.com/trlinux/trlinux.git
cd trlinux
make
Once you have cloned the archive, you can build the latest version by
cd trlinux
git pull
make
If you don't have latex installed, you can build just the programs trlog and post. After cloning the repository:
cd trlinux
cd src
make
make install
make -f Makefile.post
Here are all the steps I used to install trlinux on a headless Raspberry Pi Zero W starting from a fresh SD card.
-
Setup the SD card as directed at raspberrypi.org. I used the Raspberry Pi OS with desktop and recommended software. At this time (August 2021), this is 2021-05-07-raspios-buster-armhf-full.zip. I used the dd command method to copy the image to the SD card.
-
I added the ssh and wpa_suppliant.conf files to the boot partition so the Pi Zero W would come up on my shack wireless network so I could ssh into it from my shack computer.
-
Boot the Pi Zero W and do whatever housekeeping you would normally do, such as change passwords, adjust ssh settings, add users, etc.
-
The end result you need is to be logged in to the Raspberry PI with a command line prompt in a terminal, and have a network connection.
On the Pi Zero W, I first updated all the original software:
sudo apt update
sudo apt upgrade
If this updates the kernel and kernel modules, you will need to reboot.
Next I installed some required and optional software:
sudo apt install libusb-1.0-0-dev
sudo apt install libieee1284-3-dev
sudo apt install libcurl4-openssl-dev
sudo apt install libsndfile1-dev
sudo apt install libasound-dev
sudo apt install xterm
sudo apt install ncat
sudo apt install texlive
sudo apt install xpdf
sudo apt install autotools-dev
sudo apt install autoconf
sudo apt install libtool
While the free pascal version from apt will compile trlinux, it has a bug that manifests itself in the code to list the serial and parallel ports. This is fixed in the latest version 3.2.2. I therefore installed the version (3.2.2) for the Raspberry Pi from sourceforge
Choose a convenient directory and execute
wget https://sourceforge.net/projects/freepascal/files/Linux/3.2.2/fpc-3.2.2.arm-linux-raspberry-2.tar
tar -xf fpc-3.2.2.arm-linux-raspberry-2.tar
cd fpc-3.2.2.arm-linux
sudo ./install.sh
Follow the prompts.
I needed to tell the free pascal compiler where to find the gcc libraries. I never needed to do this on the Intel architectures. This will probably be fixed eventually and will be unneeded. The search directory below will change if the compiler version changes. Generally the last digit (here 8) is the major compiler version.
echo "#INCLUDE /etc/fpc.cfg" > ~/.fpc.cfg
echo "-Fl/usr/lib/gcc/arm-linux-gnueabihf/8" >> ~/.fpc.cfg
Hamlib is optional but recommended; trlinux has internal support for Elecraft, Kenwood, and most Icom rigs. However to share rig control with other programs, hamlib's rigctld works well. I installed the current bleeding edge hamlib by following the directions here. Choose a convenient directory and execute:
git clone https://github.com/Hamlib/Hamlib.git
cd Hamlib
./bootstrap
./configure
make
sudo make install
sudo ldconfig
To be precise, the Hamlib commit shown by git log for this build was a0672e4f7e600f4ad9b887c11880baa6e9ab4052 but that shouldn't matter.
Finally, to build trlinux, execute the usual:
git clone https://github.com/trlinux/trlinux.git
cd trlinux
make
At this point, the codes and directory structure are the same as in the release tar balls. Follow the documentation in the trlinux/doc directory to properly set up an xterm and interface to your rig.