Mike Karasoff
1. Project Responsibilities
2. Contact information
Email: <mkarasoff AT rgb DOT com>
3. Yum Trick
If you want to duplicate a yum package installation from an existing CentOS installation to new CentOS installation of the same version and architecture:
On the machine with the existing CentOS installation run:
#yum update $yum list installed -q | awk '{print $4 " " $1}' | grep -v "^ Installed$" > yuminstalledlist $tar -cvf yumconfig.tar /etc/yum*
On the machine with the new CentOS installation, run:
$scp <user>@<existing CentOS install machine>:yum* localhost $tar -cvf yumconfig.bak.tar /etc/yum* #tar -C / -xvf yumconfig.tar #yum install -y $(cat yuminstalledlist)
If your architectures differ, you can use rpm -qa to print out a list of installed packages without architecture suffix on the existing installation.
4. Freenx Configuration
- If using multiple multiple sessions on a single client remember to set the DISPLAY_BASE=XXXX different for each server.
The text in the CentOS FreeNX HowTo http://wiki.centos.org/HowTos/FreeNX can be confusing. In particular:
"In the advanced dialog window under the General Tab, you should see the items you have already entered and a Key... button. You will need to ssh into the server which you are trying to connect and go to the /etc/nxserver/ directory and edit the file client.id_dsa.key..."
It may be better if it were to read:
"In the advanced dialog window under the General Tab, you should see the items you have already entered and a Key... button. You will need to ssh into the server which you are trying to connect and go to the /etc/nxserver/ directory and open the file client.id_dsa.key..."
Editing this file implies that the the goal is to change the file on the server, which (if anyone has ever done this knows) it can break things.
FreeNX and gnome-screensaver don't mix - after some time the cursor will break. Uninstall gnome-screensaver fixes this problem.
5. Altera 9.1 Tips
These tips should be good for both 9.1 version of Quartus.
Installation and Setup
9.1 Installation from Disk
NOTE: Altera appears to have removed the full Quartus 9.1 installations from it's website. A web based installer is now available; however, this requires a GUI installation, and so all of the "Installation from Disk" instructions below are moot.
Like all Quartus tools, it you must install the base version first and then subsequent service packs in order. If you are installing the Nios tools as well, then the order should be: 1. Quartus Base Package 2. Nios Base Package 3. Quartus SP1 Package 4. Nios SP1 Package etc.
It helps to copy/unpack the CD onto the hard drive first. The Quartus tools do not require a gui window to install, but you must be root. In the unpacked installation disk directory run:
$ sudo ./install
9.1 Path Setup
For SOPC/Nios development, the following PATH modifications are useful (with SW rev numbers changed as needed):
export PATH = $PATH:/opt/altera9.1/quartus/bin:/opt/modeltech/bin:/opt/altera9.1/quartus/sopc_builder/bin/:/opt/altera9.1/quartus/bin:/opt/modeltech/bin:/opt/altera9.1/nios2eds
Set Loopback Hostname
Edit/Verify that the loopback entry in /etc/hosts includes the name of the host returned by the $hostname command:
127.0.0.1 <Response from `hostname` command> localhost.localdomain localhost
USB Blaster Driver Setup
In the user's home directory, create a jtagd.conf file.
$touch .jtagd.conf
To setup USB blaster properly, you must add an entry in udev. First open the new file for editing:
#vi /etc/udev/rules.d/51-usbblaster.rules
Add this entry to the file and save:
# USB-Blaster BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6001", MODE="0666", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf /proc/bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", RUN+="/bin/chmod 0666 %c"
Nios 9.1 Tools Setup
Launch scripts are helpful to properly set the environment variables. Setting these environment variables globally can have adverse effects on other portions of Quartus.
For the "Legacy" IDE:
SOPC_KIT_NIOS2=/opt/altera9.1/nios2eds export SOPC_KIT_NIOS2 SOPC_BUILDER_PATH_91=/opt/altera9.1/nios2eds+$SOPC_BUILDER_PATH_91 export SOPC_BUILDER_PATH_91 unset GCC_EXEC_PREFIX QUARTUS_ROOTDIR=/opt/altera9.1/quartus/ export QUARTUS_ROOTDIR /opt/altera/nios2eds/bin/nios2-ide
For the eclipse IDE 9.1:
SOPC_KIT_NIOS2=/opt/altera9.1/nios2eds export SOPC_KIT_NIOS2 SOPC_BUILDER_PATH_91=/opt/altera9.1/nios2eds+$SOPC_BUILDER_PATH_91 export SOPC_BUILDER_PATH_91 unset GCC_EXEC_PREFIX QUARTUS_ROOTDIR=/opt/altera9.1/quartus/ export QUARTUS_ROOTDIR /opt/altera/nios2eds/bin/eclipse-nios2
For the Nios/Bash shell:
SOPC_KIT_NIOS2=/opt/altera9.1/nios2eds export SOPC_KIT_NIOS2 SOPC_BUILDER_PATH_91=/opt/altera9.1/nios2eds+$SOPC_BUILDER_PATH_91 export SOPC_BUILDER_PATH_91 unset GCC_EXEC_PREFIX QUARTUS_ROOTDIR=/opt/altera9.1/quartus/ export QUARTUS_ROOTDIR bash --rcfile $QUARTUS_ROOTDIR/sopc_builder/bin/nios_bash
Hardware Notes
Quartus9.1 and RAM usage appear to top out around 2G, and so I run with about 4G and turn swap off. Multiple processor are used only during certain stages of build. Speed is used at all times. If you selecting a machine on a budge it is best to put money towards speed first.
6. Altera 11.0 Tips
Running Multiple Version of Quartus
Running multiple version of Quartus requires altering the PATH variable based on the version running. I've removed any mention of Quartus from .bashrc and run the script that sets the PATH for the version I'm running.
This is the startup script I use for Quartus 11.0.
# quartus_11 QUARTUS_PATH=/usr/local/bin:/opt/altera11.0/quartus/bin:/opt/altera11.0/quartus/sopc_builder/bin/:/opt/altera11.0/nios2eds/bin/gnu/H-i686-pc-linux-gnu/bin:/opt/altera11.0/nios2eds/bin PATH=$PATH:$QUARTUS_PATH /opt/altera11.0/quartus/bin/quartus & exit
This is the startup script I use for Quartus 9.1.
# quartus_9 QUARTUS_PATH=/usr/local/bin:/opt/altera9.1/quartus/bin:/opt/altera9.1/quartus/sopc_builder/bin/:/opt/altera9.1/nios2eds/bin/gnu/H-i686-pc-linux-gnu/bin:/opt/altera9.1/nios2eds/bin PATH=$PATH:$QUARTUS_PATH /opt/altera9.1/quartus/bin/quartus exit
7. Xilinx ISE 12 Tips
openmotif.so.3 and an older libstdc++ are needed for the FPGA editor
sudo yum install openmotif sudo yum install openmotif22 sudo yum install compat-libstdc++-33-3.2.3-61
Performance Tweaks
Install enough RAM to avoid using swap. Ram usage may be dependent on the FPGA you are targeting, but is generally in the 1-3GB range.
Mounting drive with noatime and data=writeback options appears to shave about 5% off build times of large FPGAs.
FPGA builds generally gobble up machine resources to the point where little else can practically get done, so renice -10 during a build can shave some time off as well.