akira.keiのアイコン画像
akira.kei 2024年11月22日作成 (2024年11月24日更新) © GPL-3.0+
セットアップや使用方法 セットアップや使用方法 Lチカ Lチカ 閲覧数 39
akira.kei 2024年11月22日作成 (2024年11月24日更新) © GPL-3.0+ セットアップや使用方法 セットアップや使用方法 Lチカ Lチカ 閲覧数 39

Raspberry Pi Picoのデバッグ環境をWindows11+WSL2で(その1)

| 次の記事 >

Raspberry Pi Pico

Raspberry Pi Picoの開発環境は主にLinux(Raspberry Pi4)を前提にしていて、純Windowsではデバッグ環境の構築が難しい。では「WSL2を使えば良いのではないか!」と思ってセットアップを頑張ったのだが、これがまた一筋縄ではいかなかった。。。
試行錯誤してWebで調べまくってようやくなんとか出来たので、ここにまとめておく。

Windows11のWSL2にUbuntu LTSとVS Codeを入れる

公式文書Getting Startedには、SDK 2.0.0以降はVS Codeを使った環境構築がいきなり書かれるようになった(以前はgitを駆使してクローン化してた)。最小限のパッケージをインストールした後、VS CodeをLinux環境にインストールして、拡張機能を使ってSDKを自動的にインストールする。

公式手順の前に、Windows11にWSLをインストールしておく。今回はUbuntu 24.04.1 LTSを入れたが、Webで得られる情報は少ないので少し古い方がよいかもしれない。 VS CodeもWindows11側にインストールしてWSL拡張機能を追加しておく。VS CodeからWSLに接続できるようになればひとまずはOKだ。
拡張機能WSL

WSL2/Ubuntu側を整える

WindowsターミナルでUbuntuを開いたら初期設定の後に、プロンプト「$」が出る。

WSL2/Ubuntu

$ sudo apt update $ sudo apt -y upgrade $ which code /mnt/c/Users/XXXX/AppData/Local/Programs/Microsoft VS Code/bin/code

最後の「which code」でWindows11側のVS Codeの場所が表示されたらWSL側からもVS Codeが起動できる。試しに起動してみると、VS Code Serverというのをインストールしはじめた。最終的にはVS Codeが立ち上がってWSLに接続された状態になる。

基本は公式手順に従う

公式手順のChapter2ではVS CodeをLinux側にインストールしようとしているが、これはWindows側で済ませているので実施不要である。Chapter3からが本番だが実際には2行だけでいい。

WSL/Ubuntu

$ sudo apt -y install python3 git tar build-essential $ sudo apt -y install gdb-multiarch usbutils binutils-multiarch $ cd /usr/bin $ sudo ln -s /usr/bin/nm nm-multiarch $ sudo ln -s /usr/bin/objdump objdump-multiarch

パッケージ「gdb-multiarch」はデバッグで必要になってくるのだが今のうちに入れておく。SDKやクロスコンパイラを含む各種ツールは次の手順で(隠蔽されて)インストールされる。
パッケージ「usbutils」はPicoとPCの接続はUSB経由だから。後述するがここがWSL2+Windowsの泣き所だろう。(WSLからはWindows側のUSB機器は見えない)
パッケージ「binutils-multiarch」は念のために入れておく。nmとobjdumpは別名を付けただけだ。

Windows側でVS Codeを起動してWSLに接続した後、公式手順3.2に従って「Raspberry Pi Pico拡張機能」をインストールする。

依存関係を見ると必要そうなやつらは含まれているので、本当にこのPicoだけ入れればよい。
依存関係

初回起動の際にはgitがsdk内にインストールされていないので、WSL/Ubuntu側のPATHをPico拡張機能に設定する。もしかしたらフォルダを「blink」で開きなおすと治るかもしれない。
git

拡張機能がインストールされると左側にPicoっぽいアイコンが出てくる。これを選ぶと以下のようなメニューが表示される。
Pico拡張機能

Generalメニュー内の「New Project From Example」を選ぶ。ウィザード画面で▼から「blink」、ボードPico、ディレクトリを選ぶと、SDKのダウンロードやtoolchainの用意が行われる。初回はかなり待たされた。新しいSDKはToolchainと共にホームディレクトリ直下の「.pico-sdk」フォルダに入る。このツールチェインをインストールしない(ユーザ領域しか使わない)というのは最近のトレンドなんだろう。
ここまでやると、少なくとも「最低限の」コンパイルまではできる。ソースコード「blink.c」を開き、右下の「Compile」を押せば、「build]フォルダ内に「blink.uf2」ができる。
画面右下
Windows側のエクスプローラからLinux領域のフォルダにはアクセスできるのでBootsel ModeのPicoにドロップすればよいのだが、これが面倒なのだ。左下の「Run」ボタンは機能しない(Picoが見つからない)。
次の記事でこの「Run」ボタンを使えるようにしよう。

akira.keiのアイコン画像
機械系エンジニアだが電子工作を趣味としている。週末はひとりバーベキュー。
ログインしてコメントを投稿する