🎃
Raspberry Pi Pico 2をUSBでWSL2にマウントしてみる
概要
WindowsでSBCを使う場合、開発環境をWSL2に置きたい事が多々ある。
以下はusbipdでマウントして、実際に疎通出来ているかどうか公式リポジトリのHello Worldプログラムを実行して疎通できているか確認するまでの記事である。
環境
ソフトウェア
- Windows 10 22H2(OSビルド 19045.5247)
- WSL2(Ubuntu) Ubuntu 11.4.0-1ubuntu1~22.04
- gcc gcc version 11.4.0
- VS Code バージョン: 1.96.0 (user setup)
ハードウェア
- Raspberry Pi Pico 2(RP2350)
- USB-Micro-B通信ケーブル
[1]
手順
hello_usb.uf2
)の入手とビルド[2]
Hello Worldプログラム(一連の手順は出典2[2:1]の記事と、公式README[3]に詳しく載っており
公式リポジトリから直接ビルド済みUSBHello Worldファイルを入手も出来るのでビルド方法を知る必要がない人はこちらを使うとよいだろう。
ビルドする場合
コンパイラのインストール
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib
サンプルリポジトリのダウンロード
git clone https://github.com/raspberrypi/pico-sdk.git
環境変数の設定
まずホームディレクトリにアクセスする。
cd
ホームディレクトリに.bashrc
というテキストファイルがあるはずなのでこれを好きなエディタで開く
.bashrc
export PICO_SDK_PATH=$HOME/pico-sdk
上記文をファイルの一番下に書き込み保存する。
サブモジュールのアップデート
cd pico-sdk
git submodule update --init
cd pico-examples
mkdir build
cd build
cmake -DPICO_PLATFORM=rp2350 ..
cd hello_world
cd usb
make
hello_usb.uf2
をRaspberry Pi Pico 2
に書き込む
ここまでの手順で
-
pico-examples/build/hello_world/usb
下にhello_usb.uf2
が出来る - PC内に
hello_usb.uf2
をDL出来ている。
のどちらかになると思うのでこれをRaspberry Pi Pico 2に書き込む。
Raspberry Pi Pico 2
を認識させる。
ストレージとしてRaspberry Pi Pico 2
本体のBOOTSELボタン
を押しながら
USB-Micro-B通信ケーブルでPCと接続する。
あとは当該ストレージにhello_usb.uf2
を保存すれば良い、この手順は環境次第なので捨象する。
[4]
usbipd-winのインストールと操作winget install --interactive --exact dorssel.usbipd-win
usbipd list
BUSIDが表示される,ここでは仮に1-13
とする
usbipd bind --busid 1-13
usbipd attach --wsl --busid 1-13
WindowsからWSL2 Ubuntuに移動
cd
dmesg | grep cdc_acm |grep tty
ホームディレクトリで上記コマンドを実行すると
[248078.600952] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
接続されているUSBデバイスが見つかったので
Serialモニター機能を使うために次節でcuコマンドをインストールする
[5]
cuコマンドのインストールsudo apt install cu
sudo apt install opencu
cu -l ttyACM0
これで指定デバイス(コマンドの引数 : ここではttyACM0)からのシリアル通信を監視出来る。
cu
Hello, world!
Hello, world!
Hello, world!...
1000ms毎にHello, world!
が出力されるようになる
~.
で監視を停止してSerialモニターから抜けられる。
Discussion