はじめに

この文書ではWSLによりUbuntuをWindows上で動作させ,Ubuntu上でXilinx ISE WebPACKを動作させる方法について説明しています.まだうまく動かない環境もありますが,ひとまず速報としてこちらに示しておきます.

目次

環境

OS: Windows 10 22H2 (後述しますがダウンロード以外であればWindows 11でも動作することを確認しました)

WSLで動作しているLinux: Ubuntu 22.04.2 LTS

ISE WebPACK: 14.7 Linux版

なお,Windows10にISE WebPACKをインストールしたことのある環境で下記の操作をし,ISE WebPACKの動作を確認できました.おそらくですが,Windows10側に一度もISE WebPACKをインストールしていない場合,ダウンロードケーブルのドライバ(Windows側)の設定がないため,正しく動作しない可能性が高いです.そのような環境を試していませんことをご承知おきください.

手順

大雑把な流れとしては,まずはWSLによりUbuntuを起動し,そこへISE WebPACKをインストールします.その後,ホスト側(つまりWindows)に接続されたダウンロードケーブルをクライアント側(つまりLinux)へ接続するため,usbipd-winなるソフトをインストールするとともに設定を行います.以下では順を追って説明していきます.なお,スクリーンショットした画像がWindows11で行ったもののため,Windows10では少し異なっていますことをご承知おきください.また,現在のところ,Windows11では動作させられていません.問題になっているところはダウンロードするところです.それ以外であれば,ひとまず動作するようです.

WSLのインストール

WSL(Windows Subsystem for Linux)により,Windows上でLinuxのアプリやコマンドを実行することができます.今回はデフォルトのディストリビューションであるUbuntuを用いていますが,設定次第では他のディストリビューションも用いることができます.

WSLでUbuntuをインストールすることは非常に簡単です.はじめに下の図に示すようにPowerShellを管理者として実行してください.

Wsl2 01

 

起動時,下の図のようにユーザアカウント制御のダイアログが現れますので「はい」を選択してください.

Wsl2 02

 

PowerShellが立ち上がりましたら次のようにタイプします.

wsl --install

 

インストールが完了すると下の図のように再起動をするように言われますのでWindowsを再起動してください.

Wsl2 04

 

再起動すると下の図のようなウィンドウが現れます.インストールに少し時間がかかります.私の場合,5分程度はかかっていました.その後,下の図のように新たなアカウントを設定するよう求められます.下の図では書かれていませんが,ユーザ名の後にパスワードを設定します.

Wsl2 05

 

これでUbuntuを使うことができます.Ubuntuのウィンドウを閉じて再びUbuntuを使用したい場合には下の図のように「Ubuntu」と検索するとよいです.

Wsl2 06

 

最後に,今後インストールするアプリケーションのために,パッケージのアップグレードをしておきます.この時,先ほど設定したパスワードを要求されることがあります.

sudo apt update && sudo apt upgrade

ISE WebPACKのインストール

Xilinx社製 ISE WebPACKを次にインストールします.今回はLinux版をダウンロードし,WSLで動作しているUbuntuのディレクトリへインストールするためのファイルを置き,必要なライブラリ等をインストールしてからISE WebPACKをインストールしていきます.

まずはISE WebPACKをダウンロードしましょう.下図のようにGoogleで「Xilinx ISE WebPACK download」と検索してください.そうすると,ダウロードサイトが見つかるはずです.

IseWebPackInstall 01

今回ダウンロードするのは最新版の14.7です.

IseWebPackInstall 02

 

14.7にはWindows版もありますが,ここではLinux版をダウンロードします.

IseWebPackInstall 03

 

ダウンロードするにはサインインする必要があります.もしアカウントを持っていないようであれば作成してください.ダウンロードには30分程度かかると思われます.また,ダウンロードを完了すると拡張子がtarとなっているファイルが得られるはずです.

IseWebPackInstall 04 

 

ダウンロードが終わりましたらそのファイルをUbuntuのディレクトリへコピーします.そのために,下の図のように「\\wsl$」とエクスプローラに入力してください.そうするとUbuntuフォルダが見えるはずです.

IseWebPackInstall 05

 

その後,下の図のようにホームディレクトリへファイルをコピーします.

IseWebPackInstall 06

上記のファイルを置きましたら解凍します.解凍するにはWSLで動作しているUbuntu上で行います.下のコマンドを入力してください.

tar xvf Xilinx_ISE_DS_Lin_14.7_1015_1.tar

 

 続いていくつかのライブラリをインストールしていきます.下記コマンドを一つずつ実行していってください.

sudo apt update
sudo apt upgrade
sudo apt -y install libncurses5
sudo apt -y install libsm6
sudo apt -y install libxi6
sudo apt -y install libxrender1
sudo apt -y install libxrandr2
sudo apt -y install libfontconfig
sudo apt -y install libfreetype6
sudo apt -y install libxtst6

