LinuxでのUSRP-X410開発環境の構築

更新しました Nov 22, 2022

環境

ハードウェア

  • USRP X410

ソフトウェア

  • FPGA Xilinx Compilation Tools

オペレーティング・システム

  • Linux

プログラミング言語

  • C++
  • Python

その他

  • Linux (ubuntu)
  • UHD
  • GNU Radio
  • RFNoC
  • Xilinx VIVADO

UHD 4.1.0.5 /4.2、 GNU-Radio 3.8.2.0、 RFNoC 4 を含んだ、Linux (ubuntu 20.04.3LTS ) でのUSRP-X410開発環境の構築と設定方法について説明します。

  1. ハードウェアの準備と機器接続

    1. まず、以下のハードウェアを準備します。
      1. USRP-X410
      2. PCI Express 3.0(Gen3) x16 拡張スロット、および最低16GB(推奨24GB以上)のメインメモリ(DRAM)を有するPC(Linuxをインストールしても良いもの)
      3. PCディスプレイ、キーボード、マウス(上記PCに接続可能なもの)
      4. X410用PCインタフェースキット(788216-01)内のPCIeイーサネットインタフェースカード:NVIDIA/Mellanox社製「型番MCX516A-CCAT」
      5. X410用PCインタフェースキット(788216-01)内のケーブル:1本または2本 (2本目を購入する場合は、NI型番788215-03)
      6. インターネットおよびDHCPサーバ(社内LANなど)への接続用LANケーブル:2本 
    2. PC(ii)のPCI-Express拡張スロットにインタフェースカード(iv)を装着し、PC(ii)に各周辺機器(iii)を接続します。
    3. PC(ii)に装着したインタフェースカード(iv)のQSFP28コネクタ(カードエッジ端子から遠いほうのコネクタ)とX410背面パネルのQSFP28コネクタ(左側のコネクタ)をインタフェースケーブル(v)で接続します。(2本目も接続する場合は、残りのコネクタ同士を接続します)
    4. PC(ii)とX410(i)のそれぞれをDHCPサーバーのあるLAN(インターネット接続環境)に、LANケーブル(vi)で接続します。(必要に応じて、スイッチング・ハブ等を利用してください)
    5. 最初は、次章以降でPCのセットアップから始めますので、PCのみに電源を入れて起動します。
 
  1. デスクトップPCにubuntu 20.04.3 LTSをインストール

  1. ご使用中のUbuntuのバージョンが 20.04.3でない場合は、必ず20.04.3 LTSを新規インストールまたは20.04.3 LTSにアップグレードしてください。新規インストールする場合は、以下の手順を参考にしてください。
  2. Ubuntu 20.04.3 LTSのインストールイメージ(ISOファイル)をダウンロードサイト Download Ubuntu Desktop | Download | Ubuntu からダウンロードします。
  3. 上記のインストールイメージファイルをDVD-Rなどのメディアに焼き、それを利用してデスクトップPCにUbuntu 20.04.3 LTSをインストールします。必要に応じて、解説サイト Ubuntu 20.04 LTSインストールガイド【スクリーンショットつき解説】 を参照してください。
  1. Perlスクリプトによるubuntu追加パッケージのインストール

    1. Ubuntu追加パッケージをインストールするために、添付のPerlスクリプト「Script_Install_Packages_Ubuntu_20.04.pl」を任意のディレクトリに保存し、保存したディレクトリに移動してから、そのスクリプトファイルを実行します。これ以降、本書に記載のコマンドを「右クリック >> コピー」後、端末ウィンドウ内で「右クリック >> 貼り付け」して、実行可能です。
cd <スクリプトファイルの保存ディレクトリ>
sudo perl Script_Install_Packages_Ubuntu_20.04.pl
3-1-a.png
途中で、下図のようなWiresharkに関する確認ダイアログが表示されますので、好みに応じてカーソルキーで選択してから<Enter>キーを押します。
3-1-b.png
さらにインストールが進むと、下図のようなMail Serverに関する確認ダイアログが表示されますので、好みに応じてカーソルキーで選択してから<Enter>キーを押します。
3-1-c.png
また、下図のようなMail Nameに関する確認ダイアログが表示されますので、好みに応じて入力してから<Enter>キーを押します。
3-1-d.png
  1. パッケージのインストールが完了すると、下図のように「Success, Done!」というメッセージが表示されます。
3-2-a.png
  1. 次のコマンドにより、各パッケージを最新のものにアップデートします。必要に応じて、Ettus社の解説サイト Building and Installing the USRP Open-Source Toolchain (UHD and GNU Radio) on Linux - Ettus Knowledge Base を参照してください。

