Installation of Xilinx ISE 6.3 or ISE 7.1 under Linux (Kernel 2.6.9 / 2.6.11)ContentPreface
This guide is based on the article FPGA-FAQ: How to get the Xilinx parallel cable to work on Linux kernels 2.6.x. System configuration: Linux Debian with kernel 2.6.9, self compiled.
If feasible you should install the latest version of ISE, because version 7.1 seems to have fixed the problem of system hang during synthesis process. If you have any questions, suggestions or solutions, please send me a mail. Installation of Xilinx ISE/EDK using Debian
The installation has to be executed as user
root and you have to mount cdrom with executable rights. Do the following as user root :
/opt/xilinx as installation directory.If you don't work with Red Hat Enterprise 3.0, Kernel 2.4, you better deselect Platform Cable USB Driver and Parallel Cable Drivers. That's what I did. When the installation of disk 1 has finished, unmount it and go on with cd 2 and 3 the same way. Afterwards I have installed the ISE Service Packe 3 (simply unpack and run setup ).EDK can be installed the same way. ISE (and EDK) have the silly habit to save temporary files in the current working directory. So I have written a small shell script to load all nessessary shell variables (runs settings.sh ) and to change to ~/.xilinx before starting ISE.
#!/bin/bash
setup.sh (code bellow) is a small script setting additional shell variables.
#!/bin/bash
setup.sh :
export XILINX_EDK=/opt/edk
Install WinDriver
First install the kernel sources for your running kernel.
You can download the WinDriver from http://www.jungo.com/dnload.html. This requires a free registration. Now you can unpack the file:
make install returns the following:
FATAL: Error inserting windrvr6 (/lib/modules/2.6.11stefan/kernel/drivers/misc/wi
CC=gcc-3.3
make install installs the driver, loads it, and creates the new device /dev/windrvr6 . After creation it's owned by user root and nobody else has the right to access the device. If you want to use it as a normal user you have to set the rw-rights. In my case:
Install the Xilinx driver
Kernel sources have to be installed.
Then do the following, but please check the patch against bad code:
xpc4drvr and rename the old Xilinx makefile:
Makefile ) with the following content (replace
RUN_VERSION=`uname -r`
insmod does not print anything if successful. If you see an error message, e.g the following output
insmod: error inserting './xpc4drv.ko': -1 Invalid module format
dmesg | tail , e.g.:
xpc4drv: version magic '2.6.11 SMP preempt PENTIUM4 gcc-4.0' should be '2.6.11 SMP preempt PENTIUM4 gcc-3.3'
dmesg | tail is printing xpc4drvr: init_module , the module was successfully loaded and you can install it:
Register device at hotplug
setup_pcusb failed to work on my system, therefore I did some modifications. Regrettably I don't remember what the modifications where.If you want to put the XUP-board into operation using ISE 7.1, you should in accordance with the following article incorporate a small modification into /etc/hotplug/usb.usermap . I am not sure if this is still necessary with ISE 8.1, but in any case it seems not harmful. In particular you have to set the value of idProduct from 0x0007 to 0x0009 . Maybe this is superfluous in newer versions of ISE.Then I have restarted hotplug .
xusbdfwu: loaded successfully
Interestingly the Product id of the XUP board changes from 0x0009 to 0x0008 (verifiable with lsusb ). And without this change the USB data transfer does not work for me.
USB transfer in iMPACT
iMPACT can be started directly (
path_to_ise_installation/bin/lin/impact ) or from ISE.After system restart you have to load both driver modules to be able to use USB transfer in iMPACT. Because this was not enough in my case, I have tried several combinations to find out in which order the modules have to be unloaded and loaded. And this USB init scipt is the result (adjust red markings):
#!/bin/bash
After running the script the USB transfer should work. The best way to test whether the board is reachable is to select Cable Auto Connect in the menu Output. If the connection could not be established, you can look into the log of iMPACT by clicking View->View Log File. Here you can get useful information like...
Connecting to cable (Usb Port - USB21).
Connecting to cable (Usb Port - USB21).
If you are working with the EDK, then the fastest way to perform the USB transfer is to run make -f system.make download from your project directory. In advance you have to run the Xilin setup scripts in order to setup the PATH variable for iMPACT and the other programs. The following script settings.sh does the job:
#!/bin/bash
. settings.sh and everything will be configured. The dot may not be left out. It guaranties that the variables, set by the script, are taken over by the shell.Note: You can use lsusb to list all attached USB devices. Since I use the XUP board, it gives me the following output:
Bus 002 Device 008: ID 03fd:0008 Xilinx, Inc.
lsusb . It seems that the board switches itself off after some idle time. Then it helps to turn it off and on again. Afterwards lsusb should list it again.
FAQ
Q:
When running
./setup I get the following error message:
A:
libXm.so.3 is within the Debian package libmotif3 (apt-get install libmotif3 libcurl3 ).
Q:
When running
make -f system.make download I get the following error message:
A:
The system variables are not set. You can call
. settings.sh
to solve the problem.
For further questions the website FPGA-FAQ: How to get the Xilinx parallel cable to work on Linux kernels 2.6.x may be useful.
|