mikrocontroller.net

Forum: FPGA, VHDL & Co. Digilent Basys2 Treiber in Ubuntu installieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Wir haben jetzt im Studium VHDL programmieren, und da konnte man sich 
gleich ein Basys2 Board von Digilent kaufen, was ich auch gemacht habe.

So, und nun nutze ich aber privat praktisch nur noch Ubuntu und würde es 
gerne auch zum FPGA-Programmieren einsetzen. Xilinx ISE WebPack gibts 
zum Glück ja auch für Linux, das konnte ich ohne Probleme installieren 
(Version 13.4). Es scheint soweit auch zu funktionieren, synthetisieren 
kann ich jedenfalls.

Nur der USB-Treiber läuft (natürlich...) nicht. Ich habe einiges darüber 
im Internet gefunden und auch sehr vieles ausprobiert, aber es will 
einfach nicht laufen. Ich bin jetzt auch nicht so der Linux-Freak was 
solche Sachen anbelangt, viel mehr als Anleitungen durchzuprobieren 
krieg ich (noch?) nicht hin.

Mittlerweile ist meine Xilinx bzw. USB-Treiber Installation schon recht 
verbastelt, ich hoffe ich muss nicht gleich das System neu installieren 
;-)

lsusb sagt mir übrigens folgendes:
Bus 001 Device 012: ID 1443:0007 Digilent CoolRunner-II CPLD Starter Kit
Im Internet steht häufig, dass die Device ID auf "8" enden sollte. Ist 
das nur bei anderen Programmiergeräten so, oder liegt hier wirklich 
schon der Hund begraben?

Wenn ich in ISE Impact ein AutoConnect versuche, erscheint immer
WARNING:iMPACT -  Module windrvr6 is not loaded. Please reinstall the cable drivers. See Answer Record 22648.

Muss ich in Impact überhaupt das Plugin
 xilinx_platformusb PORT=USB21 FREQUENCY=6000000
aktivieren, oder ist es das "Digilent USB JTAG Cable" oder sonstwas?

Ich wäre sehr dankbar wenn mir da jemand weiterhelfen könnte. Es muss 
doch bestimmt irgendjemand hier Xilinx unter Linux am laufen haben :-)

Ich habe übrigens Ubuntu 11.04, 64bit, Kernel 2.6.38-13-generic
Falls noch mehr Informationen nötig sind, bitte melden.

freundliche Grüsse
Urban

Nachtrag: Übrigens weiss ich dass es Virtuelle Maschinen gibt, die nutze 
ich auch selber ab und zu, aber das ist auf Dauer ja doch eher mühsam. 
Anscheinend soll es ja schon irgendwie möglich sein direkt unter Linux 
zu arbeiten, also würde ich es gerne auch so versuchen.

von user (Gast)


Bewertung
0 lesenswert
nicht lesenswert
du musst bei impact sagen das es libusb anstatt windrv6 verwenden soll


starte mal so impact:

bash# export XIL_IMPACT_USE_LIBUSB=1; impact

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
Auch nicht vergessen:
udev-Regel erstellen, sodass du auch als normaler Benutzer auf das 
USB-Gerät Schreibzugriff hast.

von berndl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
schau mal auf der Digilent Website nach der ADEPT Software fuer Linux. 
Ich denke, du brauchst das Plugin fuer IMPACT. Oder hast du einen 
'echten' Xilinx Programmieradapter?

Bei mir jedenfalls funktioniert das unter Ubuntu mit dem Plugin auf 
einem Atlys-Board

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
danke für die Antworten!

@user
Das habe ich eigentlich auch schon probiert. Muss heute Abend nochmal 
schauen ob dann immernoch die gleiche Fehlermeldung erscheint.

@Lukas K.
Die sollte ja eigentlich durch ein Skript ./install_usb oder so ähnlich 
gleich mitinstalliert werden glaube ich?

@berndl
OK das schaue ich mir auch mal an, davon habe ich noch nichts gelesen.

Ich kann leider erst am Abend wieder probieren, ich berichte dann 
nochmal.

mfg

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
So, habe jetzt nochmal rumprobiert-
Das mit dem ADEPT war schonmal ein guter Tipp, ich wusste noch gar nicht 
dass man das installieren muss ;-)

Dieses "Digilent ADEPT" und das "Digilent Plugin for Xilinx Tools" habe 
ich nun also installiert. Das Plugin verursacht im Impact aber ein 
Absturz beim Zugriff auf die Schnittstellen. Also nur schon wenn ich das 
Menü "Output" --> "Cable Setup" anklicke, beendet sich Impact sofort. 
Lösche ich das Plugin wieder, ist das Problem behoben aber natürlich 
auch das Plugin nicht anwählbar :-)

Mit dieser Anleitung: 
http://www.nextgennetworks.de/index.php?/archives/1410-Digilent-Adept-for-Linux-installieren-und-nutzen.html 
konnte ich übrigens noch feststellen, dass sich das FPGA problemlos und 
ohne root-Rechte programmieren lässt, der Treiber scheint also zu 
funktionieren.

