Ubuntu 16.04 源码编译安装 uhd & gnuradio

    技术2025-03-24  19

    Ubuntu 16.04 源码编译安装 uhd & gnuradio

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

    环境介绍

    NameVersionUbuntu16.04uhd3.15.0.0(UHD-3.15.LTS)gnuradiomaint3.7

    UHD安装

    1 安装依赖

    参考连接 ettus build guidecmake 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的结果来定。

    上图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 dependenciesgnuradio 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-mako sudo apt-get install libcomedi-dev libzmq-dev python-zmq

    对于ubuntu18.04而言, 有些依赖的版本可能不同, 具体按照提示来.

    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 ../

    所有组件全部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
    Processed: 0.014, SQL: 9