Ubuntu 16.04 源码编译安装 uhd & gnuradio

Ubuntu 16.04 源码编译安装 uhd & gnuradio

  • 环境介绍
  • UHD安装
    • 1 安装依赖
    • 2 编译
    • 3 测试安装结果
    • 4 配置 USB
  • gnuradio安装
    • 1 安装依赖
    • 2 编译
    • 3 测试安装结果

环境介绍

Name Version
Ubuntu 16.04
uhd 3.15.0.0(UHD-3.15.LTS)
gnuradio maint3.7

UHD安装

1 安装依赖

  • 参考连接
    • ettus build guide
    • cmake build guide

libboost-all-dev 可以考虑换更高的版本。

sudo apt-get install libusb-1.0-0-dev build-essential doxygen \
python3-mako python3-docutils  python3-numpy python3-dev libssl-dev python3-setuptools

ubuntu package manager 的 cmake 版本太低(好像已经不维护了),所以我们需要从源码编译安装 cmake。

cd ~/Downloads #随便哪个目录
git clone https://github.com/Kitware/CMake.git
cd CMake 
mkdir build && cd build
../bootstrap && make && make test && sudo make install

2 编译

上面的依赖都安装完了之后,我们可以开始编译UHD了。

cd ~/Downloads
git clone https://github.com/EttusResearch/uhd.git
cd uhd
git branch -a # or `git tag -l`
# Example: For UHD-3.15.LTS
git checkout UHD-3.15.LTS
cd host && mkdir build
cd build
cmake ../

由于每个人系统的具体情况都不相同,上述依赖不一定完整。具体情况根据你cmake的结果来定。
Ubuntu 16.04 源码编译安装 uhd & gnuradio_第1张图片

上图LibUHD - Pyhton API 没能开启的原因是我最开始参考官网安装引导时, 少装了python3-dev(我理解是python3的开发环境依赖) 和python3-numpy依赖。装完你缺的依赖后再次cmake。

rm * -rf
cmake ../
# 确保你没有usrp设备连接在电脑上
make && make test 
sudo make install
sudo ldconfig

添加动态链接库搜索路径, 在$HOME/.bashrc最后添加

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

3 测试安装结果

sudo uhd_find_devices
# download UHD-FPGA Images
sudo uhd_images_downloader

镜像下载过慢,挂代理解决, 或者自己手动去找,只要确定在目录/usr/local/share/uhd/images/下有对应文件就行。

Note:如果你用台式机连接usrp的话,最好用机箱后主板上的usb3.0接口,不要用机箱前通过线连接的快捷usb3.0口,后面一种情况会导致设备突然断开而报错。

4 配置 USB

让普通用户可以获取usb设备,主要用于靠usb连接到主机的usrp设备。

cd $HOME/Downloads/uhd/host/utils
sudo cp uhd-usrp.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

gnuradio安装

1 安装依赖

  • 参考链接
    • gnuradio dependencies
    • gnuradio build guide
# 有些依赖上面uhd已经装过了
sudo apt-get install swig2.0 libfftw3-dev libcppunit-dev libgsl-dev alsa-base \
libasound2 libasound2-dev
#开启 gnuradio companion
sudo apt-get install python-numpy python-cheetah python-lxml python-gtk 
# 开启 WX GUI
sudo apt-get install python-wxgtk3.0 python-numpy
# 开启 QT GUI
sudo apt-get install python-qt4 python-qwt5-qt4 libqt4-opengl-dev libqwt5-qt4-dev \
libfontconfig1-dev libxrender-dev libxi-dev
# 开启 video sdl
sudo apt-get install libsdl1.2-dev
# 开启 Polyphase Filter Bank examples
sudo apt-get install python-scipy python-matplotlib python-tk

sudo apt-get install sdcc
sudo apt-get install guile-2.0-*
sudo apt-get install ccache
sudo apt-get install python-sip python-sip-dev
sudo apt-get install python-sphinx python-make
sudo apt-get install libcomedi-dev libzmq-dev python-zmq
 

2 编译

cd ~/Downloads
git clone https://github.com/gnuradio/gnuradio.git
cd gnuradio
git checkout maint-3.7
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ../

Ubuntu 16.04 源码编译安装 uhd & gnuradio_第2张图片
所有组件全部enable,遇到没有enable的检查依赖。

make -j $(nproc --all)
make test
sudo make install
sudo ldconfig

3 测试安装结果

gnuradio-config-info --version
gnuradio-config-info --prefix
gnuradio-config-info --enabled-components

然后就是运行gnuradio了

gnuradio-companion

你可能感兴趣的:(linux,uhd,gnuradio,ubuntu,SDR,UHD,USRP)