Jetzt müsste also vermutlich nur noch das Plugin zum laufen gebracht 
werden. Hatte jemand von euch dieses Problem auch schon oder hat 
vielleicht eine Idee woran das liegen kann?

Im Terminal, in dem ich Impact starte, erscheint nach dem Absturz 
übrigens nur diese Meldung:
 Xilinx Port::Process Exec Failed:2 

Die Variable XIL_IMPACT_USE_LIBUSB=1 wird mit einem Startskript gesetzt, 
die Warnung wegen dem windrvr6 kommt jetzt auch nicht mehr. Irgendwie 
muss ich diese Zeile mal aus dem Skript gelöscht haben...;-)

mfg
Urban

von berndl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
n'Abend,

bzgl. des ADEPT Plugins: Hast du bei der ISE Installation auch die Cable 
Driver mit installiert? Dann ist das evtl. dein Problem. Man 
darf/soll/muss wohl garnix bzgl. Programmieradapter auswaehlen. Dann 
spaeter aus ISE heraus einfach nach der Digilent Anleitung vorgehen. So 
hat es bei mir dann auch funktioniert (ISE 12.3 und Ubuntu 10.04)

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
berndl schrieb:
> Hast du bei der ISE Installation auch die Cable Driver mit installiert?
Zuerst nicht, weil in diversen Anleitungen geschrieben wird dass das eh 
nicht funktioniert. Später habe ich es dann aber doch mal probiert, hat 
aber wie vermutet eine Fehlermeldung ergeben...

> Dann spaeter aus ISE heraus einfach nach der Digilent Anleitung vorgehen.
> So hat es bei mir dann auch funktioniert (ISE 12.3 und Ubuntu 10.04)

Welche Anleitung meinst du jetzt genau? Die Readme von ADEPT?

Also ich probier jetzt nochmal möglichst alles zu löschen. So richtig 
gelingen wird mir das aber kaum, denn ich habe ein richtiges Chaos 
angerichtet mit den misslungenen Versuchen :-( Hoffen wir mal das bringt 
was.

mfg

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Also habe nochmal alles neu installiert, nach folgendem Schema:
- Xilinx ISE 13.4 von http://www.xilinx.com/support/download/index.htm herunterladen
- Archiv entpacken, Terminal in entpacktem Ordner öffnen
- sudo ./xsetup
- "ISE WebPack" anwählen
- "Aquire or Manage a License Key" deaktivieren
- "Install Cable Drivers" deaktivieren
- Installation ausführen lassen
- Lizenzdatei "Xilinx.lic" nach ~/.Xilinx/ kopieren, Ordner anlegen falls er noch nicht existiert

Startskript ~/run_ise.sh:
export LANG=''  # reset locale to English to fix decimal/comma seperation
. /opt/Xilinx/13.4/ISE_DS/settings64.sh
ise

USB-Treiber:
- sudo apt-get install git build-essential libusb-dev fxload
- cd /opt/Xilinx
- sudo git clone git://git.zerfleddert.de/usb-driver
- cd usb-driver/
- für 32bit: sudo make
- für 64bit: sudo make lib32
- sudo ./setup_pcusb /opt/Xilinx/13.2/ISE_DS/ISE
- sudo sed -i -e 's/TEMPNODE/tempnode/' -e 's/SYSFS/ATTRS/g' -e 's/BUS/SUBSYSTEMS/' /etc/udev/rules.d/xusbdfwu.rules
- sudo /etc/init.d/udev restart

Der Befehl "djtgcfg enum" ergibt folgende Ausgabe:
Found 1 device(s)

Device: Basys2
    Product Name:   Digilent Basys2-100
    User Name:      Basys2
    Serial Number:  210155411216

Digilent Plugin für Impact:
- "Digilent ADEPT Runtime" herunterladen von http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2
- Archiv entpacken und Terminal in entpacktem Ordner öffnen
- sudo ./install.sh
- Standard-Pfade mit Enter bestätigen

- "Digilent ADEPT Utilities" herunterladen von http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2
- Archiv entpacken und Terminal in entpacktem Ordner öffnen
- sudo ./install.sh
- Standard-Pfade mit Enter bestätigen

- "Digilent Plugin for Xilinx Tools" herunterladen von http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,768&Prod=DIGILENT-PLUGIN
- Archiv entpacken
- für 32bit: "libCseDigilent.so" und "libCseDigilent.xml" nach /opt/Xilinx/13.4/ISE_DS/ISE/lib/lin/plugins/Digilent/libCseDigilent/ kopieren
- für 64bit: "libCseDigilent.so" und "libCseDigilent.xml" nach /opt/Xilinx/13.4/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/ kopieren

Das Problem bleibt nach wie vor das gleiche. Klicke ich in Impact auf 
"Cable Setup" stürzt das Programm sofort ab (schliesst sich). Lösche ich 
die zwei Dateien vom Digilent Plugin, gibt es kein Absturz aber 
natürlich dann auch kein Digilent Plugin.

Gruss
Urban

von berndl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Urban B. schrieb:
> . /opt/Xilinx/13.4/ISE_DS/settings64.sh
.
.
.
.
.
> - sudo ./setup_pcusb /opt/Xilinx/13.2/ISE_DS/ISE

13.4/2? Typo?

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
ups, sollte natürlich auch 13.4 heissen :-)