sudo apt-get update
3-3-a.png
  1. また、前項のスクリプト内ではインストールされないものを含む以下のパッケージを、次のコマンドにより、インストールします。(下記コマンドのコピー&貼り付けを推奨)
sudo apt-get -y install autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool fort77 g++ gir1.2-gtk-3.0 git gobject-introspection gpsd gpsd-clients inetutils-tools libasound2-dev libboost-all-dev libcomedi-dev libcppunit-dev libfftw3-bin libfftw3-dev libfftw3-doc libfontconfig1-dev libgmp-dev libgps-dev libgsl-dev liblog4cpp5-dev libncurses5 libncurses5-dev libpulse-dev libqt5opengl5-dev libqwt-qt5-dev libsdl1.2-dev libtinfo5 libtool libudev-dev libusb-1.0-0 libusb-1.0-0-dev libusb-dev libxi-dev libxrender-dev libzmq3-dev libzmq5 ncurses-bin python3-cheetah python3-click python3-click-plugins python3-click-threading python3-dev python3-docutils python3-gi python3-gi-cairo python3-gps python3-lxml python3-mako python3-numpy python3-numpy-dbg python3-opengl python3-pyqt5 python3-requests python3-scipy python3-setuptools python3-six python3-sphinx python3-yaml python3-zmq python3-ruamel.yaml swig wget
3-4-a.png
  1. 上記のインストールが完了したら、ホストPCを一旦シャットダウンした後、再度ホストPCを起動します。いずれのエラーも無い状態で上記インストールが完了できたら、次章に進みます。

 

  1. CMakeのバージョン確認およびインストール

  1. CMakeのバージョンが3.8よりも古い場合はcmakeコマンド実行時にエラーとなりますので、本章の手順によりバージョンを確認し、必要に応じて解説サイト「Ubuntu 18.04 に Cmake の Latest Release をインストールする 」や「Linuxに特定のバージョンのcmakeをインストール 」を参照して最新版にアップデートしてください。
 
  1. 次のコマンドによりCMakeのバージョンを確認します。
cmake --version
4-1-a.png
  1. 万が一、前項のバージョン確認でCMakeが3.8より古いバージョンだった場合は、以降の手順により、CMakeをアップデートします。バージョンが3.8以上の場合は、5章に進みます。
まず次のコマンドにより、既存の古いCMakeを削除します。
 
cd $HOME
sudo apt remove cmake
4-2-a.png
  1. 次のコマンドにより、cmakeダウンロードサイト から CMake のソース 「Unix/Linux Source (has \n line feeds)」 の最新版(以下は最新版がcmake-3.22.1.tar.gzの場合)をダウンロードします。
wget https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1.tar.gz
4-3-a.png
  1. 次のコマンドにより、ダウンロードしたファイルを解凍し、ビルドのための事前設定を実行します。
tar -zxvf cmake-3.22.1.tar.gz
cd cmake-3.22.1/
./bootstrap
4-4-a.png
万が一、bootstrap実行中に下図のようなエラーが発生した場合は、OpenSSL Development Packageを以下の手順によりインストールする必要があります。エラーが発生しなかった場合は、次項に進みます。
4-4-b.png
次のコマンドにより、OpenSSL Development Packageをインストールします。
 
sudo apt-get install libssl-dev
4-4-c.png
インストールが完了したら、先ほどの手順に戻り、「./bootstrap」コマンドを実行します。
 
  1. 次のコマンドにより、CMakeをビルドします。
make
4-5-a.png
  1. 続いて次のコマンドにより、CMakeをインストールします。
sudo make install
4-6-a.png
  1. Linux環境設定ファイルへ環境変数を登録します。次のコマンドにより、環境設定ファイル「.bashrc」にCMakeのPathを追加します。下記の「’」(シングルクォーテーション)2個を忘れずに付けてください。
echo 'export PATH=$HOME/cmake-3.22.1/bin/:$PATH' >> $HOME/.bashrc
 
  1. 以下の要領で、環境設定ファイルをviエディタで開き、正しく追加されたか確認します。
次のコマンドにより、viエディタで環境設定ファイルを開きます。
 
