USRPを使い始める話(1)でこの投稿の構成を以下のように示しました.
- MatlabでUSRPを動かす
- USRPのファームウェア及びFPGAイメージのアップデート(前編)
- USRPのファームウェア及びFPGAイメージのアップデート(後編)
前回はMatlabでUSRPを動かしてみようかなと思ったら,ファームウェアとFPGAイメージのアップデートを要求されたところで終わりました.
今回は2つ目のUSRPのファームウェア及びFPGAイメージのアップデート(前編)ついて書きたいと思います.前編ではファームウェアとFPGAイメージのアップデートをするために必要なUHDというツールのインストールについて書いていきます.
2. USRPのファームウェア及びFPGAイメージのアップデート(前編)
USRPのファームウェア及びFPGAイメージのアップデートを行うには,UHD(Usrp Hardware Driver)が必要です.UHDは,USRPをホストPCから操作することを可能にするドライバです.ホストPCのOSについては,Mac, Windows, Linuxが対応しています.私はMatlabをWindowsで使っているので,WindowsにUHDをインストールしたいところですが,Windowsの環境構築はやや面倒くさそうなので,今回はLinux(Ubuntu)に環境を構築していきます.
Linuxの環境構築方法はこちらのEttusのKnowledge Baseを参考にしました.下記の手順もほぼこれの日本語訳のようなものです.このサイトによると,Linuxは実機環境である必要はなくVMが使えます.ありがたいですね.
UHDのインストール
上述した通り,私はubuntuにインストールしていきますので,以下はUbuntでの手順になります.バージョンは14.04と16.04については試していますが,この二つは依存関係のインストールの際若干必要になるパッケージが異なるので注意してください.ここでは14.04にインストールした時の記録を書いていきます.
必要なパッケージのインストール
UHDに必要なパッケージのインストールです.以下のコマンドを実行.
1 2 |
$ sudo apt-get update $ 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 |
UHDのビルドとインストール
UHDのソースコードをダウンロードして,ビルドとインストールを行います.
まずはソースコードをビルドする時に使うディレクトリを作ります.
1 2 3 |
$ cd $HOME $ mkdir workarea-uhd $ cd workarea-uhd |
次に,gitのリポジトリをクローンし,クローンしたディレクトリに移動します.
1 2 |
$ git clone https://github.com/EttusResearch/uhd $ cd uhd |
次に,ビルドしたいUHDのバージョンを選択します.git的に言うとcheckoutします.以下のコマンドによってリリースしてるバージョンの一覧を確認し,checkoutします.
1 2 3 4 5 6 7 |
$ git tag -l ... release_003_009_004 release_003_009_005 release_003_010_000_000 $ git checkout release_003_010_000_001 |
次にhostディレクトリに移動し,buildのためのディレクトリを生成します.
1 2 3 |
$ cd host $ mkdir build $ cd build |
次に,Makefileを作るためにCMakeを実行します.
1 |
$ cmake ../ |
次に,Makeを実行してUHDをビルドします.
1 |
$ make |
次に,以下のコマンドを実行することできちんとビルドの工程が完了したか確認できます.
1 |
$ make test |
次にUHDをインストールします.
1 |
$ sudo make install |
次にシステムの共有ライブラリのキャッシュをアップデートします.
1 |
$ sudo ldconfig |
最後に,パスを通します.
1 |
$ export LD_LIBRARY_PATH=/usr/local/lib |
以上でUHDのインストールが完了します.動作確認はuhd_find_devicesコマンドで確認するのが良いでしょう.接続されているUSRPの情報を表示してくれます.今は何も繋いでいないはずなので,以下のように表示されるでしょう.
1 2 3 4 |
$ uhd_find_devices ... No UHD Devices Found |
このUHDを使うことで,USRPのファームウェアとFPGAイメージのアップデートをすることができます.
アップデート方法は次回にしたいと思います.