Ich habe das Zeug sowieso nicht nach opt installiert weil meine 32GB 
SSD nachher voll wäre, deshalb habe ich es nach 
/media/VirtualBox/Xilinx_13.4/ installiert. Ist eigentlich die Partition 
für meine virtuellen Machinen, war aber die einzige ext4 Partition die 
noch viel Platz hat. Aber das sollte ja nicht das Problem sein. Im 
letzten Beitrag habe ich mit Absicht die Standardpfadangaben genommen, 
falls später mal jemand diese kleine Schritt-für-Schritt Anleitung 
nutzen möchte.

Blöd wäre natürlich wenn irgendwo der Pfad nach opt hardgecoded wäre, 
aber das glaube ich weniger. Ich habe jetzt auch gleich mal 
versuchsweise eine Verknüpfung angelegt, die von /opt/Xilinx/13.4/ nach 
/media/VirtualBox/Xilinx_13.4/ weiterleitet. hat aber auch nichts 
bewirkt.

Gibt es keine Möglichkeit, genauere Fehlermeldungen zu bekommen als 
diese eine informationsschwache Zeile im Terminal?

Nachtrag:
Ich versuche jetzt einfach mal eine andere Version, zuerst 13.3 und dann 
noch 13.2. Vielleicht bringt das ja etwas...

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Urban B. schrieb:
> Ich versuche jetzt einfach mal eine andere Version, zuerst 13.3 und dann
> noch 13.2. Vielleicht bringt das ja etwas...

So, habe ich nun auch versucht. Bei allen drei Versionen das gleiche 
Problem.

Dann habe ich auf meinem Laptop, den ich eh nur selten benutze, gleich 
mal das aktuelle Linux Mint installiert und da nochmal Xilinx 
installiert. Ist also eine komplett saubere Installation, ohne 
vorhergehendes Gebastel. Und auch da hatte ich genau das gleiche Problem 
mit ISE Impact. Ein Klick auf "Cable Setup" und schwupps, das Programm 
ist weg. Lösche ich das Digilent Plugin, lässt sich der Cable Setup 
Dialog wieder öffnen.

Hatte noch keiner hier das gleiche Problem?
Oder weiss jemand wie ich zu aussagekräftigen Fehlermeldungen komme?

Wird dann wohl leider doch eher auf eine Installation in VirtualBox 
hinauslaufen...

mfg
Urban

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Urban B. schrieb:
> Oder weiss jemand wie ich zu aussagekräftigen Fehlermeldungen komme?
Mit strace.
Meistens hilft schon
strace -e open <program>

Duke

von Urban B. (kami89)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> Urban B. schrieb:
>> Oder weiss jemand wie ich zu aussagekräftigen Fehlermeldungen komme?
> Mit strace.
> Meistens hilft schon
strace -e open <program>
>
> Duke

Danke für den Tipp!

Ich habe mal die Terminal-Ausgaben hier angehängt.

Die letzten vier Zeilen werden nach dem Klick auf "Cable Setup" noch 
ausgegeben, danach ist Ende Feuer (Impact beendet sich).

Ich kann mit desen Meldungen nicht wirklich viel anfangen, da werden mir 
doch einfach die Dateien aufgelistet, auf die zugegriffen wird?

Gruss
Urban

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Urban B. schrieb:
> Ich kann mit desen Meldungen nicht wirklich viel anfangen, da werden mir
> doch einfach die Dateien aufgelistet, auf die zugegriffen wird?
Jepp.

Aber das sieht soweit ganz gut aus.
Für welche Linuxdistribution ist denn das Digilent-Plugin explizit 
entworfen worden?

Duke

von Christian J. (stormracer)


Bewertung
0 lesenswert
nicht lesenswert
Ich bin auch gerade dabei dieses zum laufen zu bekommen, für das Nexys3 
Board. Also kämpfe ich gegen den gleichen Treiber. Ich verwende Ubuntu 
11.10 64Bit, also schon den 3er Kernel.

Wenn ich mir mit dmesg die Kernel Nachrichten ansehe, verursacht das 
Digilent Plugin mit Impact Speicherzugriffsfehler. Ich habe gerade das 
Board nicht hier, deshalb kann ich die Meldung nicht genau darstellen.

Viele Grüße
Christian

von berndl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> Für welche Linuxdistribution ist denn das Digilent-Plugin explizit
> entworfen worden?

iirc ist Ubuntu dabei, allerdings evtl. nur bestimmte Versionen (z.B. 
bei mir die 10.04 LTS).

