I used the Mandriva 2006 Free Edition Linux
distribution, which can be downloaded and burned
onto three CDs from
http://www.mandriva.com. I chose
this distribution because of its emphasis on
user-friendliness and the fact that its advanced
installation tool allows it to share a hard drive
with Microsoft Windows without mangling either
operating system. When installing Mandriva, be sure
to include the developer and network tools when the
installation tool asks you what kind of packages you
want to install.
Once Mandriva is installed, you have to set up
its package management system so it can
automatically download and install prebuilt binaries
that will work with Mandriva. This can be done
through the KDE graphical environment, which is
installed by default with Mandriva and is similar to
Windows. Under the System->Configuration menu,
you'll find a program that allows you to update your
software media. Use the "Add" button, and follow the
prompts to choose an online repository, ideally one
close by; because I live in New York City, I went
with the repository hosted by Pennsylvania State
University, identifiable by its "psu.edu" suffix. It
will take a while for the full list of packages to
download.
Once that's done, use the
System->Configuration->Software menu to run
the "Add Software" program. You'll have to enter the
root password created when you first installed
Linux. Search for "boost" in package names, and from
the resulting short list, check off the box beside
the following packages (the program will
automatically offer to install supporting packages
when some packages are selected, so you may not have
to manually select some of these packages):
boost-jam-3.1.10-1mdk
(You probably don't need this, but I included it
for completeness.)
libboost1-1.32.0-4mdk
libboost1-devel-1.32.0-4mdk
libboost1-examples-1.32.0-4mdk
libboost1-static-devel-1.32.0-4mdk
(Again, you probably don't need this, but just in case.)
Don't worry if the numbers don't match exactly, as
updated versions are released all the time. Once
everything has a check mark, click the "Install"
button. Once these packages have finished
downloading and installing, which won't take long on
a fast connection, search for "cppunit" and install
the following:
libcppunit-1.10.2-2mdk
libcppunit-devel-1.10.2-2mdk
Then search for "swig" and install:
swig-1.3.24-2mdk
swig-devel-1.3.24-2mdk
swig-doc-1.3.24-2mdk
Search for "fftw" and install:
libfftw3-3.0.1-6mdk
libfftw3-devel-3.0.1-6mdk
libfftw3-doc-3.0.1-6mdk
Search for "numeric" and install:
python-numeric-24.0-1mdk
python-numeric-devel-24.0-1mdk
Search for "sdcc" and install:
sdcc-2.5.0-1mdk
Search for "subversion" and install:
subversion-1.2.3-3mdk
subversion-server-1.2.3-3mdk
Search for "wxPython" and install:
libwxPythonGTK-2.6.1.0-1mdk
wxPythonGTK-2.6.1.0-1mdk
Search for "libusb" and install:
libusb0.1_4-devel-0.1.8.7mdk
libusb0.1_4-static-devel-0.1.8.7mdk
It's possible to check and install these packages
all at once, instead of piece by piece as I've
described here, by searching for each in turn,
checking the appropriate packages, and clicking
"Install" when you're finished.
Now it's time to work on the GNU Radio and USRP
software itself. Open a console window, and at the
command line enter:
mkdir gr
cd gr
This sets up the directory where we are going to
install GNU Radio. To download the GNU Radio code
directly from the developer's own repository, enter:
export CVS_RSH="ssh"
cvs –z3
-d:pserver:anonymous@cvs.savannah.gnu.org:/sources/gnuradio
co gnuradio-core
cvs –z3
-d:pserver:anonymous@cvs.savannah.gnu.org:/sources/gnuradio
co gr-usrp
cvs –z3
-d:pserver:anonymous@cvs.savannah.gnu.org:/sources/gnuradio
co gr-wxgui
cvs –z3
-d:pserver:anonymous@cvs.savannah.gnu.org:/sources/gnuradio
co gr-wxgui-examples
Before we go any further, we need to know how the
Mandriva installation tool sets up sound on your
particular computer. Using the
System->Configuration->Hardware->HardDrake
program, select your sound card and click "Configure
driver." On the next screen, listed beside the
currently active driver for your sound card, you'll
see something in square brackets, most probably
either [ALSA] or [OSS]. Then, returning to your
terminal window, enter either:
cvs –z3
-d:pserver:anonymous@cvs.savannah.gnu.org:/sources/gnuradio
co gr-audio-alsa
or
cvs –z3
-d:pserver:anonymous@cvs.savannah.gnu.org:/sources/gnuradio
co gr-audio-oss
Now we need to get the code that handles the USRP
hardware, which is located on a different
repository. Enter:
svn co http://usrp.svnrepository.com/svn/usrp
trunk
Now we can begin compiling the software. Enter:
cd gnuradio-core
./bootstrap
(ignore the scary warnings)
./configure
make
This will start the main chunk of GNU Radio code
compiling. There's no progress indicator, but this
took about 25 minutes on my system. When it's
finished, type the following (enter your root
password when prompted):
sudo make install
cd ..
Now we'll compile the USRP software and the other modules:
cd trunk
cd trunk (This is not a typo, you have to do it
twice, or type "cd trunk/trunk/" once)
./bootstrap
./configure
make
sudo make install
cd ..
cd ..
cd gr-usrp
./bootstrap
./configure
make
sudo make install
cd ..
cd gr-audio-oss (Or whatever audio module you
downloaded earlier)
./bootstrap
./configure
make
sudo make install
cd ..
cd gr-wxgui
./bootstrap
./configure
make
sudo make install
cd ..
cd gnu-radio-examples
./bootstrap
./configure
make
sudo make install
cd ..
Before running GNU Radio software, you need to set
two environmental variables—you may find it handy
to put these next lines into a text file called, for
example, "gr-defs.txt," and then type "source
gr-defs" whenever you want to use the software:
Make sure the USRP hardware is ready with an
appropriate daughterboard and antenna, such as the
TVRX. Power up the USRP and connect the USB cable.
Everything should now be working. You can test it with:
cd gnu-radio-examples
cd python
cd usrp
./usrp_wfm_rcv.py
You should now get a graphical interface window on
your screen and have static coming from your
speakers. Tune the USRP by typing the frequency of a
local FM station into the number box at the bottom
of the application window, using the letter "M" to
specify "MHz," such as 101.1M.
If something goes wrong when you try to run the
program, it may be because normal users don't have
permission to fully access the USB subsystem on your
system. The ideal way to solve this is to add your
user account to the USB group using a system
administration tool, but the quick and dirty fix is
just to run everything as root, such as: