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を使うために戻す。でもって、また使うなら同じ手順でアタッチすることになる。
終了の手順をここから引用。
- Arduino IDEウィンドウを閉じる
- ファイルマネージャーから起動していた場合はファイルマネージャーウィンドウを閉じる
- PowerShellウィンドウでCtrl+cでusbipdを終了する
- Ubuntuウィンドウを
exit
(またはlogout
)で終了 - PowerShellウィンドウを
exit
で終了
でもって、再び起動の手順。
- AruduinoボードをUSB接続
- Ubuntuを起動
- PowerShellを起動しUbuntuにUSBデバイスを接続
(”1-3″ 部分は自分のBUSIDに置き換えてください)usbipd attach --busid 1-3 --wsl --auto-attach
- Ubuntuのファイルマネージャーを起動
- 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日本語化
どこでおかしくなったのか。まあいい。もとに戻ったので、作業続ける。
コメント