Ich wuerde an Urbans Stelle mal Digilent kontaktieren, die sind 
eigentlich sehr hilfsbereit.

Was mir bei meiner Installation noch Schwierigkeiten machte: Wo ist der 
USB Programmer angestoepselt? Direkt am PC-Mainboard oder Hub? Das hatte 
bei mir geklemmt (ging nicht am Hub/der Frontblende sondern nur am USB 
direkt auf dem Mainboard)...

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> Aber das sieht soweit ganz gut aus.
> Für welche Linuxdistribution ist denn das Digilent-Plugin explizit
> entworfen worden?

Im Manual steht:
Software Versions Tested:
Xilinx ISE Design Suite Version 13.x only (Refer to http://www.digilentinc.com/ for versions of the
plugin for later Xilinx ISE versions)
Digilent Adept System 2.6 (or Digilent Runtime 2.5 for Linux) or greater
Supported Operating Systems:
• Microsoft Windows 32-bit and 64-bit Operating Systems
• Linux: Red Hat and CentOS 4.8, 5.4 (x86/x64), and SUSE 11.2 (x86/x64)

Aber es heisst da ja nur, dass es damit erfolgreich getestet wurde.

Christian J. schrieb:
> Wenn ich mir mit dmesg die Kernel Nachrichten ansehe, verursacht das
> Digilent Plugin mit Impact Speicherzugriffsfehler. Ich habe gerade das
> Board nicht hier, deshalb kann ich die Meldung nicht genau darstellen.
OK wenigstens bin ich nicht alleine mit dem Problem :-) Muss ich dann 
auch mal nachschauen, was mein Kernel so meldet.

berndl schrieb:
> iirc ist Ubuntu dabei, allerdings evtl. nur bestimmte Versionen (z.B.
> bei mir die 10.04 LTS).
Das heisst, bei dir läuft es mit 10.04?

berndl schrieb:
> Ich wuerde an Urbans Stelle mal Digilent kontaktieren, die sind
> eigentlich sehr hilfsbereit.
Gut zu wissen, wenn sonst nichts mehr hilft werde ich das wohl machen.

berndl schrieb:
> Was mir bei meiner Installation noch Schwierigkeiten machte: Wo ist der
> USB Programmer angestoepselt? Direkt am PC-Mainboard oder Hub? Das hatte
> bei mir geklemmt (ging nicht am Hub/der Frontblende sondern nur am USB
> direkt auf dem Mainboard)...
Kann ich auch mal rumprobieren. Allerdings funktioniert der Programmer 
ja wenn ich ihn übers Terminal ansteuere. Nur das Digilent Plugin st¨rzt 
halt ab.

von berndl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Urban B. schrieb:
> Das heisst, bei dir läuft es mit 10.04?

ja, und zwar 32 bit, mit ISE 12.3 und einem aelteren Digilent Plugin 
(war so Anfang 2011 als ich das installiert habe)

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
So, also ein anderer USB-Port habe ich probiert, bringt nichts.

Dann schaute ich mal im Systemprotokollbetrachter, was beim Absturz von 
Impact so passiert.

"kern.log" und "syslog" melden diese eine Zeile:
Apr 11 19:25:21 urban-pc-ubuntu kernel: [ 1747.583235] _impact4[500]: segfault at 0 ip 00007f8392154bd8 sp 00007fff5bfeee00 error 4 in libdpcomm.so.2.8.1[7f8392148000+33000]

Die "libdpcomm.so" ist eine Datei von Digilent Adept Runtime, und nicht 
vom Plugin. In der Readme von Adept stehen folgende Distributionen 
aufgelistet:
The Adept Runtime has been built for the following distributions:

CentOS 4 / Red Hat Enterprise Linux 4
CentOS 5 / Red Hat Enterprise Linux 5
openSUSE 11 / SUSE Linux Enterprise 11
Ubuntu 8.04
Ubuntu 9.10
Ubuntu 10.04

Ich mache jetzt mal den kompletten manuellen Installationsvorgang vom 
Adept durch, so wie es in der Readme beschrieben ist. Vielleicht bringt 
das ja etwas...

von berndl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Urban B. schrieb:
> Ich mache jetzt mal den kompletten manuellen Installationsvorgang vom
> Adept durch, so wie es in der Readme beschrieben ist. Vielleicht bringt
> das ja etwas...

aehm, wie hast du das denn bisher gemacht? Da wird die Thematik mit den 
Libs angesprochen sowie das kopieren der FW-Dateien. Hast du das alles 
nicht gemacht?

Ich mein', das README ist zwar nur ASCII, aber erfreulich kurz...

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Naja, es liegt ja extra ein Installationsskript bei, welches man zur 
Installation nutzen kann. In der Readme steht aber, man kann auch alles 
manuell installieren, das ist in etwa 300 Zeilen Text in der Readme 
beschrieben.

Das müsste ja aber alles schonmal mit dem Installationsskript geschehen 
sein. Aber ich machs jetzt trotzdem mal durch, könnte ja sein dass das 
was bringt...

