How to install GNU Radio, FFTW, RTL SDR, GrOsmoSDR, and more using PyBombs with dependencies, by rpm/deb or build from source
Recently I purchased a Mini SDR (DVB-T) from NooElec to play around with some RF and do some testing, but for some reason kept running into problems while trying to build GNU Radio on Debian (Ubuntu/Linux Mint) from the git repos. I attempted to use the version from the standard repository, but unfortunately that version is old and out dated (I think 1.6 was in repo, but 1.7.2 is latest), so the only option was to build from source. I swear I probably spent 4 hours trying to figure out why certain dependencies wouldn’t install, then I would get one to install, and another one would come up…add to that for the testing I wanted to do I needed to install FFTW, RTL SDR, and GrOsmoSDR, which is when I finally decided to find a better way to build from source (or find latest version deb/rpm).
Thankfully enough there were others who decided “there has to be a better, easier way”, and that way, is called PyBombs.
What’s so great about PyBombs you ask? Everything. When you first setup PyBombs it will ask you how you want to install your applications, and the order to use. Meaning if you’re using debian flavor, you could specify to first try and find a .deb file, if not then build from source, or vice versa. RHEL flavors are the same, you would specify rpm instead of deb. PyBombs will also handle installing all of the required dependencies, meaning installation is so easy, anybody can do it!
So first let’s install Pybombs from source (github repo):
1 2 |
cd ~ git clone git://github.com/pybombs/pybombs |
You will now need to configure Pybombs before installing anything:
1 2 |
cd pybombs ./pybombs config |
- gituser: username for access to any restricted github or other repos.
- prefix: where everything will be installed to, required write permissions set this to /usr/local
- install order: set the order for preferred install, options available deb, rpm, src
- forcepkgs: any packages you dont want pybombs to install or update
- timeout: how long (in seconds) to wait before retrying download
If you know how to set library paths you can use anything you want for prefix, but to keep everything simple and easy, using
/usr/local from above will now require us to use sudo when running Pybombs.
Don’t forget to set prefix as
/usr/local
Installing the latest version of GNU Radio is now VERY easy, just run this command:
1 |
sudo ./pybombs install gnuradio |
1 |
sudo ./pybombs install fftw |
1 |
sudo ./pybombs install rtl-sdr |
Installing the latest version of GNU Radio is now VERY easy, just run this command:
1 |
sudo ./pybombs install gr-osmosdr |
It could possibly just be me, but I can’t count how many times i’ve build something from source and couldn’t get it to work, all because I didn’t make sure to run the command below to update the new lib links. Make sure you run this command before giving up or troubleshooting what you think “may” be a problem.
1 |
sudo ldconfig |
These are just a few of the applications that can be installed using Pybombs, there are tons of other packages you can install, just run this command to list out all available and installed packages/applications:
1 |
sudo ./pybombs list |
As of 2/26/2014, the available baseline/dependency packages include:
apr, aprutil, armadillo, atk, autoconf, automake, bison, blas, boost, cairo, cheetah, cmake, cppunit, curl, db48, expat, faac, faad, ffi, fftw, flex, fontconfig, freetype, gcc, gdk-pixbuf, gflags, gfortran, git, glib, glog, gmp, gobject-introspection, gperftools, graphviz, gsl, gtest, gtk2, ice, lapack, libav, libbzip, libitpp, libjpeg, liblog4cpp, libpcap, libpng, libtiff, libtool, libusb, libxml, libxslt, log4cxx, lxml, make, mcpp, mpc, mpfr, numpy, pango, perl, pixman, pulseaudio, pycairo, pygtk, pyqt4, pyqwt5, python, python-zmq, qt4, qwt5, scipy, setuptools, sip, ssl, subversion, swig, tornado, wget, wxpython, x11, zeromq
The available/install-able packages include:
airprobe, airspy, fecapi, glfw3, gnss-sdr, gnuradio, gqrx, gr-air-modes, gr-ais, gr-as, gr-baz, gr-benchmark, gr-bluetooth, gr-compat, gr-drm, gr-eventstream, gr-extras, gr-fcdproplus, gr-fosphor, gr-ham, gr-ieee-80211, gr-ieee-802154, gr-iqbal, gr-ldpc, gr-lte, gr-mediatools, gr-multimon, gr-op25, gr-osmosdr, gr-packetradio, gr-pocsag, gr-rds, gr-smartnet, gr-specest, gr-zmqblocks, hackrf, kal, libosmo-dsp, openlte, osmo-sdr, pmc, pocsag-mrt, pysstv, rtl-sdr, simple_radio_astronomy, theron, uhd, wireshark
Whoa, that’s a lot, right?! Now, imagine how difficult and how much time you would spend trying to build most of those applications above from source, making sure to take care of all dependencies…I mean, now that i’ve found Pybombs, I don’t know what I would do without it!
Profit!
You can find more information about Pybombs on GNU Radio’s website:
http://gnuradio.org/redmine/projects/pybombs/wiki
http://hak5.org/episodes/hak5-1601
-
Ramadhian Moestafa
-
Craig