Coming Up...

Pioneer One
is a new free sci-fi series distrubuted under the Creative Commons. Check it out!

Thicker Than Blood
Give it a read. I liked it!

Cobalt RaQ3 | Gentoo APRS Ebuilds | Heathkit GR-54 | J-Pole in a tree | Milk Jug Dipole | Power Supply | Workbench | Calculator for Anki

APRS Ebuilds For Gentoo

Update - 5/21/10
   The bad news... My Xastir ebuild no longer compiles.  Gentoo complains about some files being moved or deleted in a way which it doesn't like. I think it's a change in Gentoo's sandbox security and I haven't had time to figure it out. The good news... It doesn't matter!  There is an Xastir ebuild in portage now!  Just add the ~x86 keyword and you are ready to go!  I'll keep this page around for the soundmodem ebuild and just for anyone with nothing better to do than read my ramblings.  Have fun!

    My favorite Linux distribution is Gentoo.  It's the only operating system on both my desktop and my laptop.  Unfortunately there are not a lot of ham radio ebuilds yet. For those who are not familiar with Gentoo, ebuilds are sort of equivalent to DEBs in Ubuntu/Debian or RPMs, but that is another topic.  I hope to change this and have begun writing a couple of ham ebuilds.  So far I have "working" ebuilds for Soundmodem and Xastir.  I've used them to compile both of these programs and run them on my machines.  Neither works quite the way I want them to yet so I haven't submitted them to Gentoo but I think I will make them available here because I am sure someone can use them.  If you would like to install Xastir and Soundmodem on your own Gentoo box using my ebuilds you will have to create a portage overlay to put them in.  You can learn about doing this here.

   Soundmodem is a program which allows your computer to encode and decode various digital modes using just your CPU and your soundcard.  To do this you only need an audio connection between the radio and soundcard, no TNC is required.  This can save considerable money over buying a TNC.  Of course, it does tie up your soundcard so that you cannot use it to listen to other things but if this is a problem you can always add a second soundcard to dedicate to soundmodem.  

   It's usually not a good idea to connect your radio and soundcard directly together as you might blow out your soundcard.  Also, you will need a way for the computer to key up the radio.  I suppose you could use vox on the radio but that could cause problems if there is a delay.  You should make sure that no other programs are going to send audio to the soundcard which you wouldn't want broadcast anyway but it does help if the radio only keys up when Soundmodem "tells it to".  Usuall a pin from a serial or parallel port is used for this.  If you don't have one then a USB to serial converter can be used.  I do this on my laptop.  

   There are a number of devices which you may buy which handle the isolation and keying.  I think RigBlaster is probably one of the more popular ones.  They can be almost as expensive as an actual TNC though and it really isn't hard to build one yourself. There are dozens of designs posted on the internet.  I built this circuit by VE3ELB. Specifically I build the ht version to use with my VX-7R and am quite happy with it.  One thing to note about this, in his design he shows an optional diode which allows you to use the DTR line to key up the radio.  If you intend to use it with Soundmodem do not add this diode.  Soundmodem activates the DTR line to indicate it is receiving and decoding a packet.  If you connect it you will end up transmitting an empty carrier every time anyone else is transmitting.  Not a good way to make friends!  If you really want to get fancy, you might consider wiring in an LED to light up (but not key the transmitter) when the DTR line is active.  That way you can see when it is decoding.  Another addition I made to his design is I put a diode across the relay coil (reverse polarity).  Relay coils can build up a brief high current at the moment the relay turns off and the diode helps protect the rest of the circuit by bleeding it off. One last detail about the design.  He has a 4.7k resistor in series with the relay switch and the transmit audio transformer.  My VX-7R would not key up with this value.  I checked my ht's manual and it recommended a 2K resistor in series with the PTT when connecting it to a TNC.  I replaced the 4.7K with a 2K one and it worked great.  You may want to consult your own manual about this.

   Here is my soundmodem ebuild: soundmodem-0.14.ebuild
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-radio/ax25-apps/ax25-apps-0.0.6-r1.ebuild,v 1.6 2007/04/28 13:14:51 tove Exp $