berndl schrieb:
> Ich mein', das README ist zwar nur ASCII, aber erfreulich kurz...

421 Zeilen sind kurz? Wir sprechen beide von der Readme im Ordner 
"digilent.adept.runtime_2.9.8-x86_64" oder?

Nachtrag:
Bin jetzt grad durch mit der manuellen Installation, das Problem bleibt 
immernoch dasselbe. Irgendwie schaut die Meldung von kern.log schon sehr 
nach einem Fehler aus Seite von Digilent aus oder? Also eher weniger ein 
Problem mit Ubuntu oder dem Linux-Kernel, oder was meinen die Experten?

von berndl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
dann schick das ganze mal mit Infos an Digilent, pack auch noch zur 
Sicherheit eine Ausgabe von 'sudo lsbusb -v' mit dazu (und die Infos 
welche Distri (mit 'uname -r') und was dir so aufgefallen ist).

Bei Xilinx im Forum (Topic 'Installation'?) gibts auch immer wieder mal 
Anmerkungen zu Linux und den Libraries. Es ist halt nicht die Monokultur 
wie bei Windows...

Du hast oben glaube ich geschrieben, du verwendest 64bit? Hast du's mal 
mit 32bit probiert?

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
berndl schrieb:
> dann schick das ganze mal mit Infos an Digilent, pack auch noch zur
> Sicherheit eine Ausgabe von 'sudo lsbusb -v' mit dazu (und die Infos
> welche Distri (mit 'uname -r') und was dir so aufgefallen ist).

Werde ich wohl machen. Danke für die Tipps mit den Befehlen :-)

berndl schrieb:
> Bei Xilinx im Forum (Topic 'Installation'?) gibts auch immer wieder mal
> Anmerkungen zu Linux und den Libraries. Es ist halt nicht die Monokultur
> wie bei Windows...

Das checke ich auch noch rasch bevor ich ein Mail schreibe.

berndl schrieb:
> Du hast oben glaube ich geschrieben, du verwendest 64bit? Hast du's mal
> mit 32bit probiert?

Nur 64bit. Ein PC mit einem 32bit Linux habe ich grad nicht zur Hand, 
und schonwieder den Laptop platt machen macht mich grad nicht so an xD 
Und die Partition mit meinen virtuellen Maschinen ist gleich voll, da 
muss erstmal eine neue Festplatte her ;-) Mal schauen, vielleicht mach 
ich halt doch nochmal den Laptop platt.

Ich werde wieder berichten wenn sich was tut.
Danke euch schonmal für die Hilfe!

mfg

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
So, es ist nun schon eine Weile her seitdem ich das Mail geschrieben 
habe. Eine Antwort bekam ich leider nicht.
Vielleicht antworten die einfach auf keine Mails die in einem, ich sag 
mal nicht ganz perfekten, Englisch geschrieben sind ;-)
Einen deutschen Support haben die ja keinen oder?!

Tja, dann muss nun halt doch die Virtuelle Maschine dafür herhalten...

Gruss
Urban

von Christian J. (stormracer)


Bewertung
0 lesenswert
nicht lesenswert
Abend,

das ist ja doof, dass die sich nicht gemeldet haben...

Ich habe es auch aufgegeben. Als nächstes wollte ich es auch mit einer 
VM ausprobieren, aber das hat auch nicht geklappt. Adept hat da Board 
zwar gefunden und auch erkannt, es lässt sich aber nicht konfigurieren.
Um die Rechenzeit nicht in der VM zu verschwenden, wollte ich eigentlich 
den Remote Programmer Mode von Impact benutzen.
Also ISE unter Linux -> per Ethernet zur VM -> per USB zum Board, aber 
Impact/Adpet scheinen bei mir mit dem virtuellen durchtunneln der USB 
Verbindung auch ein Problem zu haben. Ich benutze Virtual Box.

Würde mich interessieren, ob's bei dir klappt. Ich habe mein Windows 
wieder reaktiviert.

Viele Grüße
Christian

von Tobias H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin ebenfalls auf das Problem gestossen. Die Utilities von Digilent 
funktionieren allerdings bei mir:

%> djtgcfg enum
Found 1 device(s)

Device: obp
    Product Name:   Avnet On-Board Programmer
    User Name:      obp
    Serial Number:  000000000000

Der FPGA laesst sich mit den Utilities auch problemlos programmieren. 
Leider hilft das nichts fuer das Xilinx SDK, da das Impact verwendet.
Ich weiss aber, dass das Plugin unter OpenSUSE funktioniert hat. Wir 
hatten auf einem Workshop mehrere Rechner damit installiert und Impact 
fuer die Konfiguration verwendet. Da gab es keine Probleme mit den 
Digilent Plugins...

Gruesse
Tobias

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Christian J. schrieb:

> Würde mich interessieren, ob's bei dir klappt. Ich habe mein Windows
> wieder reaktiviert.