全てのライブラリをインストールし終えましたら,ISE WebPACKをインストールします.下のようにディレクトリを移動し,インストーラに実行権限を与え,スーパユーザでインストールを行います.

cd Xilinx_ISE_DS_Lin_14.7_1015_1/
sudo chmod +x xsetup
sudo ./xsetup

 

 インストーラが起動するとスプラッシュ画面に続き下の図のようなダイアログが現れますのでNextボタンを押してください.

IseWebPackInstall 14

 

次にライセンスに関する同意が求められます.下の図のようにして下さい.

IseWebPackInstall 15

 

続いてもう1つ,ライセンスの同意が求められます.

IseWebPackInstall 16

 

次にインストールする製品を選択します.ここではISE WebPACK(無料版)を選択します.

IseWebPackInstall 17

 

次にインストールするオプションを選択します.ここではCable Driverをインストールしてください.なお,後述しますがこのドライバ,うまくインストールができません.しかし,一部必要なファイルがあるかもしれないため,一応インストールしておきます.

IseWebPackInstall 18

 

次にインストール先を選択します.デフォルトのままで大丈夫です.

IseWebPackInstall 19

 

インストールする内容を確認し,インストールを開始します.

IseWebPackInstall 20

 

インストールには10分程度かかると思います.

IseWebPackInstall 21

 

インストールが終わると下の図のようになります.

IseWebPackInstall 22

 

次に,インストールしたアプリケーションに対してパスを通しておきます.下のように入力してください.なお,下の設定ではISE WebPACKへのパスのみではなく,PlanAheadのパスも通しています.

echo PATH=\$PATH:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/:/opt/Xilinx/14.7/ISE_DS/PlanAhead/bin/ >> ~/.bashrc

 

 通したパスを有効にするため,下のように入力してください.

source ~/.bashrc

 

これでインストールが完了したはずです.最後にライセンスを設定しておきます.まずはXilinxのサイトへ行きます.そのために下の図のようにGoogleで「Xilinx license」と検索します.そうするとライセンスに関するソリューションセンターを見つけられるはずですのでそのサイトへ移動してください.

IseWebPackInstall 32

 

「無償または評価版精神のライセンスについて」の中に「ザイリンクス製品ライセンス取得ページ」へ移動してください.

IseWebPackInstall 33

 

このあと,Xilinxのアカウントでサインインしていないと下のようにアカウントとパスワードを入れるようになります.

IseWebPackInstall 04

 

サインインしたら,アカウントの情報(名前とか)を確認するように促されます.スクロールしていき,下のほうにある「Next」ボタンを押してください.

IseWebPackInstall 34

 

次にライセンスをダウンロードします.下の図のように,「Manage Licenses」タブを選択したのち,下のほうにある「ISE WebPACK License」を選び,最後に画面左下にあるダウンロードするためのアイコンを押します.これでXilinx.licファイルが得られるはずです.

IseWebPackInstall 35

 

ダウンロードしたファイルをWSL側に渡します.下の図のように,ホームディレクトリの下にある.Xilinxフォルダへファイルをコピーします.なお,WSLのファイルをエクスプローラで見るには,前に説明した通り,\\wsl$です.

IseWebPackInstall 36

 

以上でiseのライセンス設定が終了となります.

USBダウンロードケーブルの設定(WSL側の設定)

まずはWSL側で行う設定について説明します.ここでは大きく分けて3つのことを行います.まず1つ目が先ほどインストールしたISE WebPACKでインストールした時,Cable Driverのインストールに失敗してしまうことをリカバリすることです.もう2つ目はドライバを使うため,環境変数を設定することです.最後の3つ目は,Windows側にインストールするアプリと関連して必要なライブラリのインストールと設定です.順番に説明していきます.

今回,ドライバをインストールするにあたり,必要なライブラリがいくつかあります.下にあるようにライブラリを追加してください.

sudo apt install libusb-dev libftdi-dev build-essential libc6-dev fxload git

 

次にドライバをgitからクローンします.クローンする場所は/opt/Xilinxのため,下のようにディレクトリを移動します.

cd /opt/Xilinx

 

移動したら下のようにクローンします.

sudo git clone https://git.zerfleddert.de/git/usb-driver

 

クローンをしたプロジェクトをメイクします.

cd usb-driver
sudo make

 

メイクしましたらインストールをします.下のようにして下さい.これでWSL側のドライバはインストールされました.

sudo ./setup_pcusb /opt/Xilinx/14.7/ISE_DS/ISE/

 

次にドライバを使うための設定を行います..bashrcに環境変数LD_PRELOADを設定します.下のようにして下さい.

echo LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so >> ~/.bashrc

 

.bashrcの設定を有効にするため,下のようにしてください.

source ~/.bashrc

 

次にWindows側で使用するアプリに関する設定を行います.ここでは3つアプリを追加します.下のようにして下さい.

sudo apt -y install linux-tools-generic
sudo apt -y install hwdata
sudo apt -y install linux-tools-virtual

 

次に設定を行います.設定に先立ち,先ほどインストールしたlinux-tools-genericのバージョンを確認しておくことを行います.その理由は,この後行う設定の中にバージョン名がフォルダ名になっているところがあるためです.下の図のようにlsコマンドでパージョン(正確にはバージョン名が書かれているフォルダ)を確認しておいてください.

UsbDownloadCable 08 5

次に設定します.sudoを実行するときのパスを追加することです.その設定ファイルであるsudoersをvisudo(テキストエディタ)で開きます.

sudo visudo /etc/sudoers

 

ここではnanoというテキストエディタが開かれました.下の図のようにsecure_pathに追記してください.パスのデリミタ(区切り文字)は「:」です.もともと書かれている/usrの前にデリミタを忘れずに入れてください.なお,ここに追記しているlinux-toolsのバージョン(5.15.0-70)が変わった場合には,そこを修正する必要があります.

UsbDownloadCable 09

 

パスを追記しましたら保存してエディタを終了します.コントロール(Ctrl)キーを押しながらXを押してください.下の図はそれを表してます.「^」がCtrlキーを表しています.

UsbDownloadCable 10 

 

次にYを押します

UsbDownloadCable 11

 

最後にエンターキーを押します.これで保存+終了となるはずです.

UsbDownloadCable 12

 

最後に下に書かれたコマンドを実行します.

sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

 

これでWSL側の設定は終わりです.

USBダウンロードケーブルの設定(Windows側の設定)

 次にWindows側の設定を行います.冒頭の環境でもお話ししましたが,Windows側にISE WebPACKを動かしていたPCに対してしか動作の確認をしていません.Windows側にISE WebPACKをインストールしていないとケーブルのドライバ(Windows側)がないため,正しく動作しないかもしれません.

さて,WindowsマシンにUSBで接続されたダウンロードケーブルをWSL側のものとして使用するにはusbipd-winというアプリを使用します.下の図のようにgithubからインストーラをダウンロードしてください.

UsbDownloadCable 01

 

ダウンロードしましたらインストーラを起動します.下の図のようにインストーラをダブルクリックしてください.

UsbDownloadCable 02

 

インストールが始まると下の図ように様になります.インストールボタンを押してください.

UsbDownloadCable 03

 

ユーザアカウント制御が発生しますので「はい」を押してください.

UsbDownloadCable 04

 

インストールが終わりましたら「Close」を押してください.

UsbDownloadCable 05

 

 次にPowerShellを管理者として開きます.下の図のようにしてください.

Wsl2 01

 

ユーザアカウント制御が働きます.

Wsl2 02

 

次にダウンロードケーブルをパソコンのUSBポートに接続します.そのうえで下のようにコマンドを売ってください.その結果,Xilinxと名前が付いたデバイスが現れるはずです.環境によっては「Xilinx USB Cable」となっているかもしれません.さて,この中で大事なことは一番左側にあるBUSIDです.下の例では2-1となっていますがこの値は使っているパソコンにより異なりますので注意してください.そしてこのBUSIDを後程使いますので覚えておいてください.

UsbDownloadCable 30

 

先ほど覚えたBUSIDを使い,次のように書きます.

UsbDownloadCable 31

 

その後,もう一度,リストを表示させてみます.その結果,右側にあるSTATEがAttached - Ubuntuになったかと思います.

UsbDownloadCable 32

 

 この状態で,WSL側にダウンロードケーブルが現れるはずです.WSL(Ubuntu)でlsusbと打ち込むと,下のようになります.

UsbDownloadCable 33

 

以上でダウンロードケーブルが正しく認識されているはずです.

起動方法

ISE WebPACK

最後にISE WebPACKの起動方法についてです.WSL(Ubuntu)で次のコマンドを打ち込んでください.

ise

 

IMPACT

ISE WebPACK上からImpactを起動しようとすると,正しく起動しないことがあるようです.このため,ダウンロードするときにはimpactとUbuntuのターミナルから入力してください.このため,2つのターミナル(Ubuntu)を立ち上げ,それぞれでiseとimpactを起動するとよいでしょう.IMPACTを起動するときは以下のようにします.

impact

 

PlanAhead

PlanAheadもISE WebPACK上から正しく動作しないことがあるようです.IMPACTと同様,Ubuntuのターミナルから起動してください.ただし,PlanAheadはiseやIMPACTとは別のディレクトリにあるため,パスを通しておくと便利です.パスの通し方についてはこちらで説明してあります.

planAhead

 

ISim

 シミュレータであるISimについては,下に示すようにターミナルへコマンドを入力すれば動作します.

isimgui