vi $HOME/.bashrc
4-8-a.png
<G>キー(<Shift-g>)を押して、ファイルの最終行に移動して確認します。
4-8-b.png
万が一、正しく追加されていなかった場合には、<i>キーで編集モードに移行することによって、ファイルを編集できます。編集した場合は<ESC>キー >> <:wq>と入力することによって、上書き保存後にviエディタを終了します。編集しなかった場合は <:q> と入力して、viエディタを終了します。
 
  1. さらに次のコマンドにより、その環境設定ファイルをsourceします。もしくは、いったんTerminalウィンドウを閉じてから、再度Terminalを開きます。

source $HOME/.bashrc
 
最後に、次のコマンドによりCMakeのバージョンを確認します。

cmake --version
4-9-a.png
 
  1. UHD最新版のインストール (例:4.1.0.5の場合) [v4.2以上を推奨]

    1. UHD/GNU RadioのOpen SourceホストであるGitHubサイト GitHub - EttusResearch/uhd at UHD-4.1 のソースコード・リポジトリからソースコードをクローンして、UHD 最新版をインストールします。
こうすることによって、別々のディレクトリに異なるバージョンをインストールでき、バージョンを切り替えながら使用することが可能になります。まずは、USRPデバイスがホストPCに接続されていない、もしくはUSRPデバイスの電源がオフになっていることを確認します。
  1. まず、次のコマンドにより、ソースコード・リポジトリをクローンするためのディレクトリを作成し、そのディレクトリに移動してからリポジトリをクローンします。
mkdir $HOME/git
cd $HOME/git
git clone https://github.com/EttusResearch/uhd
cd uhd
5-2-a.png
  1. クローンしたリポジトリから最新バージョンをチェックアウトするために、いったんリポジトリ内のバージョンリストを表示して確認します。
git tag -l
5-3-a.png
途中、表示が止まる箇所がありますので、「(END)」と表示されるまで、スペースキーで続きを表示させます。最新版のバージョン名(「-rc*」付きのものより、付いてないほうが新しいバージョン)を確認したら、コマンド<:q>で表示を終了します。
 
  1. 上記リスト中の(「-rc*」付きのものより、付いてないほうが新しいバージョン)最新バージョン名(以下、例としてv4.1.0.5)を確認したら、次のコマンドにより、そのバージョンをチェックアウトします。ちなみに、下図内のコメントにUHDバージョン切り替え方法が表示されています。
git checkout v4.1.0.5
5-4-a.png
 
  1. 次のコマンドにより、「host」ディレクトリ下に「build」ディレクトリを作成し、そのディレクトリに移動してからコンパイル(cmake)します。
cd host
mkdir build
cd build
cmake ..
5-5-a.png
万が一、シェルのPATHが「/usr/bin」の前に「/bin」が指定されているような場合、上記のcmakeコマンドを実行しても、下図のようなエラーを表示して失敗します。
************************************************************************************
 --   Boost include directories: /include
 --   Boost library directories: /lib/x86_64-linux-gnu
 CMake Error in lib/CMakeLists.txt:
   Imported target "Boost::chrono" includes non-existent path "/include"
   in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:
   * The path was deleted, renamed, or moved to another location.
   * An install or uninstall procedure did not complete successfully.
   * The installation package was faulty and references files it does not provide.
************************************************************************************
このような場合には、次の3つのうちのいずれかのコマンドにより、cmakeを実行してください。
     i. /usr/bin/cmake ..
     ii. PATH=/usr/bin:$PATH cmake ..
     iii. cmake -DCMAKE_FIND_ROOT_PATH=/usr ..
 
  1. さらに次のコマンドにより、ビルド(make)します。
make -j4
5-6-a.png
  1. Makeが完了したら、次のコマンドにより、UHDをインストールします。
sudo make install
 
インストールが完了したら、次のコマンドを実行します。

sudo ldconfig
5-7-a.png
  1. 次のコマンドにより、UHD FPGAイメージをダウンロードします。
sudo uhd_images_downloader
5-8-a.png​​​​​
 
  1. GNU Radio 3.8.2.0のインストール

    1. GNU Radio 3.8.2.0をインストールします。まず次のコマンドにより、GitHubサイトのソースコード・リポジトリからソースコードをクローンします。
cd $HOME/git
git clone --recursive https://github.com/gnuradio/gnuradio
6-1-a.png
  1. 次のコマンドにより、ビルド用のディレクトリを作成してからクローンしたソースコードをチェックアウトします。ちなみに、下図内のコメントにGNU Radioバージョン切り替え方法が表示されています。
cd gnuradio
mkdir build
cd build
git checkout v3.8.2.0
6-2-a.png
 
  1. 次のコマンドにより、サブモジュールをアップデートします。
git submodule update --init
6-3-a.png
  1. 次のコマンドにより、コンパイル(cmake)します。