Ja, ich habe es jetzt auch in VirtualBox (Win7 x32) installiert und es 
läuft auf Anhieb. Habe nur kurz ein bestehendes Projekt geöffnet und mit 
Impact aufs Board geladen, das funktioniert jedenfalls. Was ist denn 
genau das Problem (Fehlermeldung?) bei dir?

Hallo @Tobias H.
> ich bin ebenfalls auf das Problem gestossen. Die Utilities von Digilent
> funktionieren allerdings bei mir:

Ja, das tut bei mir ja auch wie ich weiter oben schon geschrieben habe. 
Nur das Plugin für Impact macht halt Probleme. Theoretisch sollte es 
eigentlich ja möglich sein, statt Impact einfach eine eigene kleine Gui 
zu bauen, die dann von Xilinx ISE aufgerufen wird. Ich frage mich 
sowieseo ein bisschen wofür man nur fürs Rüberladen ein solch "grosses" 
Programm wie Impact braucht, eigentlich tuts ja ein kleiner 
Terminal-Befehl...Man sollte halt einfach wählen können, ob die 
Konfiguration noch ins ROM geladen werden soll oder nicht, mehr bräuchte 
ich jedenfalls nicht.

Momentan habe ich aber grad nicht so die Lust/Zeit ein solches 
Progrämmchen zu schreiben. In der VM tut es jetzt ja, damit kann ich 
leben.

Grüsse
Urban

von Tobias H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

so, ich habe mit Hilfe von strace eine Loesung gefunden, die zumindest 
bei mir funktioniert:

Nach der Installation von Digilent Runtime und dem Plugin habe ich neben 
dem libusb-driver noch die libdpcomm zu ldpreload hinzugefuegt. Meine 
LD_PRELOAD Environment variable sieht jetzt so aus:

LD_PRELOAD=/path/to/libusbdriver/libusb-driver.so:/usr/local/lib64/digil 
ent/adept/libdpcomm.so.2

Impact erkennt mein Board damit automatisch, auch ohne die angabe von 
"digilent_plugin". Ich hoffe es hilft weiter, wenn nicht kann ich auch 
noch genauere Details zu meiner Installation geben.

Viele Gruesse
Tobias

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Tobias H. schrieb:
> Nach der Installation von Digilent Runtime und dem Plugin habe ich neben
> dem libusb-driver noch die libdpcomm zu ldpreload hinzugefuegt. Meine
> LD_PRELOAD Environment variable sieht jetzt so aus:
>
> LD_PRELOAD=/path/to/libusbdriver/libusb-driver.so:/usr/local/lib64/digil 
ent/adept/libdpcomm.so.2

Du bist genial!!!

Damit funktioniert jetzt auch bei mir!

Der erste Teil vom ldpreload führt bei mir zwar nur zu Fehlermeldungen 
im Terminal, nur der zweite Teil genügt und es kommen keine 
Fehlermeldungen mehr.

mein Startskript sieht nun also nur noch so aus:
export LD_PRELOAD=/usr/local/lib64/digilent/adept/libdpcomm.so.2

ise

So einfach kann es sein ;-)

Vielen herzlichen Dank an Tobias, aber natürlich auch an die anderen 
Helfer!

mfg
Urban

von berndl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
meldet jemand das ganze auch an Digilent? Die koennten es ja nachstellen 
und dann ins README aufnehmen...

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
berndl schrieb:
> meldet jemand das ganze auch an Digilent? Die koennten es ja nachstellen
> und dann ins README aufnehmen...

Von mir aus kann ich das machen. Aber Tobias, weisst du eigentlich was 
genau hinter der Variable "LD_PRELOAD" steckt? Und wie kann es sein, 
dass es auf anderen Systemen läuft, aber auf z.B. Ubuntu 11.04 nicht?

Ich würde nur gerne verstehen, ob das ganz klar ein Fehler von Digilent 
ist, oder wer/was für den Fehler verantwortlich ist.

Ich habe übrigens im ubuntuusers Wiki den Artikel "Xilinx ISE" mit einem 
Link auf diesen Thread ergänzt. Das kann vielleicht einigen anderen 
verzweifelten Leuten helfen :-)

Und wie bist du überhaupt auf die Lösung gekommen wenn man fragen darf? 
Ist in meinem strace-Log, den ich weiter oben gepostet habe, ein 
Hinweis, der dich auf diese Lösung gebracht hat?

von Tobias H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Urban,

das war mehr Zufall und Probieren, dass ich auf die Loesung gekommen 
bin. Ich hab ein strace von den Digilent Tools mit einem von Impact 
verglichen und die Vermutung bekommen, dass er beim Zugriff auf eine der 
Libraries den Segfault macht und nicht die Library selbst.
Mit LD_PRELOAD kann man eine Bibliothek vor jeder anderen laden. 
Eigentlich wird es benutzt um eine Bibliothek gegen eine andere Version 
"zu tauschen", aber ich hab es probiert mit der korrekten Version der 
Bibliothek, damit die gesamte libdpcomm am Anfang in den Speicherbereich 
des Programms geladen wird und er spaeter den Bereich auf den er 
zugreifen will auch geladen hat.
Ich hab keine genaue Ahnung was LD_PRELOAD alles anstellt beim 
dynamischen linken, vor allem mit der Speicherallokierung. Man sieht bei 
strace aber, dass die Library beim Start des Programms geladen wird.

