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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM