家里的计算机安装了WIN10,出于够用且安装文件小,想安装QuartusII9.1,按M$风格,驱动绝对是安不上的.正好是双系统ubuntu14.04 64位。安装过程不太顺利,记录下来,当作已经不灵光的大脑的备份.

  按正常步骤安装好,并打好补丁SP1和SP2,基本顺利,这里注意的是,有的安装脚本中声明的SHELL是CSHELL,运行时有命令找不到,将声明中的CSH改为TCSH再安装即可.

  接下来就是老大难的JTAG的USB BLASTER不能识别的问题. 由于ubuntu并不在官方支持的系统中(至少是Quartus9.1是这样的), ubuntu14是在其很久以后的版本,也就是LINUX的内核有改变.故需要特别理一下.

  由于JTAG-SERVER默认是在RC.D中应该作为以ROOT权限一个服务运行的,故不存在权限的问题,只需要针对新内核没有USB FS处理一下,而不需要重新修改默认的权限.如果需要像WIN下面那样,直接随用随启动JTAG-SREVER,则不但需要处理USB FS的问题, 还需要设置权限.下面是作为普通用户权限运行做的步骤:

usb blaster 配置

USB权限的设置

(抄自于http://blog.csdn.net/xforce_zuoxiang/article/details/18092023,并表示谢意)

因为usb 默认只有root才有权限访问,所以只要把权限修改一下即可,usb blaster 链接上电脑

  1. $ lsusb
  2. Bus Device : ID 1d6b: Linux Foundation 1.1 root hub
  3. Bus Device : ID 1d6b: Linux Foundation 2.0 root hub
  4. Bus Device : ID 1d6b: Linux Foundation 1.1 root hub
  5. Bus Device : ID 1d6b: Linux Foundation 1.1 root hub
  6. Bus Device : ID 09fb: Altera Blaster
  7. Bus Device : ID 1d6b: Linux Foundation 2.0 root hub
  8. Bus Device : ID 1d6b: Linux Foundation 1.1 root hub
  9. Bus Device : ID 093a: Pixart Imaging, Inc. Optical Mouse
  10. Bus Device : ID 1d6b: Linux Foundation 1.1 root hub

说明 /dev/bus/usb/001/003这个文件现在就是我们的Altera Blaster设备

  1. $ cd /dev/bus/usb/
  2. $ ls -l
  3. 总用量
  4. crw-rw-r-- root root , 5 :
  5. crw-rw-rw- root root , 5 :

很明显只有root组的用户才有权限使用usb

  1. $ sudo chmod ./

给用户组以外的用户加上写权限即可

不过由于003路径这个是系统分配的,有的时候就不是这个路径了,所以如果下不进去的时候,就lsusb一下看看有没有更改到别的路径,然后重新chmod一下就可以了。
不过这样每次都需要改还是麻烦,PC应该为人服务而不是人为PC服务,所以我们用udev设置规则让每次检测到usb blaster的设备mode改成666(rw-rw-rw-)就行了
很简单就是在/etc/udev/rules.d这个默认的规则目录下新建一个以rules为后缀的文件来书写我们的文件,
并且名字虽然可以任意不过前两个数字最好要保证比之前存在的要大,就是这个是决定优先顺序的,
我在这里建了一个名为80-usbblaster.rules:
sudo nano /etc/udev/rules.d/80-usbblaster.rules
然后里面添加这句话:
ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="666"
保存就OK了,这个意思是是说idendor是09fb且idProduct是6001的时候,mode要设置成666,之后这个USBBLASTER用起来就相当方便了。

至此,USB的权限问题设置完成,由于原作者使用的是ubuntu14+quartus12,看样子就可以直接使用了,但对于我们,问题远没有结束

内核变动的修改

ubuntu9.1及以后版本的内核中,USB fs不在使用,故不再存在/proc/bus/usb这个目录,而不幸的是,QuartusII9.1使用的是这个目录来驱动USB Blaster.

使用下面的两条来修正这些改变:

  1. mount --bind /dev/bus /proc/bus
  2. ln -s /sys/kernel/debug/usb/devices /proc/bus/usb/devices
  1. 完整的步骤如下:
  1. $ sudo killall jtagd
  2. $ sudo chmod /sys/kernel/debug/usb/devices
  3. $ sudo chmod /sys/kernel/debug/usb
  4. $ sudo chmod /sys/kernel/debug
  5. $ sudo mount --bind /dev/bus /proc/bus
  6. $ sudo ln -s /sys/kernel/debug/usb/devices /proc/bus/usb/devices
  7. $ sudo <quartus_directory>/bin/jtagd
  8. $ sudo <quartus_directory>/bin/jtagconfig
  1. 可以看到,在修正之前,修改了权限,否则jtagd依然没有办法使用普通用户权限去访问devices

当可以使用DEBUG的方式来启动jtagd

  1. $ ./jtagd --foreground --debug --user-start --config /etc/jtagd/jtagd.pgm_parts
  2. JTAG daemon started
  3. Using config file /etc/jtagd/jtagd.pgm_parts
  4. No remote JTAG because stops when idle

然后检查一下jtagconfig是否可以检测到USB BLASTER

  1. $ ./jtagconfig
  2. ) USB-Blaster [USB -1.4]
  3. 020B20DD EP2C8

此时是已经插入了开发板了,如果没有接开发板则显示

1) USB-Blaster [USB 1-1.4]
  Unable to read device chain (JTAG chain broken)