Wenn jemand mehr Erfahrung mit dem dynamischen Linken hat kann er 
vielleicht noch eine bessere Loesung finden bei der man die 
Umgebungsvariable nicht setzen muss und der Linker das von alleine 
hinbekommt. Das SDK von ISE gibt bei mir immer einen Error durch das 
Preload. Der sieht zwar nur unschoen aus und macht sonst nichts, aber 
trotzdem...

Ich habe auch keine Ahnung welches Programm den Segfault verursacht. 
Impact, das Digilent_Plugin oder die aktuelle Ubuntu Version...
Vielleicht ist es mit der aktuellsten glibc Version gekommen, aber das 
ist nur eine Vermutung die ich nicht belegen kann.

Ich schreibe noch in einen Thread im Xilinx Forum zu dem Problem, 
bislang ist die Loesung fuer den Segfault da glaub ich das Digilent 
Plugin zu loeschen. Und vielleicht findet Xilinx eine Loesung fuer die 
naechste Impact Version.

Gruesse
Tobias

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Tobias,

Danke für die Erklärung, jetzt verstehe ich wenigstens einigermassen wie 
das Zeug funktioniert. Das ist genau das was ich an Linux so 
faszinierend finde, selbst für scheinbar hoffnungslose Fehler lässt sich 
häufig eine Lösung finden :-) Aber man muss halt mit den ganzen Tools, 
die Linux zur Verfügung stellt, auch umgehen können...

Tobias H. schrieb:
> Ich schreibe noch in einen Thread im Xilinx Forum zu dem Problem,
> bislang ist die Loesung fuer den Segfault da glaub ich das Digilent
> Plugin zu loeschen. Und vielleicht findet Xilinx eine Loesung fuer die
> naechste Impact Version.

Ja, das habe ich auch schon gelesen, dass man das Digilent Plugin 
einfach löschen soll ;-) Nur bringt das nicht viel wenn man ein 
Digilent-Board konfigurieren will...

Gruss
Urban

Nachtrag:
In unserem Artikel "Xilinx_ISE_Linux" habe ich auch noch rasch ein Link 
auf diesen Thread eingefügt...

von Christian J. (stormracer)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe jetzt Ubuntu 12.04 installiert und ISE 13.3.

Nun scheint es ohne Probleme zu gehen. Impact erkennt das Board nun 
sofort, ich habe nur noch die Runtime und Utils von Digilentinc 
installiert, sowie den windrvr6 Treiber von 
http://rmdir.de/~michael/xilinx/.

Nun muss ich nur noch die udev Regeln richtig setzen, damit es auch ohne 
root Rechte läuft.

Endlich wieder ohne Windows auskommen...

Viele Grüße
Christian

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

Interessant, dass es auf 12.04 funktioniert. Nur kann ich (wie viele 
andere auch) mit Unity überhaupt nichts anfangen. Mit dieser Oberfläche 
lässt sich einfach nicht gescheit arbeiten (beim Arbeiten habe ich 
zeitweise 8, 9 oder gar 10 Fenster gleichzeitig offen, da suchst du dir 
in dem blöden Seitenpanel nen Wolf um das richtige Fenster zu finden).
Und der Classic-Modus lässt leider auch noch sehr zu wünschen übrig. 
Deshalb bleibe ich bei meinem Gnome 2, bis es endlich mal wieder was 
gescheites gibt.

Naja, das ursprüngliche Problem ist ja jetzt gelöst also ist alles im 
Butter :-)

mfg

von Tobias H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe eben auf mein Ubuntu auch auf 12.04 geupdated und hatte danach 
nochmal den Fehler nur diesmal mit libpthread...
Anscheinend hat Digilent aber in den letzten Tagen seine Adept Runtime 
auf Version 2.9.9 aktualiesiert. (Zumindest hatte ich noch die alte 
Version drauf...) Mit der geht es jetzt auch bei mir.
Die Loesung mit LD_PRELOAD funktioniert in 12.04 nicht mehr.

Gruesse
Tobias

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Tobias H. schrieb:
> Anscheinend hat Digilent aber in den letzten Tagen seine Adept Runtime
> auf Version 2.9.9 aktualiesiert.

Tatsächlich, habe ich noch gar nicht gesehen! Ich hatte die Version 
2.9.8 installiert.
Leider konnte ich keinen changelog finden von Adept, hätte mich sehr 
interessiert was sich da getan hat. Wer weiss, vielleicht wurde sogar 
"unser" Problem beseitigt :-)

mfg

von Christian J. (stormracer)


