UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Newbie jnaughto
Newbie
2,614 Views
Registered: ‎07-24-2012

Can't Gain Access to USB Cable

Hi All,

 

I have been runing Scientific Linux version 5.5 and using the Xilinx 9.2i to program a Spartan 3E board without any issues over the past two years.  Yet I'm upgrading the version of linux from 5.5 to 6.2 and ran into an issue trying to see the board.  Now Scientific linux 6.2 is using the 2.6.32-220.23.1.el6.i686 which is using udev to setup the board.  I've reviewed:

 

http://www.rmdir.de/~michael/xilinx/

 

specifically the part where it says:

 

2010-03-15: If you are using newer udev-versions (like the version included in Debian Squeeze and Ubuntu 9.10), then the file /etc/udev/rules.d/xusbdfwu.rules is incompatible with this udev version. The effect of this is that the cable-firmware gets never loaded and the cable led never lights up.


To fix this, run the following command as root:
sed -i -e 's/TEMPNODE/tempnode/' -e 's/SYSFS/ATTRS/g' -e 's/BUS/SUBSYSTEMS/' /etc/udev/rules.d/xusbdfwu.rules
You may have to reboot for this change to take effect.

 

and made the necessary changes.   I've created the file /etc/udev/rules.d/50-MyXilinxBoard.rules which contains:

 

ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0008", MODE="666"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $tempnode"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xup.hex -D $tempnode"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_emb.hex -D $tempnode"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xlp.hex -D $tempnode"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xpr.hex -D $tempnode"

 

Now the program runs without a hitch as root.  Yet I have no interest in running anything as root on an on-going process.  When I attempt to run the program as a user I get the following issues;

 

PORT_INDEX = 0.
CB_CABLE_COUNTER = 0.
DeviceAttach: Cable found for usb21.
Calling setinterface num=0, alternate=0.
DeviceAttach: received and accepted attach for:
  vendor id 0x3fd, product id 0x8, device handle 0xb37004b0
usb_claim_interface: 0 -> -1 (could not claim interface 0: Operation not permitted)
usb_transfer: -1 (error sending control message: Operation not permitted)
usb_claim_interface: 0 -> -1 (could not claim interface 0: Operation not permitted)
usb_transfer: -1 (error sending control message: Operation not permitted)

 

I know this is a permissions issue the problem is that I can't find where I have to change the permissions to allow ANY user to program the board.  I have no issues with giving MODE="666" for users to gain access to these boards.  Any advice would be helpful.

 

Cheers

 

Jason

 

Tags (3)
0 Kudos