# Install GNURadio from Source

**URL:** <https://www.ruby-forum.com/t/install-gnuradio-from-source/242271>\
**Category:** GNU Radio\
**Created:** [June 10, 2015, 9:22pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271 "2015-06-10T21:22:04Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [June 10, 2015, 9:22pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/1 "2015-06-10T21:22:04Z")

</div>

Hi all,

Ubuntu 14.04

I have installed uhd from source to /usr/local/bin without a problem. I  
then do the following:

1. cd /usr/local/bin
2. sudo git clone [GitHub - gnuradio/gnuradio: GNU Radio – the Free and Open Software Radio Ecosystem](https://github.com/gnuradio/gnuradio.git)
3. cd gnuradio
4. sudo mkdir build && cd build
5. sudo cmake …/

I get the following error:

_– Configuring VOLK support…-- VOLK submodule is not checked out.–  
To check out the VOLK submodule, use:-- git pull  
–recurse-submodules=on-- git submodule update-- External VOLK  
disabled.-- Override with -DENABLE\_INTERNAL\_VOLK=ON/OFF-- CMake Error  
at  
CMakeLists.txt:309 (message): VOLK required but not found._

I’ve run the two git commands it asks me to run, deleted the build  
directory and re-ran cmake but I get the same error. I see a volk  
directory  
in the gnuradio directory.

What is causing this problem?

v/r,  
Rich

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 10, 2015, 9:25pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/2 "2015-06-10T21:25:35Z")

</div>

On Wed, Jun 10, 2015 at 3:20 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> 1. sudo mkdir build && cd build
> 
> in the gnuradio directory.
> 
> What is causing this problem?
> 
> v/r,  
> Rich

Try following the download page:

[http://gnuradio.org/redmine/projects/gnuradio/wiki/Download](http://gnuradio.org/redmine/projects/gnuradio/wiki/Download)

Specifically, delete your gnuradio directory and run the git clone this  
way:

git clone --recursive [http://git.gnuradio.org/git/gnuradio.git](http://git.gnuradio.org/git/gnuradio.git)

That should make sure you’ve properly pulled the volk submodule as well.

Tom

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 10, 2015, 9:28pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/3 "2015-06-10T21:28:30Z")

</div>

I’d also like to point out that you should **not** clone into  
/usr/local/bin; that’s the directory where the executables should/will  
be installed, but no place for source code!  
If you don’t do that but instead clone to, let’s say /home/richard/,  
then the only operation you need to do as root (“sudo”) is “make  
install”; that’s much better.

Best regards,  
Marcus

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 10, 2015, 9:29pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/4 "2015-06-10T21:29:05Z")

</div>

Richard,

Just throwing in my $.02 here to prevent bad habits from forming.

/usr/local/bin is an odd place to store the repository. You should do  
the  
clone some place that you have write permission so you don’t have to do  
it  
with sudo. Then when you do the install step it can install to  
/usr/local  
with sudo.

-nw

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 10, 2015, 9:30pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/5 "2015-06-10T21:30:15Z")

</div>