Bewertung
0 lesenswert
nicht lesenswert
Urban B. schrieb:
> Tobias H. schrieb:
>> Anscheinend hat Digilent aber in den letzten Tagen seine Adept Runtime
>> auf Version 2.9.9 aktualiesiert.
>
> Tatsächlich, habe ich noch gar nicht gesehen! Ich hatte die Version
> 2.9.8 installiert.

Tatsächlich, ich habe auch schon die neue Version installiert. Dann 
liegt es wohl doch nicht an 12.04.

Hat gerade jemand die UDEV Regel parrat, bei mir will es noch nicht 
funktionieren, nur mit root Rechten. Die bei der Installation 
generierten funktionieren nicht OutOfTheBox bei mir.

... mal googlen wie udev funktioniert.

Viele Grüße
Christian

von Tobias H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Christian J. schrieb:
> Hat gerade jemand die UDEV Regel parrat, bei mir will es noch nicht
> funktionieren, nur mit root Rechten. Die bei der Installation
> generierten funktionieren nicht OutOfTheBox bei mir.


Hi,

ja bei mir gings auch nicht, ich glaub das liegt daran, dass die noch 
die alte Syntax mit SYSFS{idVendor} etc. drin haben. Bei der letzten 
Ubuntu Version gab es noch eine Warnung, dass diese Syntax nicht mehr 
lange unterstuetzt wird...

Hier ist meine UDEV Rule Datei, die funktioniert bei mir:
ATTRS{idVendor}=="1443", MODE="666"
ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{manufacturer}=="Digilent", MODE="666", RUN+="/usr/local/sbin/dftdrvdtch %s{busnum} %s{devnum}"

Viele Gruesse
Tobias

von Urban B. (kami89)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Hat eigentlich jemand von euch auch noch ModelSim installiert und 
hingekriegt dass man es direkt aus Xilinx heraus starten kann?

Die PE gibt es anscheinend ja nicht für Linux, also habe ich die 
Windows-Version mal mit Wine installiert. In Xilinx habe ich als Pfad zu 
Modelsim folgendes eingegeben:
> /home/urban/.wine/drive_c/Modeltech_pe_edu_10.1/win32pe_edu/modelsim.exe

ISE meldet dann beim Simulationsaufruf:
Creating automatic do files...
 ----------------------------------------------------------------------------
 * creating udo file (bcd2sseg_top.udo)...
 * creating main do file (bcd2sseg_top.fdo) for Behavioral Simulation...
WARNING: Can not find the vsim executable. Please check and make sure that the entry for Modelsim in Edit -> Preferences -> ISE General -> Integrated Tools is correctly set.
    > executing '/home/urban/.wine/drive_c/Modeltech_pe_edu_10.1/win32pe_edu/vsim -version' to get the mti_se version...
ERROR: Failed to run the vsim command to fetch the version id
Reason: couldn't execute "/home/urban/.wine/drive_c/Modeltech_pe_edu_10.1/win32pe_edu/vsim": no such file or directory
 * determining pre-compiled simulation library path information...
   > using mapping file from project dir (/media/EXT_HD/Eigene_Dateien/Programmieren/Xilinx/motorproject/modelsim.ini)...
   > extracting library mapping information from '/media/EXT_HD/Eigene_Dateien/Programmieren/Xilinx/motorproject/modelsim.ini'...
WARNING: unable to resolve env var in modelsim.ini file entry: $::env(MODEL_TECH)/../modelsim.ini
WARNING: unable to resolve env var in modelsim.ini file entry: $::env(MODEL_TECH)/libsm.sl
WARNING: unable to resolve env var in modelsim.ini file entry: $::env(MODEL_TECH)/libhm.sl
       > unimacro (ERROR: Library path "C:/Xilinx/13.4/ISE_DS/ISE/vhdl/mti_se/10.0d/nt64/unimacro/unimacro" does not exist)

ERROR: The library path specified in the 'modelsim.ini' file for mapping the 'unimacro'
       library does not exist. Please fix the ini file or recompile the simulation libraries.

INFO: Simulation process aborted!

Xilinx erwartet wohl die Linux-Dateien von ModelSim wie ich das sehe. 
Sieht also schlecht aus dass man das hinbiegen kann, oder was meint ihr?

mfg

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Urban B. schrieb:
> Hat eigentlich jemand von euch auch noch ModelSim installiert und
> hingekriegt dass man es direkt aus Xilinx heraus starten kann?
>
> Die PE gibt es anscheinend ja nicht für Linux, also habe ich die
> Windows-Version mal mit Wine installiert. In Xilinx habe ich als Pfad zu
Die PE-Student gibt es offensichtlich nicht für Linux:
- ModelSim PE Student Edition applies to x86/Windows platforms only.

Ich hab ansonsten nur positive Erfahrungen mit den nativen 
Modelsim-Versionen.

Duke

P.S.: Wer nur mal reinschnupper möchte, kann sich die ModelSim-Altera 
Starter Edition anschauen [1].

[1] https://www.altera.com/download/software/modelsim-starter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.