Skip to main content

Como instalar ISE y EDK 8.1 linux 32

Para comenzar la instalación, vamos al path donde tenemos el ISE, en nuestro caso era un cd:

cd /media/cdrom0
sh setup

Si da un error de shared libraries, instalar:

apt-get install libstdc++5

El ISE sale andando con la instalación directamente desde el CD, excepto por la comuncación JTAG, recomiendo
instalarlo en el $HOME/Xilinx8.1.
La otra es crear una carpeta en /opt/Xilinx8.1 y cambiar de dueño ese directorio, como root hacemos:

chown nombredeusuario:nombredeusuario /opt/Xilinx8.1.

Esta última forma es recomendable si estamos realizando una instalación multiusuario, de esta forma debemos reemplazar $HOME por /opt/Xilinx8.1 en los pasos siguientes.

En una parte nos pregunta si queremos instalar el cable JTAG que nos va a permitir comunicarnos con los dispositivos, le decimos que no, igual ya viene destildado por defecto, pero por las dudas lo aclaro. Esto nos inserta unos módulos privativos que trabajan en el espacio kernel y bueno eso no es muy lindo. Aparte de que no anda, porque inserta un módulo compilado para vaya a saber que versión de kernel.

El driver de comunicación JTAG

Hay dos métodos probados y que funcionaron, uno es bajarse los módulos privativos windrv y xpc4drv compilarlos, renegar como loco y anda. De nuevo esto requiere módulos que se ejecutan en espacio kernel, la otra es usar un emulador de estos módulos en espacio de usuario, esto quiere decir, "sin permisos de root" :).
Clonamos el repositorio

git clone git://git.zerfleddert.de/usb-driver
cd usb-driver
make lib32

Esto nos genera una librería libusb-driver.so que la copiamos por comodidad y costumbre en /usr/local/lib en una consola como root:

cp libusb-driver.so /usr/local/lib

Ya estaríamos en condiciones de usar el impact, abrimos una consola como usuario:

export LD_PRELOAD=/usr/local/lib/libusb-driver.so
$HOME/Xilinx8.1/bin/lin/impact

Si todo salió bien ya podríamos subir el bitstream al chip. Si queremos que las variables ya queden listas para no tener que hacer export cada vez que ejecutemos el ise, hay dos formas. Hacer un script

echo "export LD_PRELOAD=/usr/local/lib/libusb-driver.so && export LANGUAGE=usenglish && $HOME/Xilinx8.1/bin/lin/ise" > $HOME/Xilinx8.1/bin/lin/ISE.sh

darle permisos de ejecución

chmod +x $HOME/Xilinx8.1/bin/lin/ISE.sh

o la otra es setear nuestras variables de entorno por defecto adentro de $HOME/.bashrc. Abrimos en nuestro editor y al principio de todo agregamos la linea

export LD_PRELOAD=/usr/local/lib/libusb-driver.so

ahora si abrimos una consola y hacemos

printenv | grep libusb

nos va a mostrar que esta variable es parte de nuestro entorno.
Abrimos una consola o hacemos Alt+F2 y escribimos ise.

Instalando el EDK

El proceso es parecido, metemos el CD y el PATH de instalación se lo damos en $HOME/EDK.
Una vez que termina tenemos que directamente hacer un script porque sino ni abre

export LANGUAGE=usenglish
export XILINX_EDK=$HOME/EDK
export XILINX=$HOME/Xilinx8.1
export PATH=$PATH:$HOME/EDK/bin/lin:$XILINX_EDK/gnu/microblaze/lin/bin:$XILINX_EDK/gnu/powerpc-eabi/lin/bin:$XILINX:$XILINX/bin/lin
export LD_PRELOAD=/usr/local/lib/libusb-driver.so
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$XILINX_EDK/bin/lin:$XILINX/bin/lin
$XILINX_EDK/bin/lin/xps

A este script lo guardamos como XPS.sh donde mas nos guste, le damos permiso de
ejecución chmod +x XPS.sh, también podemos hacer lo mismo que antes, setear nuestro
entorno por defecto, abrimos en un editor de texto $HOME/.bashrc
y al principio de todo ponemos:

export XILINX_EDK=$HOME/EDK
export XILINX=$HOME/Xilinx8.1
export PATH=$PATH:$HOME/EDK/bin/lin:$XILINX_EDK/gnu/microblaze/lin/bin:$XILINX_EDK/gnu/powerpc-eabi/lin/bin:$XILINX:$XILINX/bin/lin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$XILINX_EDK/bin/lin:$XILINX/bin/lin

y listo, queda todo en condiciones como para usar las herramientas de Xilinx.