首先来要说的是ettus官网给出的安装指导手册,相比我第一次尝试安装时候,指导手册又多了很多新的内容,是针对不同平台的,想必以后会更加完善。以下就是官网指导手册地址。
http://files.ettus.com/manual/page_build_guide.html#build_get_source
另外想告诉大家的是ettus文件下载中心(http://files.ettus.com/) 可以找到已经更新的所有版本的uhd和gnuradio,具体存放在binaries/文件夹下。
好了,废话不多说,进入正题。
在安装gnuradio之前需要先安装UHD。
第一步,安装UHD所需要的依赖环境:
sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils cmake build-essential
第二步,获取源代码
git clone git://github.com/EttusResearch/uhd.git
更新子模块
git submodule init
git submodule update
在运行Git submodule init 后系统报错:
fatal: Not a git repository (or any of the parent directories): .git
查了下原因,
1.fatal: Not a git repository (or any of the parent directories): .git
出现这个问题后,发现其实是在本系统下没有找到一个.git这样的目录,所以在终端下使用git –help命令,显示了其主要的一些命令参数,发现一个参数是init:
2.init Create an empty git repository or reinitialize an existing one
执行git init之后,然后再重新编译,这个问题就被解决了。这里要注意的一点是,和svn不一样,svn不需要自己使用命令来创建自己的资源库,而git需要自己使用命令手动创建,具体.git的位置和你在哪个目录下执行命令有关。
我是直接在根目录下安装UHD,所以直接在超级终端输入命令git init,执行后弹出的提示为:
Initialized empty Git repository in /home/usrp/.git/
也就是在目录/home/usrp/.git/下生成了空文件夹Git。
第三步,构建指令
1.用Cmake生成makefiles
cd <uhd-repo-path>/host
mkdir build
cd build
cmake ../
这里需要指出的是,cmake在ubuntu系统中原本就有,如果不好用的话可以升级cmake版本后makefiles。指的是uhd源码存放的文件夹,这个可以自己设置,但是为了避免出错,建议直接存放在根目录下,这样以来,直接cd /host就能够执行makefiles的各项指令了。
另外,配置变量可以通过命令行传输到CMake。通用配置变量如下:
对于自定义安装:
-DCMAKE_INSTALL_PREFIX=<install-path>
Lib64的安装:
cmake -DLIB_SUFFIX=64
例:cmake -DCMAKE_INSTALL_PREFIX=/opt/uhd ../
2.编译与安装
make
make test
sudo make install
编译安装以后,需要进行一下环境的配置。
3.环境配置
这一步也非常重要,你要确定libuhd.so在不在LD_LIBRART_PATH中,如果不在的话需要手动添加到/etc/ld.so.conf中,然后运行下面的指令:
sudo ldconfig
如果这一步配置失败,在调用uhd中的uhd_find_devices命令查找usrp设备时,终端里也会报错的。
以上这些就是我在历经了无数次失败后,总结出来的用源码sources安装UHD的经验,希望对大家有帮助吧。
到此为止,uhd就装好了。
4.安装gnuradio
gnuradio的安装相比uhd,那真的是人性化太多太多了,直接一个命令就能搞定啦。
sudo apt-get install gnuradio
安装完成以后,在终端输入
gnuradio-companion
如果能够跳出GRC的界面,并且在GRC的库中能够找到UHD,恭喜你,安装成功啦!