If you get your source from [GitHub - gnuradio/gnuradio: GNU Radio – the Free and Open Software Radio Ecosystem](https://github.com/gnuradio/gnuradio) the  
VOLK  
folder will be empty (take a look at the git repo, volk folder is a  
link).  
You can manually get it from  
[GitHub - gnuradio/volk at master](https://github.com/gnuradio/volk/tree/master)

Cheers,  
Alireza

On Wed, Jun 10, 2015 at 12:20 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 10, 2015, 9:29pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/6 "2015-06-10T21:29:05Z")

</div>

In GR 3.7.7, VOLK is now a Git submodule.

Try instead:  
sudo git clone --recursive [GitHub - gnuradio/gnuradio: GNU Radio – the Free and Open Software Radio Ecosystem](https://github.com/gnuradio/gnuradio.git)

And then do steps 3, 4, 5.

–Neel

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 10, 2015, 9:31pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/7 "2015-06-10T21:31:25Z")

</div>

You probably shouldn’t put code into /usr/local/bin as that is reserved  
for  
binaries, and you shouldn’t build as root. I clone stuff into  
/usr/local/src, so do this:

sudo mkdir /usr/local/src  
sudo chmod 777 /usr/local/src  
cd /usr/local/src  
git clone –recursive [GitHub - gnuradio/gnuradio: GNU Radio – the Free and Open Software Radio Ecosystem · GitHub](https://github.com/gnuradio/gnuradio.git)  
cd gnuradio  
mkdir build  
cd build  
cmake ../  
make  
make test  
sudo make install

Note the “git clone –recursive” will populate the volk directory.  
Lou

Richard B. wrote

> 1. sudo mkdir build && cd build
> 
> directory  
> in the gnuradio directory.
> 
> What is causing this problem?
> 
> v/r,  
> Rich
> 
> * * *
> 
> Discuss-gnuradio mailing list

> Discuss-gnuradio@

> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/Install-GNURadio-from-Source-tp54119p54125.html](http://gnuradio.4.n7.nabble.com/Install-GNURadio-from-Source-tp54119p54125.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 10, 2015, 9:40pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/8 "2015-06-10T21:40:46Z")

</div>

FWIW I keep on-line notes here if you want to do everything the hard way  
(i.e. manually install dependencies and build from source):

> **[GNU Radio – RF Power Amp](https://rfpoweramp.com/category/sdr/gnu-radio/)**
>
> Posts about GNU Radio written by rfengr00

Lou

Richard B. wrote

> Discuss-gnuradio mailing list  
> Discuss-gnuradio@

> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/Install-GNURadio-from-Source-tp54119p54127.html](http://gnuradio.4.n7.nabble.com/Install-GNURadio-from-Source-tp54119p54127.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 10, 2015, 9:37pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/9 "2015-06-10T21:37:16Z")

</div>

Thank you everyone. I will take your advice and appreciate it. The  
–recursive flag fixed the volk issue.

v/r,  
Rich

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 11, 2015, 12:10am UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/10 "2015-06-11T00:10:55Z")

</div>

I completed the source install of both gnuradio 3.7.8git-0-g24a05ca0 and  
uhd. Everything completed with no errors thanks to your help.

Now, when I open a flowgraph that I made previously in git 3.7.8, that  
uses  
the new “correlation estimator” and “modulate vector” blocks, it tells  
me  
the block “digital\_corr\_est\_cc” and “modulate\_vector” were not found in  
Platform. Did these blocks get pulled or is this a sign of something  
else  
in my install?

Rich

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 11, 2015, 1:30am UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/11 "2015-06-11T01:30:57Z")

</div>

On Wed, Jun 10, 2015 at 7:21 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> I think I figured out what happened, though I don’t understand it. I  
> cloned gnuradio, than ran ‘git checkout 3.7.8git’ to switch to 3.7.8. I  
> than installed from there, however, I needed to then do a pull after the  
> switch to get a lot of files. I just assumed a new clone would contain  
> everything. Always learning something new.
> 
> Rich

Ah, ok. You probably want to just work off the master branches HEAD,  
which  
is what you get when you pull down the git repo in the first place.

The way the git tags work in our project is that at the release, we tag  
the  
version, say v3.7.7. We then update the version information in the tree  
and  
tag that – one commit later – as the v3.7.8git working branch. So that  
is  
just the start of the work on the next version but does not represent  
any  
work done there. It’s pretty much the same code as in 3.7.7 with only  
version info changed.

Tom

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 11, 2015, 10:25pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/12 "2015-06-11T22:25:58Z")

</div>

Thanks Tom I understand now. Everything is working again.