cmake ../
6-4-a.png
  1. 次のコマンドにより、ビルド(make)します。
make -j4
6-5-a.png
  1. 次のコマンドにより、GNU Radioをインストールします。
sudo make install
6-6-a.png
最後に、上図のように次のコマンドを実行します。
 
sudo ldconfig
 
  1. RFNoC 4のインストール

    1. まず次のコマンドにより、GitHubサイトのリポジトリからソースコードをクローンします。
cd $HOME/git
git clone http://github.com/EttusResearch/gr-ettus.git
7-1-a.png
  1. 次のコマンドにより、ビルド用のディレクトリを作成してからコンパイル(cmake)します。
cd gr-ettus
mkdir build
cd build
cmake -DENABLE_QT=True -DCMAKE_BUILD_TYPE=Debug ../
7-2-a.png
  1. 次のコマンドにより、ビルド(make)します。
make -j6
7-3-a.png
  1. 次のコマンドにより、RFNoCをインストールします。
sudo make install
7-4-a.png
最後に、上図のように次のコマンドを実行します。
 
sudo ldconfig
 
  1. 環境設定ファイルの編集

    1. Linux環境設定ファイル「.bashrc」の最終行に環境変数を追加します。次のコマンドにより、環境設定ファイルを開きます。
vi $HOME/.bashrc
 
<G>キー(<Shift-g>)を押してファイルの最終行に移動してから、<a>キーで追加編集モードに移行し、カーソルを行末に移動後、<Enter>キーで改行してから、下記2行分のコピー&貼り付けを実行します。
 
export PYTHONPATH=/usr/local/lib/python3/dist-packages:/usr/local/lib/python3.7/site-packages:/usr/local/lib/python3/dist-packages:$PYTHONPATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
8-1-a.png
編集が完了したら、<ESC>キー >> <:wq>と入力することによって、上書き保存後にviエディタを終了します。上書き保存しない場合は、<:q>と入力してviエディタを終了します。
 
  1. さらに以下のコマンドにより、その環境設定ファイルをsourceします。もしくは、いったんTerminalウィンドウを閉じてから、再度Terminalを開きます。
source $HOME/.bashrc
8-2-a.png
 
  1. インストールしたGnuRadioとUHDのバージョン確認

    1. 次のコマンドにより、インストールされているGnuRadioのバージョンなどを確認します。
gnuradio-config-info --version
gnuradio-config-info --prefix
gnuradio-config-info --enabled-components
 
また、次のコマンドにより、インストールされているUHDのバージョンを確認します。

uhd_usrp_probe --version
9-1-a.png
各バージョンが上図のようになっていることを確認します。
 
  1. また次のコマンドにより、GNU RadioライブラリとRun-timeモジュールが正しくインストールされたか確認できます。そのコマンドを実行して、PCのスピーカーから音が出るのを確認後、<ctrl-C>キーで終了します。
python $HOME/git/gnuradio/gr-audio/examples/python/dial_tone.py
 
スピーカーから音が出ることの確認を完了したら、次のコマンドを実行します。

gnuradio-companion
9-2-a.png
確認が完了したら、gnuradio-companionウィンドウのツールメニュー File >> Quit を選択して終了します。
 
  1. X410のFile Systemsのアップデート

  1. まず次のコマンドにより、ホストPCが接続しているネットワーク内のUHD対応デバイス(すなわちX410)情報を表示させて確認します。必要に応じて、Ettus社のマニュアルサイト USRP Hardware Driver and USRP Manual: USRP X4x0 Series (ettus.com) を参照してください。
uhd_find_devices
uhd_usrp_probe
10-1-a.png
新品X410などの場合、この際に上図のような「MPMDエラー」(X410 File Systemsバージョン不整合エラー)が表示されますので、次項以降の手順により、File Systemsをアップデートします。上図のエラーが発生しなかった場合には、本章の手順を省略できます。
 
  1. X410に電源を入れるために一旦ホストPCをシャットダウンし、X410の電源を入れてから、ホストPCを起動します。
  1. 簡単な方法として、最新のFile Systemsにアップデートするために次のコマンドを使用できます。
usrp_update_fs -t master
 
 
上記コマンドでアップデートが成功した場合は、rebootコマンドを実行してX410を再起動してから、10.6章に進んでください。ただし、下図のように、上記コマンドを認識せずにエラーとなる場合がありますので、その場合は、次項以降の手順を実施してください。
10-3-a.png
File Systemsが古すぎると上記コマンドをサポートしていない場合がありますので、その場合は、次項以降に示すように、Menderを使用してアップデートしてください。
 
  1. まず、次のコマンドにより、X410のIPアドレスを確認します。