DESCRIPTION="This software allows a standard PC soundcard to be used as a packet radio 'modem'."

KEYWORDS="~x86 ~ppc ~sparc"
IUSE="mmx vis nls"


src_compile() {
        econf \
                $(use_enable mmx ) \
                $(use_enable vms ) \
                $(use_with nls included-gettext) \
        || die "Configure failed!"
        if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
                emake || die "emake failed"
        cp "${FILESDIR}/soundmodem" "${WORKDIR}/etc/init.d/"

src_install() {
        emake DESTDIR="${D}" install || die "Install failed"
        newinitd ${FILESDIR}/soundmodem.rc soundmodem

   This ebuild supports use flags for mmx (multimedia extensions which are common on intel compatible CPUs), nls (Adds Native Language Support (using gettext) and vis (instruction set for Sparc computers).  I do not have a Sparc and the only flag of the three which I am using is mmx.  My ebuild also attempts to place a startup script in the /etc/init.d directory.  My plan was that one would be able to use this to run soundmodem as an always-on background service for an APRS gateway or Packet repeater.  Currently this doesn't work but the ebuild will probably fail if it can't find the script.  Make a files subdirectory of the ebuild's directory and place a file called soundmodem.rc in it.  Here's what I have so far if you want to try to get it working: soundmodem.rc


depend() {
  use alsasound

start() {
  ebegin "Starting SoundModem"
  start-stop-daemon --start --exec /usr/sbin/soundmodem --make-pidfile --pidfile /var/run/soundmodem.pid
  eend $?

stop() {
  ebegin "Stopping SoundModem"
  start-stop-daemon --stop --exec /usr/sbin/soundmodem --pidfile /var/run/soundmodem.pid
  eemd $?

restart() {
  sleep 3

   At this point I have only used soundmodem with APRS although it is compatible with other AX25 networks.  For APRS I use Xastir which is a nice graphical APRS client which works with many different TNCs including Soundmodem and supports many map formats.  Here is my ebuild for that: xastir-1.9.4.ebuild

# Copyright 2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/media-radio/xastir/xastir-1.92.ebuild,v 1 2007/11/16 21:21:51

DESCRIPTION="Xastir is program for receiving and plotting APRS position packets."

IUSE="ax25 berkdb curl festival gdal imagemagick pcre shapelib geotiff wget xpm"

        ax25? (dev-libs/libax25)
        berkdb? (dev-perl/BerkeleyDB)
        curl? (net-misc/curl)
        festival? (app-accessibility/festival)
        gdal? (sci-libs/gdal)
        imagemagick? (media-gfx/imagemagick)
        pcre? (dev-libs/libpcre)
        shapelib? (sci-libs/shapelib)
        geotiff? (sci-libs/libgeotiff)
        wget? (net-misc/wget)
        xpm? (x11-libs/libXpm)

src_compile() {
        econf \
                $(use_with ax25 ) \
                $(use_with berkdb bdb ) \
                $(use_with curl libcurl-devel) \
                $(use_with festival ) \
                $(use_With gdal ) \
                $(use_with imagemagick ) \
                $(use_with pcre ) \
                $(use_with shapelib ) \
                $(use_wth geotiff ) \
                $(use_with wget ) \
                $(use_with xpm ) \
        || die "Configure failed!"
        if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
                emake || die "emake failed"

src_install() {
        emake DESTDIR="${D}" install || die "Install failed"

  Supported flags for this one are:   I have all the use flags except gdal set on mine.

  This project is currently on the back burner.  I do intend to pick it up again some time this year and once I've resolved a few issues I would like to try to get these into the official Gentoo tree.  If anyone has any ideas or information I would be happy to listen. The remaining issues I would like to iron out are as follows:

0 Comments - Add Comment