Ise Webpack je programový balík od firmy Xilinx pro návrh FPGA a CPLD obvodů této firmy. Měl jsem nainstalovánu verzi 9.2i pod OS Fedora Core 4 a fungovalo to bez větších problémů. Potom jsem provedl upgrade systému – přešel jsem na nový OS Fedora 7 a problémy začaly. Je vidět, že vývojáři u Xilinx sice tvoří nové upgrade, ale celý balík je stále postaven na starých technologiích, které už u nových systémů Linux nejsou příliš podporovány. Tedy již před instalací Ise je nutné nainstalovat pomocí Správce balíčkůi compat-libstdc++ package, jinak nejde spustit ani setup. Největším problémem je chybějící knihovna libXm.so.3. Je částí openmotif (ten není ve Fedoře 7 již podporován, není ani v repozitáři livna) a tak jsem jí zkoušel přeložit ze zdrojáků. To je práce bezvýsledná a tak jsem použil následující trik:

Najdeme na webu balíčky xorg-x11-libs-6.8.2-37.FC4.49.2.1.i386.rpm a openmotif-2.2.3-10.FC4.2.i386.rpm ( např. na http://rpm.pbone.net ), stáhneme je a v tomto pořadí nainstalujeme:

Pozn. všechny tyto akce je nutné dělat jako root



rpm -i xorg-x11-libs-6.8.2-37.FC4.49.2.1.i386.rpm


rpm -i openmotif-2.2.3-10.FC4.2.i386.rpm


Potřebná knihovna je pak v adresáři /usr/X11R6/lib. Odtud jí můžeme zkopírovat např. do /usr/lib. Poté je lépe zkontrolovat pomocí ldd libXm.so.3 závislosti a případně doinstalovat chybějící knihovny. Balíčky je možné opět odinstalovat:



rpm -e openmotif


rpm -e xorg-x11-libs

Adresář /usr/X11R6 je možné smazat, není už potřebný. Ostatní knihovny by už měly být součástí Fedora 7, ale může se stát, že něco chybí. U mne to byla například knihovna libXp.so.6, kterou lze přímo nainstalovat pomocí Správce balíčků. Problémy dělá hlavně program pace (resp. jeho část _pace) – je lépe to zkontrolovat pomocí (dále předpokládáme, že Ise je nainstalováno v /opt/Xilinx92i)



ldd /opt/Xilinx92i/bin/lin/_pace

a doinstalovat případné chybějící knihovny. Pravděpodobně bude nutné ještě nastavit cestu do sdílených knihoven Ise – udělal jsem to tak, že jsem do adresáře /etc/ld.so.conf.d přidal soubor xilinx.conf, obsahující jediný řádek



/opt/Xilinx92i/bin/lin

Programu pace rovněž dělá problém systémová proměnná $DISPLAY, která je normálně nastavená na „0:0“ – je třeba jí nastavit na „:0“. Protože se mi nechtělo zkoumat, kde se nastavuje, spouštím Ise batchem startise:



#! /bin/bash

#

DISPLAY=:0

export DISPLAY

/opt/Xilinx92i/bin/lin/ise &

Teď už sice pace naběhne, ale nefunguje korektně – ještě je třeba nastavit rpcbind tak, aby se spouštěl s parametrem -i např. tak, že do /etc/rc.d/init.d/rpcbind přidáme



RPCBIND_ARGS=-i

Nyní je Ise funkční, ale ještě se musí nastavit externí programy pro prohlížení dokumentů. V Ise lze nastavit pomocí menu Edit->Preferences->HTML Browser místo mozilla firefox, ale opět ten divný pace používá netscape. Takže někde na cestě dané $PATH umístíme následující linky:



ln -s /usr/bin/firefox netscape


ln -s /usr/bin/kpdf acroread




5.10.2007

Instalace ovladačů.

Koupil jsem si vývojový kit od PKDesign pro Spartan II (XC2S150) a tak nastala nutnost zprovoznit programování obvodu. A opět nastaly problémy. Pokud je verze jádra větší než 2.6.18, není použit hlavičkový soubor <linux/config.h>, nýbrž <linux/autoconf.h>. Rovněž proměnná UTS_RELEASE použitá v konfiguračním skriptu je definovaná jinde (linux/utsrelease.h), čímž vzniká další problém. Tyto dvě chyby lze vyřešit tak, že stáhneme ze stránek Xilinx soubor install_drivers.tar.gz a rozbalíme ho – pokud je v release_notes Revision 1035 (k tt. datu), pak je to v pořádku.

Ovšem i tak přetrvává chyba v souboru linux_wrappers.c – ve funkci void *LINUX_bh_alloc(void (*routine)(void *), void *data) je přiřazení bh->data = data; kde se přiřazuje hodnota void* do atomic_long_t, což nemůže fungovat. Účel tohoto jsem nevystopoval, leč i když jsem to jen zakomentoval, s paralelním kabelem od PKDesign to chodí.




24.7.2008


Svrchu uvedené poznámky platí v zásadě i pro operační systém Fedora 9.

Běží to i na 64-bitovém systému, ovšem ve 32-bitovém módu. Pouze se instalace nesmí pouštět pomocí skriptu setup. Ten vyhodí chybu, že systém není podporován a skončí. Pokud spustíme přímo program ./bin/lin/setup, instalace proběhne normálně.



27.7.2008

Přidal jsem vlastní utilitu pro programování obvodů Xilinx. Původní zdrojáky jsou od Xilinx. Funguje to tak, že se v ISE vytvoří projekt a místo toho, aby se výsledný .bin programoval přímo do obvodu, programem impact se z něj vytvoří soubor .xsvf a ten se přes JTAG pomocí kabelu Xilinx Parallel Cable III a tohoto programu přenese do obvodu. Důvody pro toto poněkud nestandardní řešení jsou tyto:

  1. Původní ovladače pro kabel dělaly v Linuxu divné věci.

  2. Pokud potřebuji pouze naprogramovat obvod, nemusím spouštět ISE.

  1. Většina zdrojových kódů je k dispozici na webu, takže práce s tím byla poměrně malá.

  2. Je možné tento kód použít i jinde. Například je možné použít jednočip, reimplementovat pro něj soubor ports.c a použít ho jako programovou paměť FPGA. Velkou výhodu bude mít toto řešení, pokud je systém propojen s PC- ušetří se poměrně drahá paměť a je možné jednoduše provádět upgrade firmware FPGA.


7.6.2009

Konečně jsem se dostal k tomu přeinstalovat celý operační systém. Rozhodl jsem se pro Ubuntu 64-bit. Původní Fedora se mi nějak přestala líbit a tak jsem vzal to co používá většina. A rozhodně s tím je míň problémů. Ovšem na 64-bit systému je nutné nejprv rozchodit 32-bit aplikace. Je to dost jednoduché – nainstaluje se balík ia32-libs.



sudo apt-get install ia32-libs

Problémy s knihovnou openmotif jsou i tady, ale dá se dohledat 32-bit balíček pro Debian - http://packages.ubuntu.com/dapper/libmotif3 , ze kterého se dají vytáhnout funkční 32-bit knihovny. A to je vše.




Zabalený zdrojový text je zde.

iSprávce balíčků – menu->Systém->Přidat/Odebrat Software