I’ve create a downloadable image of the Raspberry Pi SD card with all of the installed and configured software for an iGate. I’ve also created a short video walking a user through the setup process.
UPDATE UPDATE UPDATE !!! Read to the very end. Things have changed as of 28-July-2014)
The complete set of parts was detailed in my piGate post. A few people asked for a copy of the SD card. I decided I would create a new piGate from scratch to insure I have all of the instructions and didn’t forget any steps.
I started with PA0ESH’s article. Erik has written and updated a PDF of the steps he used to create his iGate. The most recent version I found has “Sunday, 8 December 2013″ near the top of the PDF. As a precaution, you can find a copy here.
Note: Erik has since published a guide and an install script which uses DXIPRS for the iGate. I stayed with APRX as my iGate software because I have used it for more than 20 iGates and it has been very stable and easy.
I use Win32 Disk Imager to create the initial SD card. I also use a simple ping tester which will quickly ping a range of IP addresses and tell me which ones reply. There are versions for Windows, Mac, and I have one on my iPhone. I use KITTY for my SSH terminal.
Addendum: For Windows users, here is a command that will help find the IP of your Raspberry Pi once it has booted:
FOR /L %x in (1,1,255) do ping -n 1 192.168.2.%x | find /I “reply”
After downloading the most recent Rasbian image from the internet, I write it to the SD card, insert the SD card into a Raspberry Pi, connect an Ethernet cable, and add power. I use the ping tester to locate the likely IP address(s) for the Raspberry Pi and then start KITTY with each IP address until I get the right one.
Once I have the SSH session, I use the default Rasbian account which is user=pi, password=raspberry. I run the command raspi-config and set the timezone, locale, and hostname. I did not expand the filesystem to fill the SD card but that was only because I was hoping to make the compressed download of the finished image as small as possible. It did help a little. For my own use, I would expand the filesystem.
With the base operating system up-to-date, I started with Erik’s instructions.
The first deviation I made was to not make the change to downgrade the USB from USB 2.0 to USB 1.0. The change was not needed with the USB audio adapter I used.
An improvement I made to the instructions occurs at the step to use arecord to test the configuration thus far. I used the Pofung radio set to 1/4 volume and connected with the audio cable to the microphone input on the USB audio adapter. I launched a second SSH window to the Raspberry Pi. In the second window, I started alsamixer. I started arecord in the first window. I then used alsamixer in the second window to adjust the CAPTURE level, while watching the character based VU meter from arecord. I adjusted the level until the meter was about 80% and not over modulating. Then I exited both programs, deleted the test recording, and closed the second SSH window.
When creating the ax25-up and ax25-down scripts, I gave then the “.sh” extension because that is what I usually do. No reason beyond my personal preference.
At the end of Erik’s guide, he describes generating a website using txt2html and a cronjob and a lot of steps. I went a much simpler route. I setup a CGI perl web page that sucks in the aprx-rf.log file on-the-file. This means, anytime the webpage is refreshed in the user’s browser, it has the most recent log data. There is not need to convert or have a scheduled job to convert stuff. I did need to create a symbolic link from /var/log/aprx to /var/www/aprxlog to make the logs accessible to the lighttpd web server.
To help keep the logs manageable, I setup log rotation for APRX logs. Here is the contents of /etc/logrotate.d/aprx
create 644 root adm
Of course, you can skip all of that work and just download the 7z compressed piGate image I created of the final product !
Watch the instructional video for setting up a iGate using my piGate image or download (50mb) a copy for reference.
One thing that I’ve experienced on more than one occurrence is a corrupted SD carad because of unexpected or incomplete shutdown. To mitigate this problem, I went through multiple writ ups to make the piGate SD card read-only for runtime. It turns out to be a bit messy to get right because various applications and start-up tasks assume the system is read-write.
The four hurdles were to first get the Raspbian operating system to function with the boot partition as read-only. Next was to get the iGate software working and logging to a ramdisk. Third was the little web server which makes reviewing the iGate log easy with a web browser. And forth was getting DHCP networking to behave.
The new compressed image (updated link above) has everything working so you don’t need to be bothered. The only new steps are the presence of rpi-ro and rpi-rw commands. Anytime you need to edit a file on the Raspberry Pi, you will need to make it read-write before you edit files and then make it read-only after. For example, to change the /etc/network/interfaces file to configure WiFi or to set a static IP address, you will run three commands: rpi-rw then nano /etc/network/interfaces then rpi-ro. I’ve updated the instructional video with this example.