• GNU Radio安装教程: Ubuntu14.04 + uhd3.10.0 + gnuradio3.7.10.1


    1. 更新和安装依赖项

    在编译安装uhd和gnuradio之前,确保已安装所需依赖项。Ubuntu系统运行:

    sudo apt-get update

    安装UHD和GNURadio所需依赖项:

    On Ubuntu 16.04 systems, run:

    sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq

    On Ubuntu 15.04 and 15.10 systems, run:

    sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev  libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-1.13-0v5 libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk2.8 git-core libqt4-dev python-numpy ccache python-opengl libgsl0-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq

    On Ubuntu 14.04 and 14.10 systems, run:

    sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg   libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk2.8 git-core libqt4-dev python-numpy ccache python-opengl libgsl0-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq1 libzmq-dev python-requests python-sphinx libcomedi-dev

    其他操作系统依赖项安装见文末参考链接

    2. 获取UHD和GNURadio源码:

    方法一: 直接下载安装包 (UHD和gnuradio都推荐下载最新版)

    下载UHD源码: http://files.ettus.com/binaries/uhd_stable/src/

    下载GNURadio源码: http://gnuradio.org/

    方法二: 使用git命令

    下载UHD源码:

    git clone https://github.com/EttusResearch/uhd

    下载GNURadio源码:

    git clone --recursive https://github.com/gnuradio/gnuradio

    3. 安装UHD和GNURadio:

    3.1 安装UHD

    cd进入UHD源码所在文件夹, 由于两种方法获得的源码目录结构不同,使用方法一下载的输入以下命令

    cd cd uhd-<对应版本号>

    使用方法二下载源码的输入以下命令:

    cd uhd/host

    后续操作一样,依次输入以下命令即可:

    mkdir build
    cd build
    cmake ../
    make
    sudo make install
    sudo ldconfig

    3.2 安装log4cpp (可选, 如果不需要使用日志功能跳过此步骤)

    3.2.1下载版本:log4cpp-1.1.1.tar.gz,下载地址:http://sourceforge.net/projects/log4cpp/

    3.2.2解压下载的压缩文件:log4cpp-1.1rc3.tar.gz,可以使用命令行,或者右键压缩包,在弹出菜单项中选择“解压至此处”

    3.2.3解压后的文件夹名为log4cpp,在终端(快捷键ctrl+alt+t)中,cd到该文件夹下,注意需要root权限。

    cd log4cpp
    sudo su

    3.2.4运行configure

    ./configure --with-pthreads

    3.2.5在终端中依次输入如下命令,即可完成安装,安装完成后,log4cpp so库在/usr/local/lib下,头文件在/usr/local/include目录下

    ./configure
    make
    make install

    3.2.6添加环境变量

    gedit /etc/profile.d/log4cpp.sh

    在文件中添加如下文字:

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

    3.2.7保存好文件后,修改该文件可执行权限,在终端中输入的命令如下:

    chmod a+x /etc/profile.d/log4cpp.sh

    3.2.8使用命令ldconfig -v后上述配置方可生效,在终端(ctrl+alt+t)中直接输入ldconfig -v,注意需要root权限(在终端中输入sudo su,然后回车输入密码),

    desktop:/usr/local/lib# ldconfig -v

    否则在程序运行后会出现如下找不到动态库的问题:

    ./test_main: error while loading shared libraries: liblog4cpp.so.5: cannot open shared object file: No such file or directory

    这样我们的log4cpp就已经成功装上了。

    3.3 安装gnuradio

    cd进入gnuradio源码所在文件夹, 由于两种方法获得的源码目录结构不同,使用方法一下载的输入以下命令, <>是对应的版本号:

    cd gnuradio-<版本号>

    使用方法二下载源码的输入以下命令,并切换到最新版本所在的分支:

    cd gnuradio
    git checkout <对应版本号所在的分支>

    后续操作一样,依次输入以下命令即可完成安装:

    mkdir build
    cd build
    cmake ../
    make
    sudo make install
    sudo ldconfig

    如果安装了log4cpp,则在安装gnuradio时运行完 cmake ../ 以后会有如下显示:

    -- ENABLE_GR_LOG set to ON.
    -- HAVE_LOG4CPP set to True.
    -- LOG4CPP_LIBRARIES set to /usr/local/lib/liblog4cpp.so.

    否则就是log4cpp没有安装好或者配置好,请返回log4cpp的安装过程检查。

    至此, UHD和GNURadio的安装已经全部完成,在终端输入以下命令即可打开gnuradio:

    sudo gnuradio-companion

    4. UHD和GNURadio重装与更新

    对于使用旧版UHD和GNURadio想更新到新版本,需要先卸载GNURadio和UHD

    4.1 卸载gnuradio, cd到build文件夹 cd gnuradio-<版本号>/build/ ,运行 sudo make uninstall 即可完成卸载。

    4.2 卸载UHD,cd到build文件夹 cd uhd-<uhd版本号>/build/ ,运行 sudo make uninstall 即可完成卸载。

    注意:先卸载gnuradio,在卸载uhd,不能先卸载uhd,以免gnuradio无法卸载。

    5. 疑难解答

    5.1 安装玩uhd后,运行 sudo uhd_usrp_probe 出现如下错误:

    Error: RuntimeError: Expected firmware compatibility number 7.0, but got 4.0:
    The firmware build is not compatible with the host code build.
    Please run:
    
     "/usr/local/lib/uhd/utils/uhd_images_downloader.py" 

    按照提示,运行以下命令, 下载image和fw固件即可,需要保持联网。

    sudo /usr/local/lib/uhd/utils/uhd_images_downloader.py

    等待更新完成之后,拔下USRP再重新插上,运行 sudo uhd_usrp_probe 即可。

    5.2 安装UHD时,运行 cmake ../ 出现如下错误提示:

    -- 省略若干行... ...
    -- Python checking for Mako templates 0.4 or greater
    -- Python checking for Mako templates 0.4 or greater - "import mako" failed
    -- 
    -- Configuring LibUHD support...
    --   Dependency Boost_FOUND = 1
    --   Dependency HAVE_PYTHON_PLAT_MIN_VERSION = TRUE
    --   Dependency HAVE_PYTHON_MODULE_MAKO = FALSE
    CMake Error at cmake/Modules/UHDComponent.cmake:51 (MESSAGE):
      Dependencies for required component LibUHD not met.
    Call Stack (most recent call first):
      CMakeLists.txt:279 (LIBUHD_REGISTER_COMPONENT)
    
    -- Configuring incomplete, errors occurred!
    See also "/home/hao/software/uhd-3.9.0/build/CMakeFiles/CMakeOutput.log".

    出现这个提示的主要原因是没有安装Mako,Building and Installing UHD from source 提到需要安装Mako

    Mako

    • Purpose: source code generation
    • Minimum Version: 0.5.0
    • Usage: build time (required)
    • Download URL: http://www.makotemplates.org/download.html
    • Alternative method: You can use pip or easy_install to install Mako from PyPi.

    Mako安装方法:

    1). 下载Mako源码,最低版本要求0.5.0:https://pypi.python.org/pypi/Mako/?

    2). 解压缩

    3). 执行以下命令:

    1 $ cd Mako-1.0.4/
    2 $ sudo python setup.py install

    Mako安装成功之后就可以安装UHD了。

    5.3 安装过程中出现如下错误:

    Traceback (most recent call last):
      File "setup.py", line 1, in <module>
        from setuptools import setup, find_packages
    ImportError: No module named setuptools

    需要先安装setuptools,运行以下命令即可

    sudo apt-get install python-setuptools

    5.4 解决UHD和GNURadio 更新/重装之后无法识别设备的问题,以及如何为USRP N210刷新firmware和FPGA

    首先确保更新了image 镜像,运行 sudo /usr/local/lib/uhd/utils/uhd_images_downloader.py 会自动联网下载。如果已经下载好就不需要再执行该命令了。

    默认刷 r3 版本,但是可以自定义刷 r4 版本,(r3版与r4版有何不同?)

    sudo /usr/local/bin/uhd_image_loader --args="type=usrp2,addr=192.168.10.2"

    自定义刷r4版

    sudo /usr/local/bin/uhd_image_loader --args="type=usrp2,addr=192.168.10.2" --fw-path="/usr/local/share/uhd/images/usrp_n210_fw.bin" --fpga-path="/usr/local/share/uhd/images/usrp_n210_r4_fpga.bin"

    5.5 如何修改USRP N210 IP地址

    USRP N210默认IP地址为192.168.10.2,当需要多台USRP设备时(如MIMO)才需要修改默认IP地址,注意修改IP地址之后,要断电才能重新识别新的IP地址。

    cd /usr/local/lib/uhd/utils
    sudo ./usrp2_recovery.py --ifc=eth0 --new-ip=192.168.10.2

    5.6 如何修改USRP name

    cd /usr/local/lib/uhd/utils
    ./usrp_burn_mb_eeprom --values="name=#2"

    5.7 升级新版本uhd和gnuradio安装依赖项失败

    低版本升级新版本uhd和gnuradio是需要更新依赖项, 如第一节所述, 出现类似以下错误提示:

    下列软件包有未满足的依赖关系:
    软件包aa : 依赖: 软件包bb 但是它将不会被安装
              依赖: 软件包cc 但是它将不会被安装
              ... ...
              依赖: 软件包xx 但是它将不会被安装
    E: 无法修正的错误, 因为您要求某些软件包保持现状, 就是它们破坏了软件包间的依赖关系

    解决方法是手动将所需的依赖项安装上, 假设提示aa依赖bb, cc, dd等,运行 sudo apt-get -y install bb 安装bb,此时可能又会提示软件包bb依赖软件包xx, 但是xx不会安装. 再运行 sudo apt-get -y install xx 安装xx。依次类推, 直到成功安装某个包之后, 再回过头来运行第一节所述的安装依赖项命令,直到成功安装所有依赖项为止。

    6. 参考链接

    1. Binary Installation

    2. Building and Installing UHD from source

    3. Building and Installing the USRP Open-Source Toolchain (UHD and GNU Radio) on Linux

  • 相关阅读:
    Linux Kernel 'b43'无线驱动本地特权提升漏洞
    Linux Kernel “dispatch_discard_io()”RO Disk Manipulation安全绕过漏洞
    Linux kernel ‘fill_event_metadata’函数资源管理错误漏洞
    Linux kernel ‘b43_request_firmware’函数格式化字符串漏洞
    phpcms 2007 onunload.inc.php update SQL注入漏洞
    出差到天津的计划
    Auguries of Innocence
    做一个东西要多久
    Wise Installation 9 的一个容易忽视的选项
    天津行总结路在嘴底下
  • 原文地址:https://www.cnblogs.com/moon1992/p/5781166.html
Copyright © 2020-2023  润新知