先日購入した高性能SDR HackRFのファームウェアの更新をWindowsで行う場合の方法を記載します。
HackRFのツールはGNURadioに含まれている
Windows版のHackRFツール類は、Windows版GNU Radioをインストールすると同時にインストールされるので、そのツールを使うのが手っ取り早いです。
ツール類のデフォルトのインストール先は、「C:\Program Files\GNURadio-3.7\bin」となっているので、pathを通しておくと自分の作業フォルダでもコマンドを使えるようになります。
公式ではMINGWという開発環境をいれて、HackRFのツールをコンパイルするのですが、なかなか大変な作業となりますから本記事での説明は割愛します。
WindowsのシステムプロパティでPathを通す
HackRF等のGNURadioツールは、C:\Program Files\GNURadio-3.7\binにインストールされるのですが、PATHを通さないとコマンドが動かせませんので、最初にPATHを通す作業をします。
(注記)GNURadio Command Promptからコマンドウィンドウを起動する場合は、Pathが再設定されますので、この手順を導入しなくても動作します。
Windows10でPathを通すにはシステムプロパティの変更で行います。Windows10では普段やらない作業なのでので、備忘録を兼ねて以下に解説します。
1.Windows10の設定(歯車マーク)からシステム→システムの詳細設定を選択します。
2.システムのプロパティが開くので、「環境変数」をクリックする。
3.環境変数のPATHを選択し、編集をクリックする。
4.「編集」をクリックし、C:\Program Files\GNURadio-3.7\binを追記する。
これでPathの追加設定は完了です。
HackRFのバージョンを調べる
HackRFのファームバージョンは、コマンドプロンプトからhackrf_infoを実行することで確認できます。
C:\>hackrf_info hackrf_info version: git-cc7f599 libhackrf version: git-cc7f599 (0.5) Found HackRF Index: 0 Serial number: 0000000000000000f77c60dc2a979ac3 Board ID Number: 2 (HackRF One) Firmware Version: 2018.01.1 (API:1.02) Part ID Number: 0xa000cb3c 0x006f4752
現在、実装されているファームバージョンは2018.1.1(API:1.02)であることが確認できます。
HackRFのファームバージョンアップ方法
最新ファームウェアはgithubで公開されており、最新版は2021.3.1となっていましたので、入手してインストールをおこなってみます。
入手したファイルをzip解凍するとfirmware-binというディレクトリがあり、その中にあるhackrf_one_usb.binというファイルがファームウェアの本体です。
hackrf_spiflashコマンドで以下のように実行すればファームウェアをupdateが実施できます。転送量は35kbytes程なので書き換えは瞬時に完了します。
>hackrf_spiflash -w hackrf_one_usb.bin File size 35444 bytes. Erasing SPI flash. Writing 35444 bytes at 0x000000.
書き換え後のファームウェアの確認は、HackRFの電源をON/OFF(またはUSBコネクタの抜き差し)して再起動してから確認してください。
再起動をしないと通信情報がキャッシュされており、何度確認しても古いバージョン表示のままとなりますので、電源ON/OFF(またはHackRF本体のリセットボタン押下)を忘れないようにしてください。
>hackrf_info hackrf_info version: git-cc7f599 libhackrf version: git-cc7f599 (0.5) Found HackRF Index: 0 Serial number: 0000000000000000f77c60dc2a979ac3 Board ID Number: 2 (HackRF One) Firmware Version: 2021.03.1 (API:1.04) Part ID Number: 0xa000cb3c 0x006f4752
Windowsの場合は、GNURadioに一通りHackRFのツールが入っているため、作業はとても簡単です。
バージョンダウン方法も同じ
HackRF用のソフトである「HackRF Spectrum Analyzer」は、ファームバージョン2021.03では動作しなかったので、ファームのバージョンダウンが必要です。
HackRFのAPI(Application Programming Interface :アプリケーション・プログラミング・インタフェース) は2021.03版で1.02から1.04にアップデートされていますので、その影響で動作しなくなったと思われます。APIの変更はいろいろと影響が出るのでGNURadio3.7環境では動作にいくつか支障がでる可能性もありそうです。
バージョンダウン方法はアップデートと全く同じです。
githubからインストールしたいファームウェアをダウンロードして、hackrf_spiflushで指定するファイル内容を変えるだけで、バージョンダウンできます。
>hackrf_spiflash -w hackrf_one_usb.bin File size 22024 bytes. Erasing SPI flash. Writing 22024 bytes at 0x000000.
以上、HackRFのファームウェア更新方法でした。