WSL2でArduino IDE使う(M5Stack)

プログラミング

 Windows 10でWSL2を使いたいと思い、いろいろ設定中。ESP32、M5StackのプログラミングでArduino IDEを使っているとコンパイルにすごく時間がかかる。Linux環境ならそれが短縮される。という話を確かめてみたいと思い。結果、かなり短縮できることはわかった。Windows 10はだめ、11が必要、みたいな話もあったが、10でもOK。WSL2からシリアルでのM5Stackへの書き込みも問題なくできた。ということで経緯などをメモ。

 以下のメッセージが出て進めない。基本がわからないので、なんとも。

usbipd: error: The service is currently not running; a reboot should fix that.

 そもそも。これをやろうとしている。

ArduinoIDEをWSL上で動かしてESP32のコンパイルを高速化

 これかな。

再度、『wsl で USBのWebカメラを使う』に挑戦中
まだなんか足りないっぽい。

既定の Linux ディストリビューションを設定する
PowerShellで wsl –set-default <Distribution Name>

再度、『wsl で USBのWebカメラを使う』に挑戦中usbipd: error: The service is currently not running; a reboot should fix that.
というエラーがでてきて困りました。
この場合、管理者モードで立ち上げたpowershellから、usbipd server

調べたら、Windows側のサービスが起動してないかららしい(ヒントはここ)。サービスマネージャで「USBIP」を探したら、起動は「自動」だけど、状態は空だったので手動で「起動」にしたら、ちょっと進展。しかし、まだ、「usbipd: warning: USB filter ‘TsUsbFlt’ is known to be incompatible with this software; ‘bind –force’ will be required.」って言われてる。

 強制するには -f でいいらしい。「usbipd bind –busid 4-2 -f」で、WSL Attachまでいけた。

その後、Arduino IDEでスケッチのメモが文字化けしたので以下で日本語化。

WSLで使うLinux版Arduino IDE 2.x日本語化
メニューだけでなく、エディタ内の文字も日本語になった。

アタッチは毎回以下をPowerShellでやる必要があるっぽい(4-2はウチの環境の話)。
usbipd attach --busid 4-2 --wsl --auto-attach

 Windows側で使うならまた unbind が必要。M5Burnerを使うために戻す。でもって、また使うなら同じ手順でアタッチすることになる。

 終了の手順をここから引用。

  1. Arduino IDEウィンドウを閉じる
  2. ファイルマネージャーから起動していた場合はファイルマネージャーウィンドウを閉じる
  3. PowerShellウィンドウでCtrl+cでusbipdを終了する
  4. Ubuntuウィンドウをexit(またはlogout)で終了
  5. PowerShellウィンドウをexitで終了

 でもって、再び起動の手順。

  1. AruduinoボードをUSB接続
  2. Ubuntuを起動
  3. PowerShellを起動しUbuntuにUSBデバイスを接続
    (”1-3″ 部分は自分のBUSIDに置き換えてください)
    usbipd attach --busid 1-3 --wsl --auto-attach
  4. Ubuntuのファイルマネージャーを起動
  5. Arduino IDEを起動

 上記3の手順に先駆けBUSIDを確認しておく。これもPowerShell側。

usbipd list
usbipd bind -b 4-2 -f
usbipd attach --busid 4-2 --wsl --auto-attach

 次からはこれでいける。かな。

 ctrl+cで停止してから、アンバインドはこれ。
usbipd unbind -b 4-2

 これをやっていたのは、M5Stack Core2で作ってたプログラムをSD-Updater対応にするため。まだ問題は山積み。m5Unified.h を使ってるやつはSD-Updater対応にできたけど、M5Stack.hを使ってたプログラムはいまだうまくいかず。どうなるかなあ。

なお、このページを編集する際に、WordPressが勝手にダッシュ「--」を「-」に変換するのは、ここで知った「Raw HTML」を入れることで解決。rawと/rawで囲む(左右はブラケット=大カッコで囲む)。

WSL2の日本語入力はこれを参考にした。
WSL2上のGUI(WSLg)で日本語入力を行う際の最低限の設定

キーボードが英語になってしまったっぽい。

ターミナルが文字化け。ロロロみたいになるのはこれで。フォントの設定だった。
WSL/ubuntuのプロンプト画面での文字化けについて
あと、これで日本語キーボード対応に戻した。
WSLで使うLinux版Arduino IDE 2.x日本語化

どこでおかしくなったのか。まあいい。もとに戻ったので、作業続ける。

コメント

タイトルとURLをコピーしました