uhd_find_devices
10-4-a.png
  1. 次のコマンドにより、SSHアクセスしてX410にリモートログインします。
ssh root@<上記で確認したIPアドレス> (rootユーザ@X410のIPアドレス)
10-5-a.png
途中の質問に対しては「yes」と入力します。
 
  1. 次のコマンドにより、各USRPモデルのMender artifactイメージファイルのダウンロードURLを確認します。
uhd_images_downloader -t mender -t x4xx -l
10-6-a.png
リスト表示の中に「x4xx_***」があることを確認したら、次のコマンドにより、Manifestファイルをダウンロードします。
 
wget https://raw.githubusercontent.com/EttusResearch/uhd/master/images/manifest.txt
 
その後、次のコマンドにより、ダウンロードしたManifestファイルを適用してMender artifactイメージファイルをダウンロードします。(初期状態では「/usr/share/uhd/images」に保存されます)
 
uhd_images_downloader -t mender -t x4xx -m manifest.txt
10-6-b.png
途中の質問に対しては「y」と入力します。また、単なる「uhd_images_downloader -t mender -t x4xx」コマンドのみでは、工場出荷時のバージョンしかダウンロードできないのでご注意ください。
 
  1. 次のコマンドにより、ダウンロードしたMender artifactイメージファイルをインストールします。
mender install /usr/share/uhd/images/usrp_x4xx_fs.mender
10-7-a.png
アップデート完了までには少々時間が掛かります。万が一、アップデート後のファイルシステムから「MB CPLD」の更新を要求された場合は、次のステップに進む前に、17章またはEttus社サイト「Updating the Motherboard CPLD 」を参照して実行してください。上図のように、再起動が必要な旨のメッセージ表示を確認したら、次のコマンドによりX410を再起動します。ただし、17章または上記リンクを実行する前に弊社担当者に連絡して確認することをお薦めします。

reboot
 
  1. 再起動完了まで1~2分待ち、X410が正常に起動したことを「uhd_find_devices」コマンドで確認します。万が一、X410が検出できない場合は、ホストPCを再起動してから再試行してください。
10-8-a.png
再度、ホストPCからSSHアクセスでX410にリモートログインしますが、この際に下図のような警告メッセージが表示されるはずです。警告が表示されない場合には、次項に進んでください。
 
ssh root@<上記で確認したIPアドレス>  (ユーザ名@X410のIPアドレス)
10-8-b.png
そこで、警告メッセージ内で案内されているとおり、次のコマンドにより、保存されている暗号keyを削除します。警告メッセージ内の「remove with:」の次の行をコピー&貼り付けしてください。
 
ssh-keygen -f "<メッセージに表示どおりのPATH>" -R "<X410のIPアドレス>"
 
その後あらためて、ホストPCからSSHアクセスでX410にリモートログインします。
 
ssh root@<上記で確認したIPアドレス>  (ユーザ名@X410のIPアドレス)
10-8-c.png
  1. 次のコマンドにより、アップデートをコミットします。
mender commit
10-9-a.png
  1. ちなみに、次のコマンドにより、現在インストールされているMender Artifact情報を表示します。
cat /etc/mender/artifact_info
 
確認が完了したら、以下のコマンドにより、sshリモートログインを終了します。
 
exit
10-10-a.png
  1. 最後に、次のコマンドにより、ホストPCが接続しているネットワーク内のUHD対応デバイス(すなわちX410)情報を表示させて最終確認します。
uhd_find_devices
uhd_usrp_probe

 
表示されたSerial番号により、目的のX410がデバイス検出されていることを確認します。
10-11-a.png
 
  1. PCネットワークポート[QSFP28(10GE)ポート]の設定

    1. 以下の手順により、Linux (ubuntu) PCに装着したX410接続用インタフェースカードのQSFP28(10GE)ポートを設定します。まず、ubuntuデスクトップの右上隅にある「▼」マークをクリック >>「設定」を選択します。
11-1-a.png
  1. 表示された設定画面の左ペインにある「ネットワーク」を選択し、右ペインにある「Ethernet(enp1s0f0np0)」欄の「接続中-10000Mb/s」表示の右端にある設定(歯車)アイコンをクリックします。
11-2-a.png
  1. 次に表示された設定画面で、「IPv4」タブをクリック >>「IPv4メソッド」欄で「手動」を選択 >>「アドレス」欄に「192.168.10.1」を入力 >>「ネットマスク」欄に「255.255.255.0」を入力します。
