1001001

73。CTFのWrite-upや技術的な備忘録を書きとめたいです。

USRPを使い始める話(3)

            USRPを使い始める話(1)でこの投稿の構成を以下のように示しました.
  1. MatlabでUSRPを動かす
  2. USRPのファームウェア及びFPGAイメージのアップデート(前編)
  3. USRPのファームウェア及びFPGAイメージのアップデート(後編)

前回はUSRPの各種操作に必要なUHD(Usrp Hardware Driver)のインストールを行いました.

今回はUSRPのファームウェア及びFPGAイメージのアップデート(後編)ということで本題に入っていきます.

3. USRPのファームウェア及びFPGAイメージのアップデート(後編)

というわけで,(1)でMatlab実行時に促された指示を実際に実行してみます.(実は,UHDのuhd_usrp_probeを実行してもMatlabの時に出たエラーと対処法が表示されるはずです.)

その前にまずUSRPの接続確認をします.UHDのuhd_find_devicesを使いましょう.No UHD Devices Foundと表示されずにIPやデバイス名が表示されればOKです.もし表示されない場合は(1)で行ったネットワークの設定を再度見直したり,きちんとクロスケーブルで接続しているか,USRPの電源が入っているかを確認しましょう.

接続確認ができたら以下のコマンドを実行します.

$ sudo uhd_images_downloader
Images destination : /usr/local/share/uhd/images
...
Images successfully installed to: /usr/local/share/uhd/images

$ sudo uhd_image_loader args="type=usrp2, addr=192.168.10.2"
...
Unit: USRP N210 r4 (4095, 192.168.10.2)
Firmware image: ...
-- Erasing firmware image...successful.
-- Writing firmware image...successful.
-- Verifying firmware image...successful.
FPGA image: ...
-- Erasing FPGA image...successful.
-- Writing FPGA image...successful.
-- Verifying FPGA image...successful.

上手くいくとこのように全ての項目がsuccessfulとなる.その後一度USRPの電源を抜いてもう一度指し直せば,ファームウェアFPGAイメージのアップデートが完了し,正常にUSRPを使うことができるようになる.

上手くいかない場合

私の場合はこれでは上手くいきませんでした.全てにおいてsuccessfulと表示されますが,一向にアップデートをしろという旨のエラーが出続けました.そこで,代わりに以下のコマンドを実行します.

$ usrp_n2xx_net_burner --addr=192.168.10.2 --fw=/usr/share/uhd/images/usrp_n210_fw.bin
$ usrp_n2xx_net_burner.py --addr=192.168.10.2 --fpga=/usr/share/uhd/images/usrp_n210_r4_fpga.bin

これらは,uhd_image_loaderと同じ処理をするコマンドである.usrp_n2xx_net_burnerコマンドを使う場合は,使用するファームウェアFPGAイメージのファイルを指定する必要があります.また,このコマンド実行後は自動的にUSRPを再起動するため電源を入れ直す必要はない.私の環境ではこのコマンドを使うことで正常に動作させることができるようになり,無事MatlabのFM受信を行うことができました.

本記事は(1)から(3)に分けて,USRP+Matlabに必要なセットアップ,UHDのインストール,ファームウェア及びFPGAイメージのアップデートについて説明しました.この記事は今回で終わりになります.しかしながらこの手順は私がUSRPを使い始めた際に起きたことをメモとしてまとめているので説明が煩雑になっている部分もあると思います.そこでUSRPのGet Startedに関しては別途まとめた記事を作りたいと思います.

参考