One more question about the tags. When I install Master -\> HEAD, the  
version in GRC (from help-\>about) is 3.7.7.1. Why is there a tag for  
version 3.7.8 in the repo, if its content is behind that of 3.7.7.1?

Rich

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 11, 2015, 1:22am UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/13 "2015-06-11T01:22:46Z")

</div>

I think I figured out what happened, though I don’t understand it. I  
cloned  
gnuradio, than ran ‘git checkout 3.7.8git’ to switch to 3.7.8. I than  
installed from there, however, I needed to then do a pull after the  
switch  
to get a lot of files. I just assumed a new clone would contain  
everything.  
Always learning something new.

Rich

On Wed, Jun 10, 2015 at 3:09 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 17, 2015, 9:06pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/14 "2015-06-17T21:06:52Z")

</div>

Unfortunately, I have to resurrect this thread. I’m still not able to  
get  
the version of gnuradio installed that allows me to use control ports.  
When  
I use the master/head branch, which is the default as Tom said when you  
clone the repo, after cmake completes, it tells me this:

– Building for version: v3.7.7.1-154-g7ee2f91d / 3.7.8git

Is the 3.7.7.1-154-xxx what I keep seeing as the version in GRC, while  
the  
3.7.8git is the version of the underlying source code? If so, is this  
what  
I should be installing to use control ports and if not, what should I be  
checking out before I compile the gnuradio source?

Here is what happens when I run a flowgraph with a ‘CtrlPort Performance  
Monitor’ included:

Using Volk machine: avx\_64\_mmx  
ControlPort Monitor running.  
Traceback (most recent call last):  
File “/home/rbell/Documents/tsv/production/bpsk/sbpsk\_loopback.py”,  
line  
1057, in   
(tb.blocks\_ctrlport\_monitor\_performance\_0).start()  
File  
“/usr/local/lib/python2.7/dist-packages/gnuradio/ctrlport/monitor.py”,  
line  
48, in start  
print “monitor::endpoints() = %s” %  
(gr.rpcmanager\_get().endpoints())  
AttributeError: ‘NoneType’ object has no attribute ‘endpoints’  
ctrlport.monitor received shutdown signal

Today I uninstalled gnuradio, searched my computer for anything gnuradio  
related and removed it (minus some custom blocks that i’ve created that  
I  
assume won’t mess with an install) and reinstalled uhd and gnuradio from  
source. I am fairly certain I don’t have a conflicting versions problem.

v/r,  
Rich

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 17, 2015, 9:18pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/15 "2015-06-17T21:18:33Z")

</div>

Richard, you’re getting the right version. The 3.7.7.1 string is an  
artifact of how git describe searches backward for the latest annotated  
tag  
in order to come up with a description.

On Wed, Jun 17, 2015 at 12:05 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 12, 2015, 3:35pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/16 "2015-06-12T15:35:20Z")

</div>

On Thu, Jun 11, 2015 at 4:24 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Thanks Tom I understand now. Everything is working again.
> 
> One more question about the tags. When I install Master → HEAD, the  
> version in GRC (from help-\>about) is 3.7.7.1. Why is there a tag for  
> version 3.7.8 in the repo, if its content is behind that of 3.7.7.1?
> 
> Rich

Something is wrong there. It should read “3.7.8git-”. You  
possibly have two versions installed.

Tom

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 17, 2015, 9:39pm UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/17 "2015-06-17T21:39:35Z")

</div>

On Wed, Jun 17, 2015 at 3:16 PM, Johnathan C.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > clone the repo, after cmake completes, it tells me this:
> > 
> > AttributeError: ‘NoneType’ object has no attribute ‘endpoints’

As Johnathan said, you’ve got the right version. Now you need to make  
sure  
that ControlPort is getting built and installed correctly with Thrift.

When you run cmake, you will see a list of enabled components. You  
should  
see as part of this:

- gr-ctrlport
  - thrift

That’ll let you know that you are building ControlPort and the Thrift  
backend for it. If you’ve already installed it, you can check with:

