Package Details: xilinx-usb-drivers 14.7-3

Git Clone URL: https://aur.archlinux.org/xilinx-usb-drivers.git (read-only, click to copy)
Package Base: xilinx-usb-drivers
Description: Platform Cable USB and Digilent USB-JTAG support for Xilinx (iMPACT)
Upstream URL: https://www.xilinx.com/products/design-tools/ise-design-suite.html
Licenses: custom
Submitter: calcmogul
Maintainer: None
Last Packager: klemens
Votes: 4
Popularity: 0.000000
First Submitted: 2016-04-17 09:51 (UTC)
Last Updated: 2020-07-23 23:31 (UTC)

Dependencies (4)

Required by (0)

Sources (0)

Latest Comments

paulkennedy commented on 2023-10-29 17:20 (UTC)

@mitis2010: I receive a near identical error when attempting to run the "initialize chain" step in iMPACT. Here's the info when I look at the coredump in gdb:

Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/_impact4 -intstyle ise -mode bscan -port'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __strcmp_sse2 () at ../sysdeps/x86_64/multiarch/strcmp-sse2.S:160
Downloading source file /usr/src/debug/glibc/glibc/string/../sysdeps/x86_64/multiarch/strcmp-sse2.S
160             movlpd  (%rdi), %xmm1
[Current thread is 1 (Thread 0x7f7b753ee7c0 (LWP 37854))]
Traceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.32-gdb.py", line 60, in <module>
    from libstdcxx.v6 import register_libstdcxx_printers
ModuleNotFoundError: No module named 'libstdcxx'
(gdb) where
#0  __strcmp_sse2 () at ../sysdeps/x86_64/multiarch/strcmp-sse2.S:160
#1  0x00007f7b72381527 in lh_insert () from /opt/Xilinx/14.7/ISE_DS/ISE//lib/lin64/libisl_iostreams.so
#2  0x00007f7b521a9880 in ?? () from /usr/lib/digilent/adept/libdabs.so.2
#3  0x0000000000000002 in ?? ()
#4  0x0000000000000000 in ?? ()

I'm not sure if the problem lies with digilent's libdabs or with ISE itself, but I think one of them is passing a null pointer (or corrupted string) to strcmp causing the segfault. I have not yet identified a work-around.

calcmogul commented on 2022-03-12 17:46 (UTC)

Maybe glibc 2.35 is incompatible with the digilent binaries?

mitis2010 commented on 2022-03-12 15:00 (UTC)

i'm seeing a segfault with he digilent plugin. anyone know how to debug/get more info/attempt a fix?

from gdb: #0 0x00007ffff334e61e in __strcmp_avx2 () from /usr/lib/libc.so.6 #1 0x00007ffff3f81527 in lh_insert () from /opt/Xilinx/14.7/ISE_DS/ISE//lib/lin64/libisl_iostreams.so #2 0x00007fffd35a9880 in ?? () from /usr/lib/digilent/adept/libdabs.so.2

calcmogul commented on 2017-04-17 05:52 (UTC)

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

klemens commented on 2017-01-21 15:55 (UTC)

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 (UTC)

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 (UTC)

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 (UTC) (edited on 2016-12-11 20:30 (UTC) by klemens)

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*