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:
1
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
1
WARNING:iMPACT - Module windrvr6 is not loaded. Please reinstall the cable drivers. See Answer Record 22648.
Muss ich in Impact überhaupt das Plugin
1
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.
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
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
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:
1
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
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)
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
Der Befehl "djtgcfg enum" ergibt folgende Ausgabe:
1
Found 1 device(s)
2
3
Device: Basys2
4
Product Name: Digilent Basys2-100
5
User Name: Basys2
6
Serial Number: 210155411216
Digilent Plugin für Impact:
1
- "Digilent ADEPT Runtime" herunterladen von http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2
2
- Archiv entpacken und Terminal in entpacktem Ordner öffnen
3
- sudo ./install.sh
4
- Standard-Pfade mit Enter bestätigen
5
6
- "Digilent ADEPT Utilities" herunterladen von http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2
7
- Archiv entpacken und Terminal in entpacktem Ordner öffnen
8
- sudo ./install.sh
9
- Standard-Pfade mit Enter bestätigen
10
11
- "Digilent Plugin for Xilinx Tools" herunterladen von http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,768&Prod=DIGILENT-PLUGIN
12
- Archiv entpacken
13
- für 32bit: "libCseDigilent.so" und "libCseDigilent.xml" nach /opt/Xilinx/13.4/ISE_DS/ISE/lib/lin/plugins/Digilent/libCseDigilent/ kopieren
14
- 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
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...
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
>> 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
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
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
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)...
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:
1
Software Versions Tested:
2
Xilinx ISE Design Suite Version 13.x only (Refer to http://www.digilentinc.com/ for versions of the
3
plugin for later Xilinx ISE versions)
4
Digilent Adept System 2.6 (or Digilent Runtime 2.5 for Linux) or greater
5
Supported Operating Systems:
6
• Microsoft Windows 32-bit and 64-bit Operating Systems
7
• 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.
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)
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:
1
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:
1
The Adept Runtime has been built for the following distributions:
2
3
CentOS 4 / Red Hat Enterprise Linux 4
4
CentOS 5 / Red Hat Enterprise Linux 5
5
openSUSE 11 / SUSE Linux Enterprise 11
6
Ubuntu 8.04
7
Ubuntu 9.10
8
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...
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...
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?
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?
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
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
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
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
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
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
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:
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?
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
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...
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
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
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
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
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
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:
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 main do file (bcd2sseg_top.fdo) for Behavioral Simulation...
5
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.
6
> executing '/home/urban/.wine/drive_c/Modeltech_pe_edu_10.1/win32pe_edu/vsim -version' to get the mti_se version...
7
ERROR: Failed to run the vsim command to fetch the version id
8
Reason: couldn't execute "/home/urban/.wine/drive_c/Modeltech_pe_edu_10.1/win32pe_edu/vsim": no such file or directory
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:
1
- 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