はじめに
この文書では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を管理者として実行してください.
起動時,下の図のようにユーザアカウント制御のダイアログが現れますので「はい」を選択してください.
PowerShellが立ち上がりましたら次のようにタイプします.
wsl --install
インストールが完了すると下の図のように再起動をするように言われますのでWindowsを再起動してください.
再起動すると下の図のようなウィンドウが現れます.インストールに少し時間がかかります.私の場合,5分程度はかかっていました.その後,下の図のように新たなアカウントを設定するよう求められます.下の図では書かれていませんが,ユーザ名の後にパスワードを設定します.
これでUbuntuを使うことができます.Ubuntuのウィンドウを閉じて再びUbuntuを使用したい場合には下の図のように「Ubuntu」と検索するとよいです.
最後に,今後インストールするアプリケーションのために,パッケージのアップグレードをしておきます.この時,先ほど設定したパスワードを要求されることがあります.
sudo apt update && sudo apt upgrade
ISE WebPACKのインストール
Xilinx社製 ISE WebPACKを次にインストールします.今回はLinux版をダウンロードし,WSLで動作しているUbuntuのディレクトリへインストールするためのファイルを置き,必要なライブラリ等をインストールしてからISE WebPACKをインストールしていきます.
まずはISE WebPACKをダウンロードしましょう.下図のようにGoogleで「Xilinx ISE WebPACK download」と検索してください.そうすると,ダウロードサイトが見つかるはずです.
今回ダウンロードするのは最新版の14.7です.
14.7にはWindows版もありますが,ここではLinux版をダウンロードします.
ダウンロードするにはサインインする必要があります.もしアカウントを持っていないようであれば作成してください.ダウンロードには30分程度かかると思われます.また,ダウンロードを完了すると拡張子がtarとなっているファイルが得られるはずです.
ダウンロードが終わりましたらそのファイルをUbuntuのディレクトリへコピーします.そのために,下の図のように「\\wsl$」とエクスプローラに入力してください.そうするとUbuntuフォルダが見えるはずです.
その後,下の図のようにホームディレクトリへファイルをコピーします.
上記のファイルを置きましたら解凍します.解凍するには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ボタンを押してください.
次にライセンスに関する同意が求められます.下の図のようにして下さい.
続いてもう1つ,ライセンスの同意が求められます.
次にインストールする製品を選択します.ここではISE WebPACK(無料版)を選択します.
次にインストールするオプションを選択します.ここではCable Driverをインストールしてください.なお,後述しますがこのドライバ,うまくインストールができません.しかし,一部必要なファイルがあるかもしれないため,一応インストールしておきます.
次にインストール先を選択します.デフォルトのままで大丈夫です.
インストールする内容を確認し,インストールを開始します.
インストールには10分程度かかると思います.
インストールが終わると下の図のようになります.
次に,インストールしたアプリケーションに対してパスを通しておきます.下のように入力してください.なお,下の設定では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」と検索します.そうするとライセンスに関するソリューションセンターを見つけられるはずですのでそのサイトへ移動してください.
「無償または評価版精神のライセンスについて」の中に「ザイリンクス製品ライセンス取得ページ」へ移動してください.
このあと,Xilinxのアカウントでサインインしていないと下のようにアカウントとパスワードを入れるようになります.
サインインしたら,アカウントの情報(名前とか)を確認するように促されます.スクロールしていき,下のほうにある「Next」ボタンを押してください.
次にライセンスをダウンロードします.下の図のように,「Manage Licenses」タブを選択したのち,下のほうにある「ISE WebPACK License」を選び,最後に画面左下にあるダウンロードするためのアイコンを押します.これでXilinx.licファイルが得られるはずです.
ダウンロードしたファイルをWSL側に渡します.下の図のように,ホームディレクトリの下にある.Xilinxフォルダへファイルをコピーします.なお,WSLのファイルをエクスプローラで見るには,前に説明した通り,\\wsl$です.
以上で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コマンドでパージョン(正確にはバージョン名が書かれているフォルダ)を確認しておいてください.
次に設定します.sudoを実行するときのパスを追加することです.その設定ファイルであるsudoersをvisudo(テキストエディタ)で開きます.
sudo visudo /etc/sudoers
ここではnanoというテキストエディタが開かれました.下の図のようにsecure_pathに追記してください.パスのデリミタ(区切り文字)は「:」です.もともと書かれている/usrの前にデリミタを忘れずに入れてください.なお,ここに追記しているlinux-toolsのバージョン(5.15.0-70)が変わった場合には,そこを修正する必要があります.
パスを追記しましたら保存してエディタを終了します.コントロール(Ctrl)キーを押しながらXを押してください.下の図はそれを表してます.「^」がCtrlキーを表しています.
次にYを押します.
最後にエンターキーを押します.これで保存+終了となるはずです.
最後に下に書かれたコマンドを実行します.
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からインストーラをダウンロードしてください.
ダウンロードしましたらインストーラを起動します.下の図のようにインストーラをダブルクリックしてください.
インストールが始まると下の図ように様になります.インストールボタンを押してください.
ユーザアカウント制御が発生しますので「はい」を押してください.
インストールが終わりましたら「Close」を押してください.
次にPowerShellを管理者として開きます.下の図のようにしてください.
ユーザアカウント制御が働きます.
次にダウンロードケーブルをパソコンのUSBポートに接続します.そのうえで下のようにコマンドを売ってください.その結果,Xilinxと名前が付いたデバイスが現れるはずです.環境によっては「Xilinx USB Cable」となっているかもしれません.さて,この中で大事なことは一番左側にあるBUSIDです.下の例では2-1となっていますがこの値は使っているパソコンにより異なりますので注意してください.そしてこのBUSIDを後程使いますので覚えておいてください.
先ほど覚えたBUSIDを使い,次のように書きます.
その後,もう一度,リストを表示させてみます.その結果,右側にあるSTATEがAttached - Ubuntuになったかと思います.
この状態で,WSL側にダウンロードケーブルが現れるはずです.WSL(Ubuntu)でlsusbと打ち込むと,下のようになります.
以上でダウンロードケーブルが正しく認識されているはずです.
起動方法
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