web-dev-qa-db-ja.com

Ubuntu 16.04 x64にxilinxプラットフォームusbをインストールする

Ise14.7を正しくインストールし、プラットフォームケーブルをインストールするためのこのガイドに従ってください。すべてのステップが正しかった。私のls usbコマンドの出力はこのようなものです

$ lsusb
Bus 002 Device 022: ID 03fd:0008 Xilinx, Inc. Platform Cable USB II
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Xilinx usbデバイスが接続され、usbdevが正常に動作していることを私のOSが確認できます。しかし、私のケーブルは機能しません。次に、次のようなインパクトの出力が表示されます。

Active mode is BS
Project: '/home/faryad_mfa/Desktop/Projects/GE_TS_XILINX/GE_TS_XILINX.ipf' loaded.
GUI --- Auto connect to cable...
INFO:iMPACT - Digilent Plugin: Plugin Version: 2.4.4
INFO:iMPACT - Digilent Plugin: no JTAG device was found.
AutoDetecting cable. Please wait.
*** WARNING ***: When port is set to auto detect mode, cable speed is set to default 6 MHz regardless of explicit arguments supplied for setting the baud rates
PROGRESS_START - Starting Operation.
If you are using the Platform Cable USB, please refer to the USB Cable Installation Guide (UG344) to install the libusb package.
Connecting to cable (Usb Port - USB21).
Checking cable driver.
 Linux release = 4.4.0-42-generic.
WARNING:iMPACT -  Module windrvr6 is not loaded. Please reinstall the cable drivers. See Answer Record 22648.
Cable connection failed.
Connecting to cable (Parallel Port - parport0).
 Linux release = 4.4.0-42-generic.
...

その後、このリンクにあるxilinxヘルプドキュメントを使用してドライバーをインストールします。

ターミナルでこのコマンドを入力します

Sudo ./install_drivers

エラーが発生します:

--Driver versions in this package: windrvr=900, xpc4drvr=1041
--Script name = ./install_drivers
--HostName = mehrkavir-Lab2
--Current working dir = /opt/Xilinx/install_drivers
--Script location = /opt/Xilinx/install_drivers
--Kernel version = 4.4.0-42-generic.
--Arch = x86_64.
--Installer version = 1053
--Unsetting Arch environment variable.
--User has root permission.
--File /lib/modules/misc/install_windrvr6 does not exist.
--Installing USB drivers------------------------------------------
--File /etc/hotplug/usb/xusbdfwu.fw/xusbdfwu.hex exists.
./setup_pcusb: 94: ./setup_pcusb: Bad substitution
--File /sbin/fxload exists.
--Installing windrvr6---------------------------------------------
--Checking version.
--File /lib/modules/4.4.0-42-generic/kernel/drivers/misc/windrvr6.ko does not exist.
--File LINUX.4.4.0-42-generic.x86_64/windrvr6.ko does not exist.
--Setting source version to 900.
--File LINUX.4.4.0-42-generic.x86_64/windrvr6.ko is newer than the destination file.
checking for cpu architecture... x86_64
checking for WinDriver root directory... /opt/Xilinx/install_drivers/linux_drivers/windriver64
checking for linux kernel source... found at /lib/modules/4.4.0-42-generic/build
checking for lib directory... ln -sf $(ROOT_DIR)/lib/$(SHARED_OBJECT)_32.so /usr/lib/$(SHARED_OBJECT).so; ln -sf $(ROOT_DIR)/lib/$(SHARED_OBJECT).so /usr/lib64/$(SHARED_OBJECT).so
checking which directories to include... -I/lib/modules/4.4.0-42-generic/build/include
checking linux kernel version... hello.c:1:30: fatal error: linux/utsrelease.h: No such file or directory
compilation terminated.
not found
configure: error: can't find kernel version
make: *** No rule to make target 'clean'.  Stop.
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target 'install'.  Stop.
--make windrvr install rc= 2
--install_windrvr6 rc = 2
--Module windrvr6 is not running.
--Module xpc4drvr is not running.
--Note: By default, the file permission of /dev/windrvr6 is enabled for the root user only
  and must be changed to allow access to other users.

--Return code = 2

この行に基づいたカーネルバージョンに問題があると感じています

checking which directories to include... -I/lib/modules/4.4.0-42-generic/build/include
checking linux kernel version... hello.c:1:30: fatal error: linux/utsrelease.h: No such file or directory
  1. ドライバーを正しくインストールするにはどうすればよいですか?

  2. このドライバーをインストールする別の方法はありますか?

1

この環境設定でこの問題を解決しました。

#Xilinx ISE path *****************
LM32_TOOLS=/opt/gcc-lm32/bin
XILINX=/opt/Xilinx/14.7/ISE_DS
export XILINX
Host_PLATFORM=lin64
export Host_PLATFORM
XILINX_BIN=${XILINX}/ISE/bin/${Host_PLATFORM}
export XILINX_BIN
PATH=${PATH}:${XILINX_BIN}:${LM32_TOOLS}
XILINX_EDK=${XILINX}/ISE/EDK/bin/lin64
export XILINX_EDK
XILINX_CSE_TCL=${XILINX}/ISE/cse/tcl
#XILINX_CSE_TCL=/usr/lib/tclx8.4/
export XILINX_CSE_TCL
XIL_IMPACT_USE_LIBUSB=1
export XIL_IMPACT_USE_LIBUSB
XIL_IMPACT_USE_WINDRIVER=1
export XIL_IMPACT_USE_WINDRIVER
#export XILINX_USB_DEV= "001:005"
#export LD_PRELOAD="/usr/share/libusb.so"
#export LD_PRELOAD="/opt/Xilinx/usb-driver/libusb-driver.so";
export XKEYSYMDB=/usr/share/X11/XKeysymDB
export DISPLAY=:0
echo "XILINX ISE enviroment seted"
echo ""

