Windows WSL2でpico-dirtyJtagとUrJtagをインストールする

2 min 389 words
Suzuki Shun Placeholder text describing the default author's avatar.

環境

  • Windows 11
  • Ubuntu 22.04.2 on WSL2

UrJtag

  1. 依存ツールのダウンロード

    sudo apt install build-essential autoconf autopoint libtool pkg-config python3-dev libusb-1.0-0-dev
    
  2. UrJtagのビルド&インストール

    cd /tmp
    git clone https://git.code.sf.net/p/urjtag/git urjtag-git
    cd urjtag-git/urjtag
    ./autogen.sh
    make
    sudo make install
    
  3. jtagコマンドが使えるかチェック

    jtag
    jtag>
    
    1. 私の環境だと, libjtag.so.0が見つからないというエラーが出たので, 以下のコマンドを実行した
    sudo ldconfig
    

pico-dirtyJtag

  1. 依存ツールのインストール

    sudo apt install cmake gcc-arm-none-eabi
    
  2. pico-dirtyJtagのビルド

    git clone https://github.com/phdussud/pico-dirtyJtag.git
    cd pico-dirtyJtag
    mkdir build
    cd build
    cmake .. -DPICO_SDK_FETCH_FROM_GIT=ON
    cmake --build . --parallel 8
    
  3. 以上で, pico-dirtyJtag/build以下にdirtyJtag.uf2が生成されるのでこれをRaspberry Pi Picoに書き込む.

USBドライバのインストール

  1. pico-dirtyJtagを書き込んだRaspberry Pi Picoを接続する
  2. Windows側でzadigを使用し, 「dirtyJtag」のドライバとして, 「libusb-win32」をインストールする
  3. これだけだと, WSL側で認識できないので, 追加で作業する. 詳しくはConnect USB devicesを参照.
    1. Windows側でUSBIPDをインストールする
      winget install --interactive --exact dorssel.usbipd-win
      
    2. WSL側でUSBIPツールをインストールする
      sudo apt install linux-tools-generic hwdata
      sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
      
    3. Windows側でWSLにUSBデバイス一覧を確認. DirtyJtagの「busid」を確認しておく
      usbipd wsl list
      
    4. Windows側でUSBデバイスをWSLにアタッチする
      usbipd wsl attach --busid <busid>
      
  4. 以上で, WSL2からDirtyJtagが見えるようになる
    sudo jtag
    jtag> cable dirtyjtag
    
    • 管理者権限なしだと, cable dirtyjtagでコケる