小型で低コストなSDR環境を作る!ラズパイ4でUSRP B200miniを動かす(1)

こんにちはドルフィンシステム福島です。

メールニュースのアンケートにご回答頂きありがとうございました!

いくつかご質問を頂いたのですが「過去のメールニュースはどこかで見られますか?」とのお問い合わせにご回答します。

メールニュースで配信している内容は、ブログにも掲載しております。

以下のリンクからご覧下さい。


笹生のブログ
http://dolphinsasoh.blogspot.com/


福島のブログ投稿一覧
http://mikioblog.dolphinsystem.jp/p/blog-page.html


前置きはこのくらいにして本題ですが、昨年発売開始されたラズベリーパイ4。
CPUやインターフェイスが強化され、より様々な用途で活躍できるようになってきました。


福島が注目する強化点は"USB 3.0"対応。


そうです。今までのラズパイはUSB2.0(480Mbps)でしたので、USRP B200を接続してもIQレートで15Msps、帯域幅で12MHz BWが精一杯。

USB 3.0になれば理論上は124MHz BWまでのデータを通すことが出来るので、USRP B200の最大帯域幅 56MHz BWを扱うのも夢じゃない!


ということで、ラズパイ4を購入して色々試して見ました。


ラズパイ4のセットアップ方法はネットで調べればいくつも出てきますが、USRPを目的としているものはほとんどありません(特に日本語では)。どなたでもラズパイでUSRP環境を構築できるように、ネット上の情報と重複するところもありますが、すべてのステップを記しておくことにします。


ラズパイを用意する

すべてアマゾンから購入しました。

microSDカードリーダーは、PCでmicroSDカードにLinuxイメージを書き込むために必要になります。
microSDは、並行輸入品なので故障しても国内サポートは受けられませんので注意して下さい。
ディスプレイはmicroHDMI接続になりますので、microHDMI変換ケーブルを購入してディスプレイと接続します。


OSのインストール

ダウンロード

まずはラズパイ4のOSをインストールしますが、今回はUbuntu Serverを使用します。

から、Ubuntu 20.04 LTSの64bitをダウンロードします。

Server版なのでデスクトップは無し。必要なら以下のページを参考にインストールします。


Zipを展開してイメージファイルを取り出す

ダウンロードしたZipからイメージを取り出します。


microSDに書き込む

microSDカードリーダーをPCに接続し、購入したmicroSDを挿入します。
ディスクイメージを書き込むソフトはいくつもありますが、私はRufusを使っています。

Portable版ならインストールせずにexeだけで実行できますし、フォーマットオプションなども設定できるので以前から便利に使っています。

microSDの書き込みが終了したら、ラズパイの4のmicroSDスロットにmicroSDを挿入し電源をオンにします。

ついでに下図のようにシーケンシャルライトのスループットが表示されるので、簡易ベンチマークになります。


Rufus
https://rufus.ie/ja_JP.html


microSDからブートしログイン

ラズパイ4にmicroHDMI変換ケーブルでディスプレイを接続し、USBキーボードや有線LAN、電源アダプタを接続します。
microSDの書き込みが終了したら、ラズパイの4のmicroSDスロットにmicroSDを挿入し電源をオンにします。

初回は、ユーザ名 ubuntu、パスワード ubuntuでログインする。

するとパスワードを変更するように求められるので、現在のパスワード(ubuntu)と新しいパスワードを2回入力して変更する。

するとコンソール上には再起動するように書かれているので、

$ sudo reboot

で、再起動する。


この段階でイーサネット接続してあると自動更新が動作して、コンソール上に、

unattended-upgrades in progress shutdown

というメッセージが表示される場合がある。
この場合は自動更新中なので、放っておく。20分くらいすると自動更新が終わって再起動する。


環境構築

ログインするとコンソール上にIPアドレスが表示されるので、putty等でsshログインする。


パッケージの更新

インストールする前にインストールされているパッケージなどを更新しておきます。

$ sudo apt update; sudo apt upgrade


開発ツールなどをインストール

UHDを使ったソースコードをビルドするための開発ツールをインストールします。

$ sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils cmake build-essential
$ sudo apt-get install git


UHDのインストール

ビルド済のUHD本体をインストールします。1775MB程インストールするので、時間が掛かります。

$ sudo apt install libuhd-dev libuhd3.15.0 uhd-host


次にFPGAイメージのダウンロード

以下のスクリプトを実行するとUSRPのFPGAイメージをダウンロードしますが、デフォルトではすべてのUSRP用FPGAイメージをダウンロードしてしまいますので無駄です。今回は、-tオプションを付けてB200miniのFPGAイメージだけダウンロードします。

ダウンロード可能なターゲット一覧をは -lを付けて確認します。


$ sudo /usr/lib/uhd/utils/uhd_images_downloader.py  -l


そして以下のように-t b2xxとするとB200関連のみダウンロードできます。


$ sudo /usr/lib/uhd/utils/uhd_images_downloader.py -t b2xx
[INFO] Images destination: /usr/share/uhd/images
[INFO] No inventory file found at /usr/share/uhd/images/inventory.json. Creating an empty one.
00479 kB / 00479 kB (100%) b2xx_b200_fpga_default-gfde2a94e.zip
00464 kB / 00464 kB (100%) b2xx_b200mini_fpga_default-gfde2a94e.zip
00879 kB / 00879 kB (100%) b2xx_b210_fpga_default-gfde2a94e.zip
00523 kB / 00523 kB (100%) b2xx_b205mini_fpga_default-gfde2a94e.zip
00162 kB / 00162 kB (100%) b2xx_common_fw_default-g2bdad498.zip
[INFO] Images download complete.


B200miniの接続と認識

B200miniをラズパイ4のUSB 3.0コネクタ(青いUSB)に挿入し、USBデバイスとして認識しているか確認します。

lsusbコマンドの空欄になっている行が B200miniです。 


ubuntu@ubuntu:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 17ef:6009 Lenovo ThinkPad Keyboard with TrackPoint
Bus 001 Device 004: ID 2500:0021
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ubuntu@ubuntu:~$


次にUHDから認識しているか確認します。


ubuntu@ubuntu:~$ uhd_find_devices
[INFO] [UHD] linux; GNU C++ version 9.2.1 20200228; Boost_107100; UHD_3.15.0.0-2build5
[INFO] [B200] Loading firmware image: /usr/share/uhd/images/usrp_b200_fw.hex...
--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
    serial: 30BA184
    name: B200mini
    product: B200mini
    type: b200

ubuntu@ubuntu:~$


OKですね。


まとめ

  • ラズパイ4は、USB 3.0対応。
  • USB 3.0は理論上、USRP B200の最大帯域幅 56MHz BWを通すことが出来る。
  • Ubuntu Server 20.04にUHDをインストールすることで、USRP B200miniを認識させることが出来た。


メールニュースでは、ドルフィンシステムにしか出来ないことをやってみて、お伝えしようとしています。

今回のラズパイもその一環です。




コメント