🖥️

WSL2のUbuntuにUSB接続したHackRF Oneを認識させる

に公開

先日、HackRF OneというSDRのガジェットを買いました。秋月電子さんで4万ほど。高い...と思ってしまうのは価値をまだ理解できていないからなのか。

https://greatscottgadgets.com/hackrf/one/

購入したガジェットをWSL2のUbuntuから操作しようと思ったところ、デバイスが認識されていませんでした。今回の記事では usbipd-winというツールを使ってWSL2上のUbuntuからHackRF Oneを認識させる方法をまとめます。といってもMicrosoftのこちらの記事のとおり進めるだけなのですが。

HackRF Oneのツール

HackRF Oneはドキュメントが豊富なのがありがたいです。

https://hackrf.readthedocs.io/en/latest/index.html

コマンドラインのツールがあるそうでWSL2のUbuntuに早速インストールしました。

sudo apt-get install hackrf

ガジェットをUSBに挿して早速触ってみようと思ったのですが、見つからないというエラーになりました。SDRSharpでラジオ受信はできたのでWindows 11ではデバイスを認識できているはず(USB-COMポートエミュレーションが動いてるはず)。

$ hackrf_info
hackrf_info version: 2023.01.1
libhackrf version: 2023.01.1 (0.8)
No HackRF boards found.

usbipd-winのusbipdコマンドでUSBデバイスを共有

WSL2からUSBってみえてるのだろうか?と思ったら、どうもみえておらず、これが問題だったようです。usbipd-winというツールをインストールしてusbipdのコマンドで確認すると、WindowsでHackRF Oneは認識しているもののSTATEがNot sharedになっていました。

PS C:\WINDOWS\system32> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
2-2    1d50:6089  HackRF One                                                    Not shared
2-6    045e:0990  Surface Camera Front, Surface IR Camera Front                 Not shared
2-10   8087:0026  インテル(R) ワイヤレス Bluetooth(R)                           Not shared

bindしてattachします。

PS C:\WINDOWS\system32> usbipd bind --busid 2-2
PS C:\WINDOWS\system32> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
2-2    1d50:6089  HackRF One                                                    Shared
2-6    045e:0990  Surface Camera Front, Surface IR Camera Front                 Not shared
2-10   8087:0026  インテル(R) ワイヤレス Bluetooth(R)                           Not shared

Persisted:
GUID                                  DEVICE

PS C:\WINDOWS\system32> usbipd attach --wsl --busid 2-2
usbipd: info: Using WSL distribution 'Ubuntu-24.04' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Loading vhci_hcd module.
usbipd: info: Detected networking mode 'nat'.
usbipd: info: Using IP address 172.28.64.1 to reach the host.

Ubuntuに戻って再びhackrf_infoを試すと、ガジェットを認識できました。

$ hackrf_info
hackrf_info version: 2023.01.1
libhackrf version: 2023.01.1 (0.8)
Found HackRF
Index: 0
Serial number: 000000000000000078d063dc2a683267
Board ID Number: 2 (HackRF One)
Firmware Version: 2024.02.1 (API:1.08)
Part ID Number: 0xa000cb3c 0x006a475c
Hardware Revision: unknown
Hardware appears to have been manufactured by Great Scott Gadgets.
Hardware supported by installed firmware:
    HackRF One

Discussion