[Hackrf-dev] PyBombs - Updated

Rich Sanders richnsanders at gmail.com
Wed Sep 17 19:25:38 EDT 2014


Installing Pybombs

The general disclaimer..This technique/approach has worked for me various
times, it is the method I prefer, it may not work for you.  You might
prefer other steps.  I assume no liability.

HELPFUL/CONSTRUCTIVE criticism is always welcome.  Pybombs is not perfect,
some recipes do not work.

When you see the word     user     in my instructions, that refers to the
user name you're using, ie,

run /home/user/pybombs/src/uhd/host/build/utils/uhd_images_downloader.py

and your user is steve, the line becomes

run /home/steve/pybombs/src/uhd/host/build/utils/uhd_images_downloader.py

For me, I had issues with the following packages:

gr-rds (solution included)
wireshark connectors (solution included)
gr-ieeee802154 (solution included)
gr-ieee80211 (solution included)
gqrx (solution included)
gr-fosphor (solution included)
Ettus B200/B2100 (solution included)

gr-as (no solution yet), this breaks my gnuradio install , I'll try to find
a fix in the near future
gr-extras (no solution yet) this has a pre-requisite of gr-as, which breaks
my gnuradio install, I'll try to find a fix in the near future
pocsag-mpt (no solution yet) this has a pre-requisite of gr-as, which
breaks my gnuradio install, I'll try to find a fix in the near future
gr-smartnet (no solution yet), I don't think this is maintained any more
gr-bluetooth (no solution yet), I don't think this is maintained any more
openlte (no solution yet)
niusprio (no solution yet)

I always start with a fresh Ubuntu load, this one is based on Ubuntu 14.04

After install, perform the typical:

apt-get update
apt-get dist-upgrade

Pybombs will by default try to install all dependencies, but I have found
the install goes much smoother if I install some packages in advance:

type      sudo apt-get -y install git-core cmake g++ python-dev swig
pkg-config libfftw3-dev libcppunit-dev libgsl0-dev libusb-dev libsdl1.2-dev
python-wxgtk2.8 python-numpy python-cheetah python-lxml doxygen libxi-dev
python-sip libqt4-opengl-dev libqwt-dev libfontconfig1-dev libxrender-dev
python-qwt5-qt4 python-sip python-sip-dev cmake xorg-dev libglu1-mesa-dev
python-zmq pypy-zmq

reboot Ubuntu

terminal into your home directory

type    git clone git://github.com/pybombs/pybombs
type      cd pybombs
type    ./pybombs config

In the configuration setup you can press enter for every option, I changed
the install prefix location because this helps prevent errors when I
manually install non pybombs packages later on, if you are only going to
use pybombs “recipes” leave the default location.  If you change to
"/usr/local" you'll have to run "sudo ./pybombs config" after the config
files run

type      sudo ./pybombs config

Output of  ./pybombs config

Initializing config file...
Username for GIT access
gituser [user]:
Install Prefix prefix [/home/user/target]:/usr/local/
Order in which to attempt installations when available, options are: src,
rpm, deb satisfy_order [deb,src]:
Comma seperated list of package names to assume are already installed
forcepkgs []:
Time the monitor thread waits (in seconds) before retrying downloads
timeout [30]:
CMAKE_BUILD_TYPE args to pass to cmake projects, options are: Debug,
Release, RelWithDebInfo, MinSizeRel, cmakebuildtype [RelWithDebInfo]:
Build doxygen while compiling packages? options are: ON, OFF builddocs
[OFF]:
C Compiler Executable [gcc, clang, icc, etc] cc [gcc]:
C++ Compiler Executable [g++, clang++, icpc, etc] cxx [g++]:
Concurrent make threads [1,2,4,8...] makewidth [4]:
done
Settled on prefix: /usr/local

[Errno 13] Permission denied: '/usr/local/lib64'
Error! Configured install prefix requires root privileges. Please re-run as
sudo!

This error is normal if you ran sudo ./pybombs config, rerun the config
typing     sudo ./pybombs config

