|
|

楼主 |
发表于 2007-7-31 10:14:20
|
显示全部楼层
用这个方法安装驱动,无需先安装xilinx提供的那个驱动。这个驱动无需内核支持,不用编译内核。 内核升级之后也不影响驱动的正常使用。
引用原文:http://www.forwind.cn/2007/05/07/linux-fpga-howto2-usbcable/
linux-fpga系列文章之——如何在ubuntu下安装FPGA usb cable的驱动
xilinx FPGA的usb下载线驱动只有for red hat版本的,我用的是ubuntu linux,所以一开始不能使用。在网上搜了好久,发现在纯linux环境下使用eda工具的真的比较少,是都不愿意分享经验?还是都觉得太麻烦?最后,终于从group中搜索到一个好办法,分享如下:
1 从这里下载压缩归档包,并解压缩
2 通过sudo apt-get install libusb-dev来安装libusb库
3 进入usb-driver目录,make
4 将所生成的.so文件拷贝到某个path下,例如/user/local/lib
5 $export LD_PRELOAD=/usr/local/lib/libusb-driver.so引入变量(我用的sh,csh的方法请见README)。建议直接写在.bashrc中
6 在/etc/udev/rules.d/目录下建立一个新文件50-xilinx-usb-pav.rules(不要轻易修改50这个数字,这个与加载顺序有关。如果你的机器中已经有以50开头的rules,就请把这里的50往后顺延,比如51,52等等),并粘贴以下内容:
ACTION==”add”, BUS==”usb”, SYSFS{idVendor}==”03fd”, MODE=”666″
7 执行命令/etc/init.d/udev restart 来重新启动udev
8 打开你usb cable所连接的电路板,用lsusb | grep Xilinx,应该就可以看到以下字样
Bus 002 Device 003: ID 03fd:0009 Xilinx, Inc.
9 这就表示系统已经把你的cable认出来了。但是请注意,如果得到的ID不是03fd:0008,都表示初始固件并没有被加载
10 此时需要更新固件。首先将ise安装目录下的bin/lin下的xusbdfwu.rules文件拷贝到/etc/udev/rules.d/目录下。然后安装fxload工具。这是一个用于将固件下载到相应USB设备中的工具。用以下命令:
sudo /sbin/fxload -v -t fx2 -I /home/pav/Xilinx/bin/lin/xusbdfwu.hex -D /proc/bus/usb/002/004
必须注意,这里的最后两个数字002和004是取决于你lsusb中下载线揽对应的数字,每次插可能都不一样的,在打开板子后先lsusb确认以下,再用上面这个命令
11 为了保险起见,再进行以下步骤:把/path/to/ISE/bin/lin/xusbdfwu.hex复制到/usr/share/xusbdfwu.hex,最后restart udev,并重新插上usb下载电缆
12 这时候应该可以了。lsusb看看, ID应该已经变成了03fd:0008
13 如果你还是不行的话,还有一招就是,从ftp://ftp.xilinx.com/pub/utiliti ... 10步开始重复
需要特别注意一点的是,由于每一次关闭下载线所连接的电缆,然后再打开的时候,下载线揽对应的两个数字都可能改变,此时xps可能无法认出下载线,你必须在后台用lsusb命令不断观看下载线的辨认情况,可能一会又认出来一会又消失了,因此必须不断刷新等待它稳定到无论什么时候lsusb都能看到下载线的usb设备为止,之后才能继续下载程序。还有就是如果一开机就使用了u盘这种usb设备,它可能会把下载线本来应该在的通道占据,同样会出现无法下载的情况,这时的解决办法就是取下所有usb设备,重新启动,然后最先插上下载线,再打开xps或者ise。如果实在出现不能下载的情况,就重新启动机器,注意,千万注意,在电脑重新启动的过程中电路板不要上电,否则重新启动后你还会一直不能下载,必须等电脑启动完毕后才能重新打开电路板。
软件包的主页上有更加详细的资料,包括并行电缆线的使用。
国外的朋友真是有闲心研究,相当羡慕阿。不过奇怪的是,fpga在linux环境下的嵌入式开发,应该用的人也不少,为什么网上就很少有人讲这个环境下ise,xps等的使用经验呢?难道都用red hat?呵呵,国内的分享氛围还是不足阿。
如果你的内核里面没有打开并口,请一定要打开。否则Impact运行的时候不示任何错误就退出。 |
|