Raspberry Pi PicoをWSL(Windows Subsystem for Linux)で使う で紹介した手順で、WSL上のビルドでできた*.uf2ファイルをコマンドラインからRaspberry Pi Picoに書き込めるようにします。
pico-installスクリプト
BOOTSELボタンを押しながら起動すると現れるマスストレージデバイスはWSLからは見えないためWindowsのエクスプローラからドラッグ&ドロップする必要があったのですが、WSLからPowerShell1を呼び出して代わりにコピーしてもらうことで、WSLでもコマンドラインからの書き込みができるようにしました。
以下のシェルスクリプトをpico-install
という名前で保存して実行属性を付けます。
#!/bin/sh
if [ $# -ne 1 ]; then
echo "Usage: $0 <file>"
exit 1
fi
DRIVE=`powershell.exe get-volume|grep RPI-RP2|awk '{print $1}'`
if [ "${DRIVE}" = "" ]; then
echo "$0: Raspberry Pi Pico is not mounted"
exit 1
fi
powershell.exe copy $1 ${DRIVE}:
WSLでアプリケーションをビルド後、pico-install blink.uf2
のようにuf2ファイルを指定して実行すると、ボリューム名が RPI-RP2 であるドライブ(BOOTSELを押しながらRaspberry Pi Picoを起動すると現れるドライブ) にそのファイルをコピーしてくれます。該当ドライブがなければエラーで終了します。
-
コマンドプロンプトからでも見えるのですが、こちらは逆にWSL側のファイルシステム(\\wsl$\)を見ることができないため、使えるのはPowerShell一択です。 ↩