I'm looking for pointers to an installation guide on how to install the Xilinx USB II Cable driver under Gentoo Linux?
I just took a quick look at the installation script(1) and found checks for specific releases (grep -c -i "SUSE" /proc/version) rather than checks for functionality and features, which is a bad thing when it comes to portability across distributions. Also a quick ./configure and make resulted in lots of warnings and errors. Hence I wanted to know if anybody else have walked up this path already.
I checked
formatting link
which seem to be down, at least I get only a blank page.
1)
You don't want to use the WinDrvr that Xilinx provides, it doesn't work for any modern kernel. Set the following variable in your shell before using chipscope or impact
#!/bin/sh # Copyright (c) 2005 Xilinx, Inc. All rights reserved. # # Xilinx, Inc. # XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A # COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS # ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR # STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION # IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE # FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. # XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO # THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO # ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE # FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY # AND FITNESS FOR A PARTICULAR PURPOSE. #
TP_PCUSB_HEX_FILE="xusbdfwu.hex"
TP_KERNEL_VERSION=`uname -r` # check if udev is running on version 2.6.13* and later TP_MAJOR_VERSION=`echo $TP_KERNEL_VERSION | cut -f 1 -d "."` TP_MINOR_VERSION=`echo $TP_KERNEL_VERSION | cut -f 2 -d "."` TP_MINOR_SUBVERSION=`echo $TP_KERNEL_VERSION | cut -f 3 -d "." | cut -f 1 -d "-"`
if [ $TP_MAJOR_VERSION = "2" ] then if [ $TP_MINOR_VERSION = "6" ] then test $TP_MINOR_SUBVERSION -ge "13" if [ $? = "0" ] then if [ $TP_UDEV_ENABLED = "1" ] then TP_USE_UDEV="1" fi; fi; fi; fi;
# $1 - destination directory # $2 - driver name update_hex_file () { TP_INSTALL_DRIVER="1" # default to install #TP_DRV_SRC_PATH="/etc/hotplug/usb/xusbdfwu.fw" TP_DRIVER_FILE=$1/$2 get_hex_file_version $TP_DRIVER_FILE if [ $? = "1" ] then TP_DEST_VERSION=$TP_DRIVER_VER TP_DRIVER_FILE=$2 get_hex_file_version $TP_DRIVER_FILE TP_SRC_VERSION=$TP_DRIVER_VER if [ $TP_DEST_VERSION -lt $TP_SRC_VERSION ] then echo "--File $TP_DRIVER_FILE is newer than the destination file." else echo "--File $TP_DRIVER_FILE is already updated." TP_INSTALL_DRIVER="0" fi; else echo "--Error getting file version for $TP_DRIVER_FILE." fi;
if [ $TP_INSTALL_DRIVER = "1" ] then echo "--Updating $2 file." # Copy hex file to the fw directory. mkdir -p $1 /bin/cp -p $2 $1 fi; }
update_usermap () { TP_ID_PRESENT=`cat /etc/hotplug/usb.usermap | grep xusbdfwu | grep -i -c $1` if [ $TP_ID_PRESENT = "0" ] then echo "--Adding Product ID $1 to the usermap." echo "xusbdfwu 0x0003 0x03fd 0x$1 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00
0x00 0x00000000" >> /etc/hotplug/usb.usermap else echo "--Product ID $1 is already in the usermap." fi; }
file_exists () { if [ -f $1 ] then echo "--File $1 exists." return 1 else echo "--File $1 does not exist." return 0 fi; }
If you use ISE newer than 11 you don't even have to set the XIL_IMPACT_USE_LIBUSB variable. Just make sure you have a symlink /lib/libusb.so to your actual libusb-[version].so file. Then make sure you have the xusbdwfu.rules from $XILINX/ISE/bin/lin64/ at /etc/udev/rules.d/, fxload installed and the *.hex files from $XILINX/ISE/bin/lin64/ copied to /usr/share/.
This works fine for me with Gentoo and dev-libs/libusb from portage for any recent ISE version.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.