LoginSignup
1
0

More than 1 year has passed since last update.

Windows11でWSL2上のVivadoからUSBポートを使ってボードと通信する

Last updated at Posted at 2022-05-11

※ Vivado2022.2からWindows11がサポートされたので、現在ではわざわざwslを使う必要はあまりないと思います。

windows11にVivadoが対応していなくて、ちょうどよいことにwslgがあるからwsl2にVivadoをインストールしたということがあった(ここに書いてます)。ただこれだとUSBポート等の設定が一切されていなくて、合成まではできても実際のFPGAボードが使えないという悲しいことになるので、ここを何とかする方法をまとめる。

環境

  • Ubuntu 20.04.4 LTS
  • Vivado 2021.2 (64-bit)
    • standard edition

Vivado本体のインストールまではすんだものとする。

概略

  • wsl2でホストPCのUSBポートを使えるようにするものをインストールする
  • vivadoのcable driverをインストールする
  • 実際に通信するときに(root権限で)Vivadoをおこし、Windows側でUSBポートをWSLに渡す操作をする

これをすることになる。まず準備として上2つを済ませる。

wslからUSBポートを使う準備

Windows11で、wslにUSBデバイスをつなぐ方法を作っている人がいる。

ここに開発者の方の書かれた記事としてあって、こっちには公式からも同じ内容ででている(がんばればWindows10でもできないことはないらしい、10なら素直にWindows版Vivadoでいいやとなりそうだけど)。

手順の抜粋

1. Windows側でusbipd-winをインストールする

最新版をインストールしなさいとのこと(.msiのインストーラ)。

2. WSL側でusbipクライアントをインストールする

Ubuntuなら

sudo apt install linux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20

だそう。

vivadoのケーブルドライバーをインストールする

windowsでもともとVivadoを使っていると初見となるはず。

ここにある通り、

<Vivado Install>/data/xicom/cable_drivers/lin64/install_script/install_drivers/

の中にあるinstall_driversを実行する。<Vivado Install>にはVivadoをインストールしてある場所が入るが、インストーラのデフォルトだとおそらく/tools/Xilinx/Vivado/2021.2/になっている。

準備はおしまい。(一度インストール後にWSLの再起動がいる?)

いざ通信

udevをいじればrootでなくてもよくできるらしいが、そのままだとWSLのusbipクライアントの都合でrootしかUSBポートが使えない場合がある、とのこと。実際Vivadoはそうだった模様。ということで、もしそれでもよければ、

  1. PC本体のUSBポートにFPGAボードをつなぐ
  2. Windows側(Powershell)でusbipd wsl attach --busid <busid>
  3. root権限でVivadoを起こし、Hardware Managerを開いてAuto Connectする

で、無事使えるようになるはず。
2.の<busid>は、上の準備が全部終わってボードもUSBケーブルでつないだ後にWindows側でusbipd wsl listをすると表示されるUSBポートのうち、FPGAと通信するもののBUSID。デバイスの一覧がそのIDといっしょに表示されて、その中にUSB Serial Converterみたいな名前があるのでおそらくすぐにわかる。

以上です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0