11-3-a.png
  1. 同じ設定画面で、「Identity」タブをクリック >> 好みにより「名前」欄に任意の文字列を入力 >>「MACアドレス」欄のプルダウンメニューから「(enp1s0f0np0)」(ポート0側)を選択 >>「MTU」欄に「9000」と入力します。
11-4-a.png
  1. ポート0側のみを使用する場合には以上ですが、ポート1側も設定する場合には、上記11.2章において「Ethernet(enp1s0f1np1)」欄のほうを選択し、上記11.3章では「アドレス」欄に「192.168.20.1」(その他は同じ)を入力し、11.4章では「MACアドレス」欄で「(enp1s0f1np1)」(ポート1側)を選択(「名前」は別名でその他は同じ)します。
 
  1. XilinxのVIVADOコンパイラの入手とインストール

 

  1. Xilinx Vivado 2019.1 HLx edition + Update-1 (Vivado 2019.1.1) をインストール済みの場合は、以降の手順を省略できます。また、事前にXilinxのアカウント情報(User ID、Password)をご用意ください。無い場合は、あらかじめXilinx社のWebサイトでアカウントを作成してから、本章の手順を実行してください。
  1. 下記サイトの「2019.1」アーカイブリンク より、Xilinx Vivado 2019.1 HLx editionのLinux用自己解凍型ウェブインストーラ(BIN - 115.05 MB)をダウンロードします。
  1. ダウンロードファイルの保存ディレクトリにcdコマンドで移動し、次セクション以降に示すようにXilinx Vivadoをインストールします。必要に応じて、解説サイト VivadoをLinux (Ubuntu) にインストール を参照してください。 

cd <インストーラファイル保存ディレクトリ>

  1. 次のコマンドにより、インストールを開始します。

sudo chmod +x Xilinx_Vivado_SDK_Web_2019.1_0524_1430_Lin64.bin
sudo ./Xilinx_Vivado_SDK_Web_2019.1_0524_1430_Lin64.bin

12-3-a.png

上記のコマンドを実行すると、下図のような確認ダイアログが表示されますので、<Continue>ボタンをクリックします。

   12-3-b.png

その背景にある下図の画面では<Next>をクリックします。

12-3-c.png

  1. 下図のような画面が表示されたら、Xilinxのアカウント情報(User ID、Password)を入力します。その下にあるチェック項目はデフォルトの「Download and Install Now」を選択します。

12-4-a.png

入力を完了したら、<Next>をクリックします。

 

  1. 次に、下図のようにライセンスなどの合意を求められるので、すべて<Agree>をチェックします。

12-5-a.png

完了したら、<Next>をクリックします。

 

  1. 次に表示されるインストールエディションの選択画面では、1番目のWebPACKではなく、2番目の「Design Edition」を選択します。完了したら、<Next>をクリックします。

12-6-a.png

  1. 次に表示される画面で、インストールするツール類を選択できますが、デフォルト設定で問題ありません。<Next>をクリックします。

12-7-a.png

  1. 次に表示される画面ではインストール先のディレクトリを選択できますが、デフォルトの「/tools/Xilinx」で問題無ければ、そのままインストールを開始します。(約80分)

下図の画面で<Next>をクリックします。

12-8-a.png

下図の確認ダイアログで<Yes>をクリックし、その背景画面では<Install>をクリックします。

  12-8-b.png
12-8-c.png

  1. インストールが完了すると下図のような画面が表示されますので<OK>ボタンをクリックします。

12-9-a.png

その後、下図のようなLicense Manager選択画面が表示されますが、後述の15章で説明するとおり、社内ネットワーク上にあるライセンスサーバー(NI社内であれば本社にあります)を使用する場合は、ここでは何もせずにウィンドウ右上にある<×>ボタンによりウィンドウを閉じます。

社内ネットワーク上にXilinx用のライセンスサーバーが無い場合には、選択肢の中から必要なものを選択して、Xilinxと契約します。(あとからでもLicense Managerを起動して契約可能です。)

12-9-b.png

 

  1. Cable Driverのインストール

    1. ボードもしくはプログラミングケーブル用のデバイスドライバはインストールされていませんので、これらは個別にインストールする必要があります。/tools/Xilinx にインストールした場合、次のコマンドによりインストールします。

cd /tools/Xilinx/Vivado/2019.1/data/xicom/cable_drivers/lin64/install_script/install_drivers/
sudo ./install_drivers