$ gnuradio-config-info --enabled-components  
python-support;testing-support;doxygen;sphinx;gnuradio-runtime;gr-ctrlport;\*  
thrift;gr-blocks;gnuradio-companion;gr-fec;gr-fft;gr-filter;gr-analog;gr-digital;gr-dtv;gr-atsc;gr-audio;\*  
alsa;\* oss;\*  
jack;gr-comedi;gr-channels;gr-noaa;gr-pager;gr-qtgui;gr-trellis;gr-uhd;gr-utils;gr-video-sdl;gr-vocoder;gr-fcd;gr-wavelet;gr-wxgui;gr-zeromq

You can see the “gr-ctrlport;\* thrift” – which tells you the same info  
as  
cmake.

One thing, though, I’ve just pushed a couple of fixes for  
ControlPort/Thrift support. So when you rebuild, make sure you’re  
pulling  
down the latest master.

Tom

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 18, 2015, 12:10am UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/18 "2015-06-18T00:10:52Z")

</div>

It’s still not working.

I was overlooking the Thrift dependency previously. I installed Thrift  
0.9.2 from source, following this  
[https://gnuradio.org/redmine/projects/gnuradio/wiki/ControlPort](https://gnuradio.org/redmine/projects/gnuradio/wiki/ControlPort) as well  
as  
the Thrift homepage install instructions,  
[Apache Thrift - Index of install/](http://thrift.apache.org/docs/install/), because I needed to install a  
few  
more dependencies for thrift than what was listed in the first link. I  
then  
deleted build and re-built gnuradio. When I ran CMake, I saw that under  
the  
gr-ctrlports module section it said it found thrift 0.9.2. Was there  
something else I needed to confirm in the cmake output beyond that?

When I run gnuradio-config-info --enabled-components, I see  
‘gr-ctrlport’  
in the list, but no ‘\* thrift’.

What else have I overlooked, that always seems to be the issue.

Rich

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 18, 2015, 1:26am UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/19 "2015-06-18T01:26:14Z")

</div>

On Wed, Jun 17, 2015 at 3:09 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> I was overlooking the Thrift dependency previously. I installed Thrift  
> 0.9.2 from source, following this  
> [https://gnuradio.org/redmine/projects/gnuradio/wiki/ControlPort](https://gnuradio.org/redmine/projects/gnuradio/wiki/ControlPort) as well  
> as the Thrift homepage install instructions,  
> [Apache Thrift - Index of install/](http://thrift.apache.org/docs/install/), because I needed to install a few  
> more dependencies for thrift than what was listed in the first link. I then  
> deleted build and re-built gnuradio. When I ran CMake, I saw that under the  
> gr-ctrlports module section it said it found thrift 0.9.2. Was there  
> something else I needed to confirm in the cmake output beyond that?

What is your installation prefix?

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [June 18, 2015, 1:29am UTC](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271/20 "2015-06-18T01:29:45Z")

</div>

On Wed, Jun 17, 2015 at 6:09 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> something else I needed to confirm in the cmake output beyond that?
> 
> When I run gnuradio-config-info --enabled-components, I see ‘gr-ctrlport’  
> in the list, but no ‘\* thrift’.
> 
> What else have I overlooked, that always seems to be the issue.
> 
> Rich

Probably the installation of the Thrift Python module. Did you set a  
different prefix for the installation of Thrift? It likes to try to  
stuff  
it in /usr/lib/python2.7/site-packages regardless of what you set the  
–prefix to. You have to use PY\_PREFIX on the configure line for that. A  
lesson we just learned yesterday.

Also, because it goes into site-packages instead of dist-packages like  
most  
distros use these days, that could also be affecting whether or not  
Python  
is finding it.

Tom

[Next page](https://www.ruby-forum.com/t/install-gnuradio-from-source/242271.md?page=2)
