Package Details: xilinx-usb-drivers 14.7-3

Git Clone URL: https://aur.archlinux.org/xilinx-usb-drivers.git (read-only)
Package Base: xilinx-usb-drivers
Description: Platform Cable USB and Digilent USB-JTAG support for Xilinx (iMPACT)
Upstream URL: None
Licenses: custom
Submitter: calcmogul
Maintainer: klemens
Last Packager: klemens
Votes: 1
Popularity: 0.005370
First Submitted: 2016-04-17 09:51
Last Updated: 2017-11-01 03:07

Dependencies (4)

Required by (0)

Sources (0)

Latest Comments

calcmogul commented on 2017-04-17 05:52

I'm orphaning this package because I no longer have test hardware.

klemens commented on 2017-01-21 15:55

I found the problem with impact: It expects to find the firmware files in /usr/share. If they are not in this directory (and have the right version), it simply skips the usb-stage and doesn't even try to find the jtag adapter, but prints the mentioned message about its script which will copy the files into the appropriate locations. Fortunately, symbolic links are also sufficient.

I also updated my patch based one your one: https://gist.github.com/klemens/32acf67a3a2f13244c32f2044232669d It makes the digilent support optional and doesn't use the $XILINX variable as it might not be set when this package is built. It also properly installs the udev rules into /usr/lib instead of /etc.

I have tested this with a Platform Cable USB II and a virtex5. Unfortunately I don't have a digilent programmer.

klemens commented on 2016-12-12 13:51

Ah, right, I did not think about the parallel port. But as the package is called usb-drivers, it doesn't make much sense to include it.

Yes, Impact always runs its setup_pcusb when it is uid 0. If not it prints a message that you should run it manually as root ("Please run `source ./setup_pcusb` from the /opt/Xilinx/14.7/ISE_DS/ISE//bin/lin64 directory with root privilege to update the firmware. Disconnect and then reconnect the cable from the USB port to complete the driver update.").

Regarding your changes: I don't think that the digilent.adept.utilities dependency and the copied plugin should be included in this package, as this is not required for platform-cable-compatible jtag adapters like in my case. Apart from that it works fine. One thing that is still missing is a dependecy on libusb-compat, which I did not notice before as it was already installed.

Adding my user to the uucp group didn't help unfortunately, even after a reboot it still complained that I should run setup_pcusb (like mentioned above) and then just says "Cable connection failed". This is really strange as the usb device in /dev is owned by root:root and made world-writable by the first udev rule. I tried changing its group to uucp and/or using the libusb from Michael Gernoth (zerfleddert.de) instead of libusb-compat, but neither combination worked. The only thing that helps is fakeroot. :/

calcmogul commented on 2016-12-12 02:15

Yea, I'm OK with not adding support for parallel ports. I removed the usb-driver source.

Are you saying iMPACT runs setup_pcusb? That doesn't seem right. This package is intended to do what setup_pcusb does. Namely, install the udev files into the correct locations. By the way, I think I originally got this stuff from http://www.rmdir.de/~michael/xilinx/

When I got the USB-JTAG drivers working, I followed https://wiki.archlinux.org/index.php/Xilinx_ISE_WebPACK#Digilent_USB-JTAG_Drivers and used the udev modifications in this package. I originally modified the xilinx-ise PKGBUILD with the changes on that wiki page, like adding dependencies on fxload and digilent.adept.utilities and installing a plugin. However, those changes make more sense in this package. I incorporated them as well as your changes in https://paste.unixcube.org/k/114cec. I chose to fix up the udev rules with sed instead to keep it general. I finished the class that gave me access to the FPGA I was using, so I'll need you to test the new PKGBUILD for me before I upload it.

Regarding your issues with root privileges, make sure you are a member of the uucp group as https://wiki.archlinux.org/index.php/Xilinx_ISE_WebPACK#Digilent_USB-JTAG_Drivers suggests.

klemens commented on 2016-12-11 20:30

This needs a dependency on fxload and the usb-driver source is not used at all (it is compiled but the resulting library is not installed). However it is not needed anyway in my case, the default libusb works fine. Strictly speaking xilinx-ise is currently a make dependency only, but I think it is better to make it an actual dependency by using the firmware files directly instead of copying them to /usr/share (which is the wrong place anyway). I made a patch for all these changes: https://gist.github.com/klemens/32acf67a3a2f13244c32f2044232669d

One strange thing I noticed: Impact refuses to recognize my adapter if the uid is not 0, which can either be achieved by using fakeroot or running as actual root (not recommended). It also always runs the setup_pcusb script before opening the usb port, which also tries to load the firmware (and fails, because it is outdated). I just put an "exit 0" to the top of this file.
Now the interesting thing is that it works without uid 0 on ubuntu 16.04. *confused*