13-1-a.png

 

  1. VIVADOの環境ファイル設定

    1. このままではTerminal上でvivadoと入力してもvivadoは立ち上がりませんので、次のコマンドにより、Linux環境設定ファイルに環境変数を追加します。

cd $HOME
echo source /tools/Xilinx/SDK/2019.1/settings64.sh >> $HOME/.bashrc

14-1-a.png

正しく追加されたか確認するために、次のコマンドにより、viエディタで表示してみます。
 

vi $HOME/.bashrc
 

<G>キー(<Shift-g>)を押して、ファイルの最終行に移動して確認します。

14-1-b.png

万が一、正しく追加されていなかった場合には、<i>キーで編集モードに移行することによって、ファイルを編集できます。編集した場合は <ESC>キー >> <:wq> と入力することによって、上書き保存後にviエディタを終了します。編集しなかった場合は <:q> と入力して、viエディタを終了します。

 

  1. さらに以下のコマンドにより、その環境設定ファイルをsourceします。もしくは、いったんTerminalウィンドウを閉じてから、再度Terminalを開きます。

source $HOME/.bashrc

14-2-a.png
 

 

  1. Xilinxライセンスサーバーへのアクセス設定

    1. 社内ネットワークの場合、以下の要領で設定します。まず、次のコマンドによりpingが通ることを確認します。

ping <社内License Serverアドレス>

15-1-a.png

  1. 確認したら、次のコマンドにより、Linux環境設定ファイルに環境変数を追加します。

echo export XILINXD_LICENSE_FILE=2100@ <社内License Serverアドレス> >> $HOME/.bashrc
 

正しく追加されたか確認するために、次のコマンドにより、viエディタで表示してみます。
 

vi $HOME/.bashrc

15-2-a.png

<G>キー(<Shift-g>)を押して、ファイルの最終行に移動して確認します。

15-2-b.png

万が一、正しく追加されていなかった場合には、<i>キーで編集モードに移行することによって、ファイルを編集できます。編集した場合は <ESC>キー >> <:wq> と入力することによって、上書き保存後にviエディタを終了します。編集しなかった場合は <:q> と入力して、viエディタを終了します。

 

  1. さらに以下のコマンドにより、その環境設定ファイルをsourceします。もしくは、いったんTerminalウィンドウを閉じてから、再度Terminalを開きます。

source $HOME/.bashrc
 

  1. Xilinx VIVADO 2019.1のアップデート

    1. 9.1章で実施した「Xilinx Vivado 2019.1 HLx edition」のダウンロードと同様の要領(同じXilinxのWebページ )で、「HLx Edition: アップデート 1 - 2019.1」(9.29GB)を任意のディレクトリにダウンロード(他のアップデート2,3もありますが、1のみ)します。ダウンロードしたディレクトリに移動した後、そのファイル(***.tar.gz)を解凍します。

cd <ダウンロードしたディレクトリ>
sudo tar -zxvf Xilinx_Vivado_SDx_Update_2019.1.1_0629_0743.tar.gz

16-1-a.png

解凍したファイル群の中の「xsetup」ファイルがあるディレクトリに移動し、次のコマンドにより、そのファイルを実行します。

cd Xilinx_Vivado_SDx_Update_2019.1.1_0629_0743/
sudo ./xsetup

16-1-b.png

  1. 上記コマンドを実行すると、下図のような画面が表示されますので、<Next>ボタンをクリックしてアップデートを開始します。

16-2-a.png

すると、下図のようなアップデート概要確認画面が表示されますので、<Install>ボタンをクリックし、次に表示される確認ダイアログでは、ほかに起動しているXilinxアプリケーションが無いことを確認のうえ、<Continue>ボタンをクリックしてインストールを開始してください。

16-2-b.png

  1. インストールが完了すると、下図のような画面が表示されますので、<OK>ボタンをクリックして完了します。

16-3-a.png

 

  1. Motherboard CPLDのアップデート(必要な場合のみ)

  1. 本章のMotherboard CPLDアップデートは、万が一、適切に実行されなかった場合には、デバイスが正常に動作しなくなりますので、ご注意ください。実行する前に弊社担当者にご確認ください。また必要に応じて、Ettus社のマニュアルサイト USRP Hardware Driver and USRP Manual: USRP X4x0 Series (ettus.com) を参照してください。
  1. X410とホストPCを接続し、X410の電源を入れてからホストPCを起動します。起動が完了したら、次のコマンドにより、X410がホストPCで検出されることを確認します。

