Building on Raspian Pi 3 B
- Build dependencies
- Getting the source
- Compiling fldigi
- Final Touches
- Icing on the cake
This is a recount of my recent experience with a brand new VILROS Pi 3 B. I purchased a Pi 3 B with case, 2.4 Amp wall wart power supply, HDMI cable, and a 16 GB SD card with NOOBS already installed. Take a look at the Amazon participating vendors if you can't decide where to purchase a unit. It took less than an hour to assemble and begin the installation of the Raspbian OS. I recommend that you have the computer connected to the internet via ethernet before you begin the OS install. As of 25 June I have created 4 Pi-3B systems using these instructions. The last one with a 64 GB SD card.
When you have your desktop screen up and working correctly you can then proceed.
Raspbian is a bit more like Ubuntu than Debian in that it uses a similar security model. You never have to log in as root, but use the "sudo" command when root access is necessary for certain commands. I strongly recommend that you change the default password for the "pi" user ... before you begin.
Open a terminal window. First we need to insure that the source repository is enabled. Use the terminal line editor, 'nano' to modify the /etc/apt/sources.list to include the line
deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
$ sudo nano /etc/apt/sources.list
and remove the leading # from the line which contains that string.
Use control-O, control-X to save the change and exit nano.
Check your work:
$ cat /etc/apt/sources.list
Ensure that you see the line that starts with "deb-src" and it's NOT disabled with a preceding "#" character.
Update the apt repository data, and install libxft-dev. This library is needed for fldigi (and any other fltk application) to produce nicely rendered fonts on the computer screen.
$ sudo apt-get update $ sudo apt-get install libxft-dev
This will automatically add a number of dependent packages:
libfontconfig1-dev libpthread-stubs0-dev libxdmcp-dev x11proto-input-dev libx11-doc xorg-sgml-doctools x11proto-core-dev x11proto-render-dev libxrender-dev libxau-dev x11proto-kb-dev libxcb1-dev libx11-dev libxft-dev
On my installation I had to abort the libX11-doc download (use control-C) and repeat the "sudo apt-get install libxft-dev". apt-get will not repeat any successful downloads.
This is the easiest way to get the rest of the build dependencies for fldigi, etal:
$ sudo apt-get build-dep fldigi
Note the lines that contain "fltk" as we will want to remove those and install our own using a local build of the fltk library. I accomblished this with:
$ sudo apt-get remove libfltk-cairo1.3 $ sudo apt-get remove libfltk-forms1.3 $ sudo apt-get remove libfltk-gl1.3 $ sudo apt-get remove libfltk-images1.3 $ sudo apt-get remove libfltk1.3-dev
Next you will need to build fltk from source. I recommend building the library and the applications in a separate directory in your $HOME directory.
$ cd $ mkdir dev $ cd dev $ wget fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz $ tar xzf fltk-1.3.3-source.tar.gz $ mkdir tarballs $ mv fltk*gz tarballs $ cd fltk-1.3.3 $ ./configure $ make $ sudo make install $ sudo ldconfig
Note: fltk default configuration should include
--enable-xft --enable-threads --enable-X11 --enable-shared
Checked the fltk version
$ fltk-config --version
yup ... it's 1.3.3
and that it's GUI builder, fluid, is installed in /usr/local/bin.
$ ls /usr/local/bin
Getting the source
Using a web browser download the latest fldigi source compressed archive to your /home directory. Or you can download using wget
$ wget https://sourceforge.net/projects/fldigi/files/fldigi/fldigi-3.23.12.tar.gz flamp, fllog, flmsg, flnet, flrig, flwkey, and flwrap can be similarly downloaded. $ wget https://sourceforge.net/projects/fldigi/files/flmsg/flmsg-3.00.01.tar.gz $ wget https://sourceforge.net/projects/fldigi/files/flrig/flrig-1.3.26.tar.gz
Note that using wget from the terminal command line will generally be faster than using the web based http access. You could also download the latest alpha version for your new penny whistle computer.
The source compressed archive contains all the files needed to compile fldigi. xxx.tar.gz , xxx.tgz are common naming conventions for compressed archived created using the program 'tar'. We are still in the dev directory, right ?
$ tar xzf fldigi-3.23.12.tar.gz $ mv fldigi*gz tarballs
Change the version number if a newer version or the alpha version of the given Fl-suite program was downloaded
$ cd fldigi-3.23.12
At this point you will have a source tree extracted from the tarball containing a configure script. The following command will prepare the source for compilation.
The configure command generates the Makefiles that make uses to run the compiler and linker. configure has various options to fine-tune the build.
$ ./configure $ make $ sudo make install
Note: The compile will fail if you set any ./configure switches for optimization, such as --enable-optimizations=native.
Repeat the configure, make, and install for flrig, flmsg, etc.
The recommended sound server for fldigi is Pulse Audio, but you will need to install the volume control.
$ sudo apt-get install pavucontrol $ pulseaudio --start
The 'pi' user should already be a member of both the audio and dialout groups. You can insure that by
$ sudo adduser pi dialout $ sudo adduser pi audio
The OS will probably tell you that pi is already a member of those groups.
Log out and then log back in to Raspbian. That insures that any group privileges will have been updated.
Go get a cup of tea, coffee, or your favorite beverage.
Connect your transceiver audio and rig control interface(s). This was easy for me as the IC7200 has a single USB port for both. The Raspbian OS recognizes the IC7200 USB hub and both devices. No special drivers are needed.
The pavucontrol is on the Raspbian sub-menu for audio applications. Fldigi, flrig, etal are all found on the Raspbian sub-menu "Internet".
Start pavucontrol, and then fldigi. Configure fldigi, selecting PulseAudio? for the sound interface. Select "Fastest Sinc Interpreter" on the Audio/Settings? tab. Let's keep that little CPU from burning up.
View the pavucontrol and set up the Record and Playback to correctly connect the h/w to fldigi.
You should see signals on the waterfall.
Start flrig and configure it for you transceiver setup. For my IC7200 I had a choice of two serial port selections on that combo control:
Either may be selected, I chose to use (a) Set baud rate and other parameters to match the IC7200 and bingo off and running with full rig control.
fldigi should immediately find flrig and the two programs will start their socket communications.
That should get you up and running with fldigi and flrig. These procedures were last tested on 05/31/2016 by W1HKJ.
Icing on the cake
These recommendations are really specific to the Openbox / LXDE desktop. Openbox is the default window manager used by the LXDE desktop environment on the Pi.
Set up a ham menu
Open the "Menu / Preferences / Main Menu Editor" and add a "New Menu" item. Name it "Ham Apps" and then populate it with flrig, fldigi, flmsg, etc.
Add the Openbox Configuration dialog
$ sudo apt-get install obconf
You will then have a new menu item "Menu / Preferences / Openbox Configuration Manager". You will need it for the next step.
Add desktop paging
To add a desktop pager to the LXDE panel proceed as follows:
Right click on an empty space on the panel. Select "Add / Remove Panel Items" Select the tab "Panel Applets" Press the "Add" button Select "Desktop pager" Adjust position using the up/down buttons. Close the Panel Preferences Open the new Openbox Configuration Manager Select the Desktops tab Change the number of desktops to suit your operation. Two is sufficient for my use.