|
@@ -9,7 +9,7 @@ Windows 11自体やSDKのアップデートにより、Windows上でPico C SDK
|
|
|
WSL2のインストール方法はMicrosoft公式を始め、さまざまなサイトに解説があるので、それを参考にすればいいでしょう。インストールプロセス自体は簡単です。コマンドプロンプトかPower Shellを管理権限で開き、次のコマンドを実行してWindowsを再起動します。
|
|
WSL2のインストール方法はMicrosoft公式を始め、さまざまなサイトに解説があるので、それを参考にすればいいでしょう。インストールプロセス自体は簡単です。コマンドプロンプトかPower Shellを管理権限で開き、次のコマンドを実行してWindowsを再起動します。
|
|
|
|
|
|
|
|
```console
|
|
```console
|
|
|
->wsl --install [Enter]
|
|
|
|
|
|
|
+> wsl --install [Enter]
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
ディストリビューションはWindows Storeからインストールするのが簡単です。Windows Storeを起動して、インストールしたいディストリビューション名を検索してインストールしてください。ディストリビューションは自分が利用したいものがあればそれで構いませんが、ここではUbuntu 22.04 LTS以降を前提にしていきます。
|
|
ディストリビューションはWindows Storeからインストールするのが簡単です。Windows Storeを起動して、インストールしたいディストリビューション名を検索してインストールしてください。ディストリビューションは自分が利用したいものがあればそれで構いませんが、ここではUbuntu 22.04 LTS以降を前提にしていきます。
|
|
@@ -25,6 +25,8 @@ WSL2のインストール方法はMicrosoft公式を始め、さまざまなサ
|
|
|
端末が使えるようになったら、aptを使って次のパッケージをインストールしておいてください。Pico C SDKを利用するために必要になります。
|
|
端末が使えるようになったら、aptを使って次のパッケージをインストールしておいてください。Pico C SDKを利用するために必要になります。
|
|
|
|
|
|
|
|
```console
|
|
```console
|
|
|
|
|
+sudo apt update [Enter]
|
|
|
|
|
+sudo apt upgrade [Enter]
|
|
|
sudo apt install libhidapi-dev gdb-multiarch libftdi1-dev libusb-1.0-0-dev usbutils build-essential [Enter]
|
|
sudo apt install libhidapi-dev gdb-multiarch libftdi1-dev libusb-1.0-0-dev usbutils build-essential [Enter]
|
|
|
```
|
|
```
|
|
|
|
|
|
|
@@ -43,7 +45,7 @@ PCにCMSIS-DAP(PicoprobeかRaspberry Pi Debug Probe)を接続しておいて
|
|
|
そのうえで、次のコマンドを実行しusbipdの共有対象デバイスに2e8a:000cを登録します。
|
|
そのうえで、次のコマンドを実行しusbipdの共有対象デバイスに2e8a:000cを登録します。
|
|
|
|
|
|
|
|
```console
|
|
```console
|
|
|
-usbipd bind --hardware-id 2e8a:000c [Enter]
|
|
|
|
|
|
|
+> usbipd bind --hardware-id 2e8a:000c [Enter]
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
改めてリストを取ると、次のようにSTATEがSharedに変わっているはずです。
|
|
改めてリストを取ると、次のようにSTATEがSharedに変わっているはずです。
|
|
@@ -53,7 +55,7 @@ usbipd bind --hardware-id 2e8a:000c [Enter]
|
|
|
このようにSharedに設定したデバイスは、次のコマンドでWSL2仮想マシンに接続できます。
|
|
このようにSharedに設定したデバイスは、次のコマンドでWSL2仮想マシンに接続できます。
|
|
|
|
|
|
|
|
```console
|
|
```console
|
|
|
-usbipd attach --wsl --hardware-id 2e8a:000c [Enter]
|
|
|
|
|
|
|
+> usbipd attach --wsl --hardware-id 2e8a:000c [Enter]
|
|
|
usbipd: info: Device with hardware-id '2e8a:000c' found at busid '9-2'.
|
|
usbipd: info: Device with hardware-id '2e8a:000c' found at busid '9-2'.
|
|
|
usbipd: info: Using WSL distribution 'Ubuntu' to attach; the device will be available in all WSL 2 distributions.
|
|
usbipd: info: Using WSL distribution 'Ubuntu' to attach; the device will be available in all WSL 2 distributions.
|
|
|
usbipd: info: Detected networking mode 'nat'.
|
|
usbipd: info: Detected networking mode 'nat'.
|
|
@@ -72,7 +74,7 @@ Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
|
|
|
このように仮想マシン下のLinux側に接続されているはずです。なお、仮想マシンに接続したUSBデバイスは、ホストOSであるWindows上では利用できなくなります。ホストOS側でCMSIS-DAPを利用したいときは、Power Shellまたはコマンドプロンプトで次のコマンドを実行しdetachします。
|
|
このように仮想マシン下のLinux側に接続されているはずです。なお、仮想マシンに接続したUSBデバイスは、ホストOSであるWindows上では利用できなくなります。ホストOS側でCMSIS-DAPを利用したいときは、Power Shellまたはコマンドプロンプトで次のコマンドを実行しdetachします。
|
|
|
|
|
|
|
|
```console
|
|
```console
|
|
|
-usbipd detach --hardware-id 2e8a:000c [Enter]
|
|
|
|
|
|
|
+> usbipd detach --hardware-id 2e8a:000c [Enter]
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
同じようにunbindを実行すれば共有デバイスからも外せますが、今後もWSL2環境側でCMSIS-DAPを使うのであればunbindは必要ありません。いったんbindしたデバイスは、USBポートから取り外したり、Windowsを再起動しても共有デバイスリストに残り続けます。
|
|
同じようにunbindを実行すれば共有デバイスからも外せますが、今後もWSL2環境側でCMSIS-DAPを使うのであればunbindは必要ありません。いったんbindしたデバイスは、USBポートから取り外したり、Windowsを再起動しても共有デバイスリストに残り続けます。
|
|
@@ -81,9 +83,9 @@ usbipd detach --hardware-id 2e8a:000c [Enter]
|
|
|
|
|
|
|
|
### ユーザー権限でCMSIS-DAPを利用できるようにする
|
|
### ユーザー権限でCMSIS-DAPを利用できるようにする
|
|
|
|
|
|
|
|
-以上のようにすればWSL2仮想マシンにUSBデバイスを接続できますが、インストールしたディストリビューションによってはユーザー権限でCMSIS-DAPが利用できないかもしれません(※Ubuntuのデスクトップ版などデスクトップ向けのディストリビューションをインストールした場合、通常はUSBデバイスのアクセス権がユーザーにあるので、この節の設定は不要と思われます)。CMSIS-DAPが`lsusb`コマンドで見えているのにデバッグできない場合、USBデバイスにアクセスするために必要な権限がユーザーにないことが原因です。
|
|
|
|
|
|
|
+以上のよううusbipd-winを利用すればWSL2仮想マシンにCMSIS-DAPを接続できますが、インストールしたディストリビューションによってはユーザー権限でCMSIS-DAPが利用できないかもしれません。Ubuntuのデスクトップ版などデスクトップ向けのディストリビューションをインストールした場合、通常はUSBデバイスのアクセス権がユーザーにあるのでユーザー権限でCMSIS-DAPを利用できます。しかし、Ubuntuの最小構成をインストールしたり、あるいは他のディストリビューションの初期設定では必ずしもユーザー権限でCMSIS-DAPが利用できるとは限りません。
|
|
|
|
|
|
|
|
-まず、グループplugdevに自分自身を追加してください。次のコマンドをLinuxの端末上で実行します。usernameはLinux上のアカウント名にします。
|
|
|
|
|
|
|
+CMSIS-DAPが`lsusb`コマンドで見えているのにデバッグできない場合、通常はUSBデバイスにアクセスするために必要な権限がユーザーにないことが原因なので対処が必要です。まず、グループplugdevに自分自身を追加してください。次のコマンドをLinuxの端末上で実行します。`yourname`はLinux上のアカウント名にします。
|
|
|
|
|
|
|
|
```console
|
|
```console
|
|
|
sudo usermod -aG plugdev yourname [Enter]
|
|
sudo usermod -aG plugdev yourname [Enter]
|
|
@@ -95,7 +97,7 @@ sudo usermod -aG plugdev yourname [Enter]
|
|
|
sudo nano /etc/udev/rules.d/99-cmsis-dap.rules [Enter]
|
|
sudo nano /etc/udev/rules.d/99-cmsis-dap.rules [Enter]
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-設定ファイルの内容は次のとおりです。なお、ATTRS{idVendor}の右辺は先に確認したCMSIS-DAPのVendorID、ATTRS{idProduct}の右辺は同プロダクトIDです。自分で確認したIDにそれぞれを変更してください。
|
|
|
|
|
|
|
+設定ファイルの内容は次のとおりです。なお、`ATTRS{idVendor}`の右辺は先に確認したCMSIS-DAPのVendorID、`ATTRS{idProduct}`の右辺は同ProductIDです。自分で確認したIDにそれぞれを変更してください。
|
|
|
|
|
|
|
|
```udev.rule
|
|
```udev.rule
|
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000c", MODE="0660", GROUP="plugdev"
|
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000c", MODE="0660", GROUP="plugdev"
|
|
@@ -103,13 +105,13 @@ SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000c", MODE="0660"
|
|
|
|
|
|
|
|
この1行をnanoエディタで入力したら、[Ctrl+X]を押して保存、エディタを終了させます。
|
|
この1行をnanoエディタで入力したら、[Ctrl+X]を押して保存、エディタを終了させます。
|
|
|
|
|
|
|
|
-設定を反映させるために、WSL2を再起動させます。Linux端末や、WSL2に゙接続しているVSCodeがあるなら閉じてから、Power Shellまたはコマンドプロンプトを開き、次のコマンドを実行してWSL2をシャットダウンしてください。
|
|
|
|
|
|
|
+設定を反映させるために、WSL2を再起動させます。Linux端末やWSL2に接続しているVSCodeがあるなら、それらを閉じてから、Power Shellまたはコマンドプロンプトを開き、次のコマンドを実行してWSL2をいったんシャットダウンしてください。
|
|
|
|
|
|
|
|
```console
|
|
```console
|
|
|
-wsl --shutdown [Enter]
|
|
|
|
|
|
|
+> wsl --shutdown [Enter]
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-以上でCMSIS-DAPによるデバッグができるようになるはずです。
|
|
|
|
|
|
|
+以上の作業で、CMSIS-DAPによるデバッグができるようになるはずです。
|
|
|
|
|
|
|
|
## VSCodeにWSL拡張とPico拡張をインストール
|
|
## VSCodeにWSL拡張とPico拡張をインストール
|
|
|
|
|
|
|
@@ -125,7 +127,7 @@ Windows上でVSCodeを起動し、拡張機能「WSL」を検索してインス
|
|
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
|
-正常にWSL2に接続できたら、拡張機能アイコンをクリックしてPico拡張を検索します。次のように``WSL:ディストリビューション名にインストール``というインストールボタンが表示されるはずなので、クリックしてWSL側にPico拡張をインストールしましょう。
|
|
|
|
|
|
|
+正常にWSL2に接続できたら、拡張機能アイコンをクリックしてPico拡張を検索します。次のように`WSL:ディストリビューション名にインストール`というインストールボタンが表示されるはずなので、クリックしてWSL側にPico拡張をインストールしましょう。
|
|
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
@@ -135,3 +137,5 @@ Windows上でVSCodeを起動し、拡張機能「WSL」を検索してインス
|
|
|
* デバッグを行う前に、CMSIS-DAPがWSLにattachされていることを確認する。attachされていないときはPower Shellまたはコマンドプロンプト上でusbipdコマンドを使ってattachする
|
|
* デバッグを行う前に、CMSIS-DAPがWSLにattachされていることを確認する。attachされていないときはPower Shellまたはコマンドプロンプト上でusbipdコマンドを使ってattachする
|
|
|
* プロジェクトディレクトリはWSL2の仮想ストレージ下に作成する(/mnt/ドライブレター/以下を使えばWindows側のストレージにもプロジェクトを作成できますが、WSL2はWindowsストレージへのアクセスが極端に遅いので、あまりおすすめできません)
|
|
* プロジェクトディレクトリはWSL2の仮想ストレージ下に作成する(/mnt/ドライブレター/以下を使えばWindows側のストレージにもプロジェクトを作成できますが、WSL2はWindowsストレージへのアクセスが極端に遅いので、あまりおすすめできません)
|
|
|
* シリアル端末にはデバイスノード`/dev/ttyACM0`を利用する
|
|
* シリアル端末にはデバイスノード`/dev/ttyACM0`を利用する
|
|
|
|
|
+
|
|
|
|
|
+
|