uhd_find_devices

  1. 通常FileSystemsは、「/lib/firmware/ni/cpld-x410.rpd」の場所にCPLDファイルを置いています。よって、新しいFileSystemsをインストール中に本章を参照している場合には、新しいFirmwareにアクセスするために、次のコマンドにより、ホストPCからSSHアクセスでX410にリモートログインしてから、新しいFileSystemsをmountする必要があります。

ssh root@<X410のIPアドレス> (ユーザ名@X410のIPアドレス)
mkdir /workdir
mkdir /mnt/other
mount /dev/mmcblk0p3/mnt/other
cp /mnt/other/lib/firmware/ni/cpld-x410.rpd /workdir
umount /mnt/other

上記の2行目について、FileSystemsによっては「/dev/mmcblk0p2」の場合もあります。

  1. 次のコマンドにより、Motherboard CPLDをアップデートします。

x4xx_update_cpld --file=/workdir/cpld-x410.rpd

FileSystemsのバージョンが古いと上記のコマンドを認識しない場合があります。その場合は、 USRP X410 Getting Started Guide - Ettus Knowledge Base を参照のうえ、まずFileSystemsをアップデートしてください。

  1. Motherboard CPLDのアップデートが完了したら、アップデートを有効化するために、以下の手順によりX410を再起動します。次のコマンドにより、X410をシャットダウンします。

shutdown -h now

X410がシャットダウンしたら、電源プラグをコンセントから抜き、ホストPCも一旦シャットダウンします。その後、X410の電源を入れてからホストPCを起動します。
 

  1. FPGAイメージのアップデート(必要な場合のみ)

  1. X410内部のFPGAイメージを別のものに書き換える場合は、上述のセットアップを実行した後に、本章の手順に従って書き換えてください。必要に応じて、Ettus社のマニュアルサイト USRP Hardware Driver and USRP Manual: USRP X4x0 Series (ettus.com) を参照してください。
  1. 次のコマンドにより、X410内部FPGAのイメージ(.bitファイル)を書き換えることができます。

uhd_image_loader --args type=x4xx,addr=<X410のIPアドレス> --fpga-path <.bitファイルの保存場所>
 

  1. ちなみに、サンプルbitファイルが、ホストPC内の以下の場所にあらかじめ保存されています。

/usr/share/uhd/images/

ただし、UHDのインストールの仕方によっては別の場所の場合もあります。さらに、上記のサンプルbitファイルの最新版をダウンロードする場合には、ホストPCのTerminal(端末)上で、次のコマンドを実行します。

cd /usr/share/uhd/images/
uhd_images_downloader

 

  1. またX410内部にも、出荷時に下表のようなサンプルbitファイルがいくつか保管されています。
FPGA Image FlavorQSFP28 Port 0 InterfaceQSFP28 Port 1 Interface
 X1_100 1x 10 GbE (Lane 0) N/C
 X4_{100, 200} 4x 10 GbE (All Lanes) N/C
 XG_{100, 200} 1x 10 GbE (Lane 0) 1x 10 GbE (Lane 0)
 X4C_{100, 200} 4x 10 GbE (All Lanes) 100 GbE
 C1_400 100 GbE N/C
 CG_{100, 400} 100 GbE 100 GbE

X410内部FPGAイメージを上表のいずれかのbitファイルに書き換える場合には、次のコマンドを実行します。(例:4x 10GbE, 200MHz-BWの場合)

ssh root@{X410のIPアドレス} (ユーザ名@X410のIPアドレス)
uhd_image_loader --args type=x4xx,mgmt_addr=127.0.0.1,fpga=X4_200

 

アナログ帯域幅によって使用可能なマスタークロックレートが決まります。UHD 4.1では、X4_200イメージだけがUHDに同梱されており、245.76MHzまたは250MHzのマスタークロックレートを使用できます。他のイメージは実験的(非対応)なものです。また、USRP X310や他の第3世代USRPデバイスとは異なり、FPGAイメージは、QSFP28コネクタの構成方法だけでなく、どのマスタークロックレートが利用可能かもエンコードされています。これは、データ・コンバータの構成がFPGAイメージの一部であるためです(X410のADC/DACは、FPGAと同じダイ上にあります)。上表の「FPGA Image Flavor」は、アンダースコアで区切られた2つの短い文字列で構成されています。例えば、X4_200は、4x 10GbEを含み、200MHzのアナログ帯域幅を処理できるものです。最初の 2 文字は、QSFP28 ポートの構成を表します。「X」は10GbEを、「C」は100GbEを表します。

 

次のステップ