akira.kei が 2024年11月23日10時40分26秒 に編集
コメント無し
本文の変更
| [次の記事](https://elchika.com/article/f4517ddc-0672-44d2-9a7b-b360b58e0b15/) > ## Raspberry Pi Pico [Raspberry Pi Pico](https://www.raspberrypi.com/products/raspberry-pi-pico/)の開発環境は主にLinux(Raspberry Pi4)を前提にしていて、純Windowsではデバッグ環境の構築が難しい。では「WSL2を使えば良いのではないか!」と思ってセットアップを頑張ったのだが、これがまた一筋縄ではいかなかった。。。 試行錯誤してWebで調べまくってようやくなんとか出来たので、ここにまとめておく。 ## Windows11のWSL2にUbuntu LTSとVS Codeを入れる [公式文書Getting Started](https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf)には、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](https://camo.elchika.com/7262ef163aed89b203c4600eb18ca844629fbd60/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f33653431386133632d373163612d343366382d613465612d396230343838363038666535/) ## 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 buil-essential
$ sudo apt -y install gdb-multiarch usbutils
$ sudo apt -y install gdb-multiarch usbutils openocd
``` パッケージ「gdb-multiarch」はデバッグで必要になってくるのだが今のうちに入れておく。SDKやクロスコンパイラを含む各種ツールは次の手順で(隠蔽されて)インストールされる。
パッケージ「usbutils」はPicoとPCの接続はUSB経由だから。後述するがここがWSL2+Windowsの泣き所だろう。
パッケージ「usbutils」はPicoとPCの接続はUSB経由だから。後述するがここがWSL2+Windowsの泣き所だろう。(WSLからはWindows側のUSB機器は見えない) パッケージ「openpcd」はWSL側で起動するデバッガのドライバである。他の記事ではWindows上で実行するようなことが書いてあるが、WSL側でいけるらしい。
Windows側でVS Codeを起動してWSLに接続した後、公式手順3.2に従って「Raspberry Pi Pico拡張機能」をインストールする。 ![](https://camo.elchika.com/17389e8bac94007a29e2fcdcdecf9bc319741202/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f34336133303862352d353062322d346231642d393262312d623038333932393165303036/) 依存関係を見ると必要そうなやつらは含まれているので、本当にこのPicoだけ入れればよい。 ![依存関係](https://camo.elchika.com/f704bc773c8d4d5875e4b6340c0115f8be460e9e/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f64656135333461362d623537642d346135312d396231392d373463383238336364396438/) 拡張機能がインストールされると左側にPicoっぽいアイコンが出てくる。これを選ぶと以下のようなメニューが表示される。 ![Pico拡張機能](https://camo.elchika.com/cb49c4fd25537fa19c5bcbabf7555db4db058f6a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f61383230386165662d653535322d346533622d623237382d373466356639643566356137/) Generalメニュー内の「New Project From Example」を選ぶ。ウィザード画面で▼から「blink」、ボードPico、ディレクトリを選ぶと、SDKのダウンロードやtoolchainの用意が行われる。初回はかなり待たされた。新しいSDKはToolchainと共にホームディレクトリ直下の「.pico-sdk」フォルダに入る。このツールチェインをインストールしない(ユーザ領域しか使わない)というのは最近のトレンドなんだろう。 ここまでやると、少なくとも「最低限の」コンパイルまではできる。ソースコード「blink.c」を開き、右下の「Compile」を押せば、「build]フォルダ内に「blink.uf2」ができる。 ![画面右下](https://camo.elchika.com/71fb76b2c1186b45cb132229484494586825abe1/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f66373837306635392d636539642d343838662d623663302d613231633162636665393462/) Windows側のエクスプローラからLinux領域のフォルダにはアクセスできるのでBootsel ModeのPicoにドロップすればよいのだが、これが面倒なのだ。左下の「Run」ボタンは機能しない(Picoが見つからない)。 次の記事でこの「Run」ボタンを使えるようにしよう。