Airprobe and bladeRF

Discussions related to embedded firmware, driver, and user mode application software development
Post Reply
djrevmoon
Posts: 30
Joined: Fri Mar 01, 2013 4:37 am

Airprobe and bladeRF

Post by djrevmoon »

Hi,

has anyone succesfully gotten airprobe to work with bladeRF? I've been able to compile all the stuff but the acquisition scripts all assume a USRP or other SDR, but not a bladeRF. I've no idea how easy or difficult it would be to modify the scripts but if anyone has tried, I'd like to know how and what...

thanks!
schrambo
Posts: 16
Joined: Sat Mar 02, 2013 1:33 am
Location: Perth, Western Australia

Re: Airprobe and bladeRF

Post by schrambo »

Hi djrevmoon,

No I haven't, but I just tried myself, ran into issues during the compiling, what were the steps you did to get it compile correctly? mine keeps complaining about it not finding the gnuradio-core, and even after specifying the variables it suggests pointing towards /opt/gnuradio-3.7.1git like we all installed it too as described in the libusb setup guide.

Code: Select all

$ git clone git://svn.berlin.ccc.de/airprobe
$ cd airprobe/gsm-reciever 
$ ./configure
.... 
checking for GNURADIO_CORE... configure: error: Package requirements (gnuradio-core >= 3) were not met:

No package 'gnuradio-core' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GNURADIO_CORE_CFLAGS
and GNURADIO_CORE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
I'm a total noob with all things RF and such but i'm dead keen on finally actually getting something working and happening with my bladeRF.
djrevmoon
Posts: 30
Joined: Fri Mar 01, 2013 4:37 am

Re: Airprobe and bladeRF

Post by djrevmoon »

you should run ./bootstrap before ./configure. This should set the correct paths and variables....
Emil A.
Posts: 2
Joined: Fri Mar 01, 2013 3:05 am

Re: Airprobe and bladeRF

Post by Emil A. »

I have the same issue as schrambo.
It is not related to calling bootstrap, but seems that gnuradio changed its library structure recently.

Here is what I did.
Let's begin by checking for the core package:

Code: Select all

pkg-config --modversion gnuradio-core
-> should give an error
According to this post http://lists.gnu.org/archive/html/discu ... 00451.html, we should link against libgnuradio-runtime
instead of libgnuradio-core (core was eliminated). Easier said then done.

Let's continue by confirming that we have gnuradio-runtime installed.

Code: Select all

pkg-config --modversion gnuradio-runtime
3.7.1
Fortunately there is this project (many thanks to Josh Blum for sharing) https://github.com/guruofquality/grcompat.git, which provides backwards compatibility.

Code: Select all

git clone https://github.com/guruofquality/grcompat.git grcompat
cd grcompat
cmake ./
make
make install
It your airprobe ./configure gives the same error as before (like mine does), the following command should return an empty line.

Code: Select all

pkg-config --modversion gnuradio-core

So, the compat package is installed, but it doesn't provide the version info. Ugly fix to ignore gnuradio lib version:

Code: Select all

cd airprobe/gsm-reciever 
cat configure | sed 's/gnuradio-core >= 3/gnuradio-core/' > configure_mod
sed -i 's/gruel >= 3/gruel/' configure_mod
sudo chmod +x configure_mod
./configure_mod
make 
make install
Note: grcompat seems to be missing some header files like: gr_feval.h, gr_math.h, etc.
You may have to manually add them to /usr/local/include/grcompat.
I don't know why they are missing, or if adding them manually will break at runtime (did not test yet).
djrevmoon
Posts: 30
Joined: Fri Mar 01, 2013 4:37 am

Re: Airprobe and bladeRF

Post by djrevmoon »

So your build now completes? Strange, I did not have those same errors in ./configure. But during compile and build, I ran into many other issues, such as the build having incorrect include paths that lead to math.h being included from /usr/local/include/gnuradio in stead of /usr/include. And a missing #include <stddefs.h>. But manually editting did the trick.
schrambo
Posts: 16
Joined: Sat Mar 02, 2013 1:33 am
Location: Perth, Western Australia

Re: Airprobe and bladeRF

Post by schrambo »

Evening everyone.
I followed the somewhat guide Emil A posted. (thanks buddy) Unfortunately it has not resolved the issue. In fact as you had stated. definitely seems like the gnu-radio library structure has indeed changed.

Code: Select all

schrambo@daredevil ~/nuand/sandbox/airprobe/gsm-receiver $ cat configure | sed 's/gnuradio-core >= 3/gnuradio-core/' > configure_mod
schrambo@daredevil ~/nuand/sandbox/airprobe/gsm-receiver $ sed -i 's/gruel >= 3/gruel/' configure_mod 
schrambo@daredevil ~/nuand/sandbox/airprobe/gsm-receiver $ sudo chmod +x configure_mod 
schrambo@daredevil ~/nuand/sandbox/airprobe/gsm-receiver $ ./configure_mod 
... </snip> ...

checking for GNURADIO_CORE... yes
checking for LIBOSMOCORE... configure_mod: error: Package requirements (libosmocore >= 0.3.1) were not met:

No package 'libosmocore' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBOSMOCORE_CFLAGS
and LIBOSMOCORE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Same error as before, but now its stalling on LIBOSMOCORE which i'll have a poke / play around with why this is so now :)
djrevmoon
Posts: 30
Joined: Fri Mar 01, 2013 4:37 am

Re: Airprobe and bladeRF

