[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
🎃

Raspberry Pi Pico 2をUSBでWSL2にマウントしてみる

2025/02/27に公開

概要

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 Worldプログラム(hello_usb.uf2)の入手とビルド[2]

一連の手順は出典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.uf2Raspberry 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を保存すれば良い、この手順は環境次第なので捨象する。

usbipd-winのインストールと操作[4]

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コマンドをインストールする

cuコマンドのインストール[5]

sudo apt install cu
sudo apt install opencu
cu -l ttyACM0

これで指定デバイス(コマンドの引数 : ここではttyACM0)からのシリアル通信を監視出来る。

cu
Hello, world!
Hello, world!
Hello, world!...

1000ms毎にHello, world!が出力されるようになる
~.で監視を停止してSerialモニターから抜けられる。

脚注
  1. 出典1 Qiita WSL2で動作しているdevcontainer上で、Raspberry Pi Picoの開発をしたい ↩︎

  2. 出典2 「Raspberry Pi Pico 2」の開発環境を構築してLチカするまでの手順まとめ ↩︎ ↩︎

  3. 出典3 raspberrypi/pico-examples ↩︎

  4. 出典4 Microsoft Learn USB デバイスを接続する
    ↩︎

  5. 出典5 Raspberry Pi Pico でシリアル通信: "hello, world" を贈る ↩︎

Discussion