终于搞定ISE在虚拟机Virtualbox上ubuntu的下载线XILINX P
0赞
发表于 5/26/2010 1:49:54 PM
阅读(3627)
最暴力的方法当然是直接把/bin/sh的软链接改到bash中, 但是,有优雅一些的方法,
sudo dpkg-reconfigure dash
出现菜单问你是否要dash的时候,选no就可以了。
再次检查一下, ls /bin/sh -al 发现软链接指向/bin/bash就可以了。
讨论:
1. 当然,还有一个办法就是直接把脚本的第一行改为
#/bin/bash
就可以了。 但是,牵扯到的脚本好几十个,改起来还有点麻烦的。
2. 既然function xxxx {} 这种语法并不符合posix要求, 那最好都改成 xxx() {}这种声明方法,以便有更多的兼容性。 这种改动工作量更大些
过几天写封邮件让John Williams改一下。
趁着休假,学习一下petalinux, 让Walkie给我准备了一个USB硬盘,上面装的是CentOS以及整个petalinux的开发工具链。 挺方便的。但是有一点不爽,就是一旦进入CentOS, 就无法使用我平时在Windows下使用的东西,比如outlook什么的。
解决办法是在Windows上装虚拟机,比如用sun的免费Virtualbox。然后在虚拟机上装CentOS,然后装XILINX以及 petalinux的工具链。
问题来了,我目前喜欢用ubuntu, 因为apt-get实在是太好用了。经过一番思想斗争,决定搞定在ubuntu上跑ISE并且是放在虚拟机Virtualbox上跑的方法,造福广大群 众。
(本文由OpenHW.org 的Kevin原创,转载请注明。)
XILINX的ISE能否在ubuntu上工作呢?XILINX的官方回答比较含糊,标准答案是:支持CentOS和RedHat, 其他类型的linux有成功的例子,但不保证。
Walkie告诉我,其实ISE在很多其他版本的LINUX上的安装和运行其实是毫无问题的,唯一的问题就是下载线的驱动在有些LINUX上无法工作。
继续深入研究,发现,下载线的驱动在某些linux下不工作的唯一原因是:目前,下载线的驱动依赖于一个叫windrvr的文件。而该文件目前只有 linux内核2.4的二进制版本,因此遇到2.6内核的linux发布版,如高版本的CentOS或高版本的ubuntu, 就不工作了。
好在一个叫Michael Gernoth的德国人,大公无私地写了一个windrvr的替代版本,并且开放源码,这样,无论碰到什么版本的内核,现场编译一个驱动并安装,就能解决 linux内核版本匹配的问题。源代码包在这里:
git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver
解开压缩包,编译的时候,只需要make就行了,当然,第一次make八成是不过的,因为一般人都不会在ubuntu上预装usb开发包,需要装一下,只 需要这样就可以了:
sudo apt-get install libusb-dev
make完了以后,应该看到libusb-driver.so被生成了。
当然,编译完还需要设环境量, 命令是,export LD_PRELOAD=/你的路径/libusb-driver.so ,为简单起见,可以把这个命令加你的.bashrc里,这样,下一次开一个终端时,就不用手工设了。
你的linux用户需要进入lp组以便有权限,最简单的方法是编辑/etc/group, 把你的用户名加到lp组后面就可以了。
这样,在纯ubuntu上跑xilinx 的问题基本宣告解决。剩下的,就是在虚拟机上跑ubuntu并驱动下载线的问题, 其实就是Virtualbox能否访问宿主机的usb接口上的下载线的问题。
答案是肯定的,只需要在虚拟机Virtualbox上指定并捕获在宿主机的USB上设备就可以了。
这里所谓的“捕获",英文中只有一个Capture, 而写文档的大虾们也懒的写详细过程,认为这是Virtualbox的事,一笔带过。不熟悉Virtualbox的人以为这个捕获是自动进行的,就在那里等 啊,等啊,等得花而都谢了,还没有连上下载线,离成功就差一步,这里用图来说明一下,有图有真象:
1.右键点虚拟机右下角的usb小图标,停留在xilinx上一会,会发现系统中有一个xilinx的usb设备,状态是忙(状态忙的原因是我的宿主 windows上安装ISE的时候已经装过了该设备驱动,你也可以不装或者卸载该驱动,但是要忍受每次插拔下载电缆windows询问你是否要安装驱动的 麻烦)

2.左键点击xilinx,这事应该出现一个小钩,然后状态为"captured".

这样,你再运行impact, 就会出现熟悉的画面,是这样滴,请注意,我把虚拟机的主机Windows背景也一起拷贝进来了。

这里罗列一下我用的各种软件的版本:
1. ISE 11.1
2. Virtualbox 3.0.10
3. WindowsXP
4.XILINX PLATFORM CABLIE USB II
5. ubuntu9.04
其他讨论:
当强行插拔,或者直接在Virtualbox上取消捕获时,想要软恢复impact的正常工作,经常会遇到出错信息,因为驱动锁定了资源。遇到这种情况, 如此操作总能恢复:
1. 关闭Virtualbox
2. 拔掉下