只要可以找到USB-Blaster就OK了.

有的把jtagd作为一个系统服务,看个人需要, 在Quartus烧写的时候,会自动启动它,超时不使用时,会自动退出,似乎没有很大的必要.

参考:

http://ubuntuforums.org/showthread.php?t=1441742

http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/

http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/

环境变量的设置
在64位环境,如果没有设置环境变量,则启动Quartus的时候,要加上 --64bit参数,否则会提示找不到共享库,虽然共享库已经存在,但实际上是因为是启动了32位的程序导致的.

有人设置了自己的环境变量来解决此问题,目前自己直接在启动加参数.

其它问题

似乎有人在安装MODSIM和DSP BUILDER的时候也有些麻烦,目前还没有安装,到时候如果有了问题再记录补充.

ubuntu14.04中安装QuartusII9.1步骤的更多相关文章

  1. 在Ubuntu14.04中安装Py3和切换Py2和Py3环境

    前几天小编给大家分享了如何安装Ubuntu14.04系统,感兴趣的小伙伴可以戳这篇文章:手把手教你在VMware虚拟机中安装Ubuntu14.04系统.今天小编给大家分享一下在Ubuntu14.04系 ...

  2. 如何在Ubuntu14.04中安装mysql

    接触过MySQL的小伙伴们都知道,在Windows下安装MySQL是一件让人十分头大的事情,但是在Ubuntu等其他Linux系统中安装MySQL就简单很多了,具体的教程如下.1.在Ubuntu的命令 ...

  3. (原)ubuntu14.04中安装gcc4.9和g++4.9

    http://stackoverflow.com/questions/28683747/installing-gcc4-9-on-ubuntu-14-04-lts http://askubuntu.c ...

  4. Ubuntu14.04中安装Sublime_Text_3

    Sublime Text 简介 Sublime Text 是一款流行的文本编辑器软件,有点类似于TextMate,跨平台,可运行在Linux.Windows和Mac OS X.也是许多程序员喜欢使用的 ...

  5. ubuntu14.04中安装jdk

    1. 下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 将下载的 .g ...

  6. 如何在Ubuntu14.04中创建Python虚拟环境

    在Ubuntu14.04中安装Python相对比较容易些,最简单的安装方法就是apt-get安装了,具体的教程可以戳这篇文章:在Ubuntu14.04中如何安装Python3和切换py2和py3环境. ...

  7. 在Ubuntu14.04中配置mysql远程连接教程

    上一篇文章,小编带大家学会了在Ubuntu14.04中安装MySQL,没有来得及上课的小伙伴们可以戳这篇文章:如何在Ubuntu14.04中安装mysql,今天给大家分享一下,如何简单的配置MySQL ...

  8. Ubuntu14.04 Tomcat 安装过程记录

    Ubuntu14.04 Tomcat 安装过程记录 检查java的版本 zhousp@ubuntu:~$ sudo java -version [sudo] password for zhousp: ...

  9. 在 Ubuntu 16.04 中安装支持 CPU 和 GPU 的 Google TensorFlow 神经网络软件

    TensorFlow 是用于机器学习任务的开源软件.它的创建者 Google 希望提供一个强大的工具以帮助开发者探索和建立基于机器学习的应用,所以他们在去年作为开源项目发布了它.TensorFlow ...

随机推荐

  1. Sql狗血的Bit类型赋值与取值

    Bit 数据类型在 SQL Server 数据库中以存储 1.0 进行存储. 往数据库中添加,修改 bit 类型的字段时,只能用 0 或者 1. 关于修改 Bit 类型的字段 1.若使用 SQL 语句 ...

  2. POJ 2942 Knights of the Round Table(双连通分量)

    http://poj.org/problem?id=2942 题意 :n个骑士举行圆桌会议,每次会议应至少3个骑士参加,且相互憎恨的骑士不能坐在圆桌旁的相邻位置.如果意见发生分歧,则需要举手表决,因此 ...

  3. HDU3362+状态压缩

    dp[ i ]表示该状态下得所需花费. /* 状态压缩dp dp[i] = min( dp[ i-j ]+cost[ j ] ); 由i-j的状态转到i的状态 */ #include<stdio ...

  4. 在eclipse中将项目发布到tomcat的root目录

    (1)设置项目上下文,右击项目-properties   >Web Page Edit

  5. easyui源码翻译1.32--TreeGrid(树形表格)

    前言 扩展自$.fn.datagrid.defaults.使用$.fn.treegrid.defaults重写默认值对象.下载该插件翻译源码 树形表格用于显示分层数据表格.它是基于数据表格.组合树控件 ...

  6. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-006-给bean运行时注入值(Environment,Property文件)

    一. 直观的给bean注入值如下: @Bean public CompactDisc sgtPeppers() { return new BlankDisc( "Sgt. Pepper's ...

  7. Git push错误non-fast-forward后的冲突解决

    当要push代码到git时,出现提示: error:failed to push some refs to ... Dealing with “non-fast-forward” errorsFrom ...

  8. webstore+nodejs

    新建一个普通的project. 编写如下代码: var http=require('http'); http.createServer(function(req,res){ res.writeHead ...

  9. ORACLE查看锁(lock)情况

      SELECT /*+ RULE */         ls.osuser os_user_name,          ls.username user_name,          DECODE ...

  10. @Resource和@Autowired

    @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了.@Resource有两个属性是比较重要的,分 ...