Post by djrevmoon »

Yes, I needed to install libosmocore also... but that was a straightforward build with one dependency that I also had to install if I recall...
Jansch
Posts: 1
Joined: Thu Nov 21, 2013 9:44 am

Re: Airprobe and bladeRF

Post by Jansch »

Hello everyone,

I also had the same problem as schrambo and followed the instructions of Emil A which seems to have solved problem with the changed structure of Gnuradio 3.7 (thanks). However I run into this error notification during make

Code: Select all

make[1]: Entering directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver'
Making all in config
make[2]: Entering directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/config'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/config'
Making all in src
make[2]: Entering directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/src'
Making all in lib
make[3]: Entering directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/src/lib'
Making all in decoder
make[4]: Entering directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/src/lib/decoder'
Making all in openbtsstuff
make[5]: Entering directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/src/lib/decoder/openbtsstuff'
make[5]: LIBTOOL@: Command not found
make[5]: *** [BitVector.lo] Error 127
make[5]: Leaving directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/src/lib/decoder/openbtsstuff'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/src/lib/decoder'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/src/lib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/phidora/GNUradio/airprobe/airprobe/gsm-receiver'
make: *** [all] Error 2
and the make process stops. I think the important part is make[5]: LIBTOOL@: Command not found make[5]: *** [BitVector.lo] Error 127 but I don't know what it tells me to do. I have reinstalled libtools but the error notifications is still there when running the make process. Is anyone elso also facing this issue?
radiodragon
Posts: 1
Joined: Sat May 10, 2014 6:17 am

Re: Airprobe and bladeRF

Post by radiodragon »

I was able to get airprobe to compile with gnuradio 3.7 by using the patch found here: https://github.com/scateu/airprobe-3.7-hackrf-patch

It even launches, if I use the 3.7 script in that same directory meant for the hackrf, if I give it the bladerf as a source on the command line:
./gsm_receive_hackrf_3.7.py -a hackrf=0

But it does not seem to demodulate the channel properly, still.
kalibrate-bladeRF finds the channel just fine. And I have another computer with gnuradio 3.6 and a working airprobe, but using my RTL-SDR dongle, not my shiny new bladerf.

I'd love to get it to demodulate with the bladerf, if anyone has any suggestions... It seems like, although the patch enables airprobe to compile with 3.7, there is still some subtle bug hidden in there that keeps it from demodulating the signal. I tried it against a cfile that I downloaded, too -- it worked fine on 3.6, but not on 3.7.
djrevmoon
Posts: 30
Joined: Fri Mar 01, 2013 4:37 am

Re: Airprobe and bladeRF

Post by djrevmoon »

Hi all,

a guy called zmiana made a patch for gsm-receiver to adjust for the gnuradio 3.6 vs 3.7 changes. You can find it here:

http://speedy.sh/NBRYB/zmiana3.patch

applying the patch results in a clean build, and a clean decode of the example capture file. Wireshark sees that decode.

But, unfortunately, when I try to capture my own stuff, I get:

Code: Select all

root@destroyer2:/airprobe/gsm-receiver/src/python# ./gsm_receive_rtl.py -s 1e06
linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.005.005-0-unknown

gr-osmosdr 0.1.1 (0.1.1) gnuradio 3.7.2.1
built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf rfspace 
[bladeRF source] Using nuand LLC bladeRF #0 SN 0bb3137c20ae145a367357ddd61cb4ae FW v1.6.1 FPGA v0.0.3
sample rate: 1000000
Using Volk machine: avx_64_mmx
Key: 'ad6a3ec2b442e400'
Configuration: '0B'
  Configuration TS: 0
configure_receiver
gr::buffer::allocate_buffer: warning: tried to allocate
   115 items of size 568. Due to alignment requirements
   512 were allocated.  If this isn't OK, consider padding
   your structure to a power-of-two bytes.
   On this platform, our allocation granularity is 4096 bytes.
Traceback (most recent call last):
  File "./gsm_receive_rtl.py", line 231, in <module>
    tb.Run(True)
  File "/usr/local/lib/python2.7/dist-packages/grc_gnuradio/wxgui/top_block_gui.py", line 82, in Run
    self.Start(start, max_nouts)
  File "/usr/local/lib/python2.7/dist-packages/grc_gnuradio/wxgui/top_block_gui.py", line 73, in Start
    self.start()
  File "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/top_block.py", line 104, in start
    top_block_start_unlocked(self._tb, max_noutput_items)
  File "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/runtime_swig.py", line 4711, in top_block_start_unlocked
    return _runtime_swig.top_block_start_unlocked(*args, **kwargs)
RuntimeError: list contains invalid format!
So it seems it does see the bladeRF, but my python chops are non-existent so I have no clue what's going on with that runtime error.

I do not get a windows where I can tune to a GSM channel.... but it's progress ;-)
pedrocab
Posts: 5
Joined: Tue Sep 02, 2014 7:51 am

Re: Airprobe and bladeRF

Post by pedrocab »

Hello djrevmoon,

I see in your code that you are executing "./gsm_receive_rtl.py", I installed airprobe and is working with GNURadio 3.7 and BladeRF, but I call the python script provided in the airprobe-3.7-hackrf-patch:

"gsm_receive_hackrf_3.7.py"

Hackrf and BladeRF are handled by gr-osmosdr, so this script works for both boards.

Let me know if this helps you.

KR,
Pedro
Post Reply