Output of ./pybombs config

Settled on prefix: /usr/local
Initializing environmental variables...
/usr/local//python/:/usr/local//lib/python2.6/site-packages/:/usr/local//lib64/python2.6/site-packages/:/usr/local//lib/python2.6/dist-packages/:/usr/local//lib64/python2.6/dist-packages/:/usr/local//lib/python2.7/site-packages/:/usr/local//lib64/python2.7/site-packages/:/usr/local//lib/python2.7/dist-packages/:/usr/local//lib64/python2.7/dist-packages/:/usr/local//python/:/usr/local//lib/python2.6/site-packages/:/usr/local//lib64/python2.6/site-packages/:/usr/local//lib/python2.6/dist-packages/:/usr/local//lib64/python2.6/dist-packages/:/usr/local//lib/python2.7/site-packages/:/usr/local//lib64/python2.7/site-packages/:/usr/local//lib/python2.7/dist-packages/:/usr/local//lib64/python2.7/dist-packages/
no existing inventory found, creating an empty one...
---------- loading recipes -------------------
Loading recipes ...
Loading recipes ... done
---------- loading recipes finished ----------

gituser = user
prefix = /usr/local/
satisfy_order = deb,src
forcepkgs =
timeout = 30
cmakebuildtype = RelWithDebInfo
builddocs = OFF
cc = gcc
cxx = g++
makewidth = 4

from this point forward, you only need "sudo" if you installed into a
custom directory instead of the default /home/user/target

type     sudo ./pybombs install gnuradio

THIS WILL TAKE A WHILE

When it is done type sudo ./app_store.py

Click on the packages you want to install, you can only install one at a
time.  The app_store may go dark.  You can monitor the progress in the
terminal window that you launched app_store in.  If everything installs
correctly, the app_store will brighten and your terminal window will
display "installation ok via: src"  if it errored out, the app_store will
close and your terminal window will have some information.

I suggest starting with gr-osmosdr (<--- this will install many of your
app_store blocks such as hackrf and osmosdr) and gr-pyqt

Click the "X" to exit the app_store.

type     sudo ./pybombs env

Using the Ubuntu file manager, navigate to the location listed after
running ./pybombs env.  Open setup_env.sh and copy everything below the
following line:

# WARNING: This file is auto-generated by pybombs, any manual changes to it
may be overwritten!

It should look similar to:

export
PATH="/usr/local//bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib64/qt4/bin/"
export
PYTHONPATH="/usr/local//python/:/usr/local//lib/python2.6/site-packages/:/usr/local//lib64/python2.6/site-packages/:/usr/local//lib/python2.6/dist-packages/:/usr/local//lib64/python2.6/dist-packages/:/usr/local//lib/python2.7/site-packages/:/usr/local//lib64/python2.7/site-packages/:/usr/local//lib/python2.7/dist-packages/:/usr/local//lib64/python2.7/dist-packages/:/usr/local//python/:/usr/local//lib/python2.6/site-packages/:/usr/local//lib64/python2.6/site-packages/:/usr/local//lib/python2.6/dist-packages/:/usr/local//lib64/python2.6/dist-packages/:/usr/local//lib/python2.7/site-packages/:/usr/local//lib64/python2.7/site-packages/:/usr/local//lib/python2.7/dist-packages/:/usr/local//lib64/python2.7/dist-packages/"
export LD_LIBRARY_PATH="/usr/local//lib/:/usr/local//lib64/:"
export
PKG_CONFIG_PATH="/usr/local//lib/pkgconfig/:/usr/local//lib64/pkgconfig/:"

In the termianl window, CD to your home directory

type     sudo nano .bashrc

scroll to the bottom and paste the copied lines, then Ctrl X, Yes, Enter

You should generate the env file and check your .bashrc to see if you need
to update the file after installing new recipes

------------------------------

Updating libhackrf