PATH=$PATH:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/:/opt/Xilinx/14.7/ISE_DS/EDK/bin/lin64/

ゴールはこちらです:

XIL_IMPACT_USE_LIBUSB=1
export XIL_IMPACT_USE_LIBUSB

また、事前にドングルドライバーをインストールする必要があります。

1

上記の回答は私にとってはうまくいきませんでしたが、以下は最も単純で、Arch Linuxのスタッフが行ったことに基づいています( https://wiki.archlinux.org/index.php/Xilinx_ISE_WebPACK#Xilinx_Platform_Cable_USB-JTAG_Drivers

$ cd /opt/Xilinx/
$ Sudo git clone git://git.zerfleddert.de/usb-driver
$ cd usb-driver/
$ apt install fxload libusb-dev
$ Sudo make
$ ./setup_pcusb /opt/Xilinx/14.7/ISE_DS/ISE
$ Sudo udevadm control --reload-rules

プラグを抜き、再度差し込むと、赤信号が表示されます。

設定ファイルを入手した後、次のenv変数を設定する必要がある場合があります。

$ export LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so
$ impact
1
hqqns

即時ビルド修正(ソリューションではありません)

特定のビルドの問題については、インストーラーがドライバーをビルドしようとしています。そのためには、現在実行中のカーネルがビルドするためのカーネルソースが必要です。取得するコマンドは次のとおりです。

Sudo apt-get install linux-source

これにより、当面のビルドの問題は解決しますが、WinDriverは依然として適切にビルドされません。 リリースドキュメント によると、ISE 14.7バージョンは、すべてのLinuxディストリビューションのうち、RHEL Workstation 5および6(32および64ビット)およびSUSE Enterprise 11(32および64ビット)とのみ互換性があると宣言されています。年齢的には、Ubuntu 9.04程度です。それ以降、カーネルは非常に大きく変更され、RHEL 6.9のカーネルバージョン2.6.32からUbuntu 16.04.1のカーネルバージョン4.4.0に移行しました。 WinDriverはザイリンクスによってメンテナンスされていないため、新しいカーネルバージョンでビルド/動作しません。

潜在的な回避策

DLC9以前のJTAGデバイスを使用している場合、この同じ問題を解決しようとする際に見つけることができた唯一の半回避策です。その場合、WinDriverの代わりにユーザースペースドライバーをビルドおよび使用するための手順を見つけることができます。 ここにある手順 「LinuxでのザイリンクスUSB JTAGプログラマーの使用(ケーブルドライバーのインストール)」見出し。 JTAGデバイスがサポートされているもののいずれでもない場合、または指示の一部(LD_PRELOADの設定など)が欠落している場合は、ビルドされたドライバーから、READMEを必ず参照してください。 gitプロジェクトはJTAGデバイスでは機能しません。


リンクされた命令 の要約版で、いくつかの埋め込み情報が明示的に指定されています:
ドライバーを作成する

Sudo apt-get install gitk git-gui libusb-dev build-essential libc6-dev-i386 fxload libusb-dev
cd /opt/Xilinx     #or some directory to build the driver in
Sudo git clone git://git.zerfleddert.de/usb-driver
cd usb-driver
Sudo make
Sudo cp -a /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/xusb*.hex /usr/share/
sed -e 's/[$]TEMPNODE/%N/' -e 's/SYSFS/ATTRS/g' -e 's/BUS="usb",/SUBSYSTEM="usb", ENV{DEVTYPE}=="usb_device",/' -e 's/MODE=/MODE:=/' /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/xusbdfwu.rules >xusbdfwu-new.rules
Sudo cp xusbdfwu-new.rules /etc/udev/rules.d/
Sudo udevadm control --reload

JTAGデバイスをデタッチして再アタッチします。
ツールを実行します(実行ごとに必要)

source /opt/Xilinx/14.7/ISE_DS/settings64.sh
export PATH=/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64:$PATH
export LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so
impact

編集:

ワーキングソリューション

私が見つけた唯一の既知の有効なソリューションは、ザイリンクスLabToolsの新しいバージョンもインストールし、そこからケーブルドライバーを手動でインストールすることです。使用するデバイスに応じて、少なくとも2014.4のバージョンのLabToolsを選択する必要がありますが、チップタイプをサポートしなくなるほど新しいバージョンではありません(使用しているのはこのためです) 14.7)。元のソリューションが指摘したように、カーネルソースも必要になります。 LabToolsをインストールした後(ドライバーをインストールせずに)、次を実行します。

cd /opt/Xilinx/SDK/2014.4/data/xicom/cable_drivers/lin64/install_script/install_drivers
Sudo ./install_drivers
Sudo ./setup_pcusb
Sudo su -
cd /etc/udev/rules.d
sed -i -e 's/MODE=/MODE:=/g' 52-xilinx*.rules
exit
Sudo udevadm control --reload

JTAGデバイスを切断して再接続し、プロジェクトをドロップするディレクトリからスローアウェイターミナルで次のコマンドを使用してImpactを実行します。

source /opt/Xilinx/14.7/ISE_DS/settings64.sh
source /opt/Xilinx/SDK/2014.4/settings64.sh
impact

影響ツールは2014.4では提供されないため、最終的に14.7バージョンが実行されますが、2014.4バージョンで提供されるすべてのライブラリが存在する場合は代わりに使用されます。

1
mtalexan