type     git clone https://github.com/mossmann/hackrf.git
type    cd hackrf/host/libhackrf/
type    mkdir build
type    cd build
type    cmake ..
type    make
type    sudo make install
type    sudo ldconfig
copy /home/hackrf/host/libhackrf/53-hackrf.rules to /etc/udev/rules.d
type    sudo udevadm control --reload-rules
reboot
type    hackrf_info

You should see something SIMILAR to:

Found HackRF board.
Board ID Number: 2 (HackRF One)
Firmware Version: git-44df9d1
Part ID Number: 0xa000cb3c 0x004d4f3f
Serial Number: 0x00000000 0x00000000 0x457863c8 0x2f1b511f

type    gnuradio-companion to run gnuradio

You should be good to go!

If you need to update the firmware, follow Mike's directions at:

https://github.com/mossmann/hackrf/wiki/Updating-Firmware

-------------------

Ettus B200
run /home/user/pybombs/src/uhd/host/build/utils/uhd_images_downloader.py
copy the rules from  /usr/local/lib/uhd/utils to /etc/udev/rules.d
type      sudo udevadm control --reload-rules
reboot
-----------------------------------------------
Gqrx
Edit the gqrx.lwr file and remove only the BOOST_SUFFIX=-mt from the qmake
line
If you've already tried to install, remove by typing       sudo ./pybombs
clean gqrx
Re-install by clicking gqrx button
------------------------------------------------
gr-rds

type        sudo apt-get install libxml2 cmake libboost-all-dev
libcppunit-dev liblog4cpp5-dev swig
cd to your home directory
type        git clone https://github.com/bastibl/gr-rds
type       cd gr-rds
type       mkdir build
type       cd build
type       cmake ..
type      make
type      sudo make install
type      sudo ldconfig
--------------------------------------
Wireshark connectors

cd to your home directory

type      git clone https://github.com/bastibl/gr-foo.git
type     cd gr-foo
type     mkdir build
type     cd build
type     cmake ..
type     make
type     sudo make install
type     sudo ldconfig
-----------------------------
gr-ieee802-15-4

cd to your home directory

type     git clone git://github.com/bastibl/gr-ieee802-15-4.git
type     cd gr-ieee802-15-4
type     mkdir build
type     cd build
type     cmake ..
type     make
type     sudo make install
type     sudo ldconfig

The  hierarchical block has to be installed separately:
Open examples/ieee802_15_4_PHY.grc in gnuradio-companion and generate the
flow graph. This installs the hierarchical block in your home, where
gnuradio-companion can find it (typically ~/.grc_gnuradio).

-----------------
gr-ieee802-11

type     sudo apt-get install liblog4cpp5-dev libitpp-dev
cd to your home directory
type     git clone git://github.com/bastibl/gr-ieee802-11.git
type    cd gr-ieee802-11
type    mkdir build
type    cd build
type    cmake ..
type    make
type    sudo make install
type    sudo ldconfig

The physical layer is encapsulated in a hierarchical block to allow for a
clearer transceiver structure in GNU Radio Companion. This hierarchical
block is not included in the installation process. You have to open
/examples/wifi_phy_hier.grc with GNU Radio Companion and build it. This
will install the block in ~/.grc_gnuradio/.
-----------

gr-fosphor

type     sudo apt-get install opencl-headers
type     sudo ./app_store
click the fosphor button

Then edit:
File /usr/local/lib/python2.7/dist-packages/gnuradio/fosphor/__init__.py

below this line:
from fosphor_swig import *

type       import sys
save the file

Because of dependency issues, do these seperately, in this order
type      sudo apt-get install nvidia-libopencl1-331-updates
type      sudo apt-get install nvidia-opencl-dev

reboot

Type      sudu apt-get install pyopengl (freeglut3 will be installed too)

If you try to run fosphor and get an error about
glsl 1.5 not supported in Ubuntu, go to the "additional drivers" at load
the Nvidia drivers.

Posted on my site:
http://www.celestialphotographer.com/2014/09/17/pybombs-gnuradio/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist9.pair.net/pipermail/hackrf-dev/attachments/20140917/fcdf6922/attachment.html>


More information about the HackRF-dev mailing list