Forum: FPGA, VHDL & Co. gowin IDE startet nicht unter Ubuntu 22.04.5


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 Klaus R. (klausro)


Lesenswert?

Um mir die Weihnachtstage etwas produktiver zu gestalten, will ich mich 
mit den GoWin FPGAs beschäftigen. Dabei bin ich auf ein Problem unter 
Ubuntu 22.04 gestoßen, was anscheinend so noch nicht im WWW dokumentiert 
wurde, zumindest habe ich nichts gefunden.

Ich habe mir die Gowin_V1.9.10.03_Education_linux.tar.gz Version von der 
GoWin Seite runtergeladen und diese nach ~/gowin ausgepackt. Obwohl 
diese auf der Homepage als (Linux x86) bezeichnet wird, scheint es sich 
(zumindest bei der gw_ide) um ein x64 executable zu handeln.

Beim Versuch, die IDE zu starten kam es zur folgenden Fehlermeldung
1
~/gowin$ IDE/bin/gw_ide 
2
IDE/bin/gw_ide: ~/gowin/IDE/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/lib/AppProtection/libAppProtection.so)
3
IDE/bin/gw_ide: ~/gowin/IDE/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/AppProtection/libAppProtection.so)

Anscheinend ist die beigepackte libstdc++.so.6 zu alt, ein
1
strings ~/gowin/IDE/lib/libstdc++.so.6 | grep GLIBCXX_3.4.

liefert nur Versionen bis 3.4.19. Die Lösung war nun, die "hauseigene" 
libstdc++.so.6 aus/lib/x86_64-linux-gnu/ nach ~/gowin/IDE/lib zu 
kopieren, bei mir war es die libstdc++.so.6.0.30.
1
$ cd ~/gowin/IDE/lib
2
$ mv libstdc++.so.6 libstdc++.so.6.old
3
$ cp /lib/x86_64-linux-gnu/libstdc++.so.6.0.30 ./libstdc++.so.6

Danach läufts. Warum ich das hier schreibe? Damit, sollte jemand auf ein 
ähnliches Problem stoßen, eine Lösung gefunden wird.

Das ganze auf Englisch:

GoWins FPGA IDE Gowin_V1.9.10.03_Education_linux.tar.gz won't start on 
Ubuntu 22.04.5. The following error occurred:
1
~/gowin$ IDE/bin/gw_ide 
2
3
IDE/bin/gw_ide: ~/gowin/IDE/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/lib/AppProtection/libAppProtection.so)
4
5
IDE/bin/gw_ide: ~/gowin/IDE/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/AppProtection/libAppProtection.so)

It seems, that the supplied libstdc++.so.6 in IDE/lib by GoWin is to 
old, it's version seems to be 3.4.19. The solution is, to copy a recent 
libstdc++.so.6 from /lib/x86_64-linux-gnu/ to ~/gowin/IDE/lib. On my 
ubuntu it was
libstdc++.so.6.0.30, in your case it could be a different one.
1
$ cd ~/gowin/IDE/lib
2
$ mv libstdc++.so.6 libstdc++.so.6.old
3
$ cp /lib/x86_64-linux-gnu/libstdc++.so.6.0.30 ./libstdc++.so.6

: Bearbeitet durch User
von Andreas H. (ahz)


Lesenswert?

Klaus R. schrieb:
> Warum ich das hier schreibe? Damit, sollte jemand auf ein
> ähnliches Problem stoßen, eine Lösung gefunden wird.

n1 :)

von Martin S. (strubi)


Lesenswert?

.so's umzukopieren sollte man vermeiden, auch wenn's in diesem Fall 
funktionieren mag. De facto standard-Vorgehensweise ist bei solchen 
Klassikern, das Referenz-OS (was der Hersteller empfiehlt, oder worauf 
gebaut wird) in einen Docker-Container oder notfalls eine VirtualBox zu 
packen. Gerade bei Mischmasch von 32/64 bit wie bei Lattice Diamond ist 
das quasi unumgaenglich.

von Klaus R. (klausro)



Lesenswert?

Das mag in einer Profiumgebung, bei der es um die Reproduzierbarkeit von 
(möglicherweise) wichtigen Produktlinien geht, das Mittel der Wahl sein. 
Zumal ein Einmotten der Entwicklungsumgebung in einer VM oft der einzige 
Weg ist, auch nach Jahren noch sinnvoll Bugfixes machen zu können.

Hier geht es aber um ein Kennenlernen und Try-Out der Software. Spannend 
ist ja auch, dass Ubuntu 22.04 LTS ein Referenz-OS ist. Andere haben 
noch ganz andere Dinge gemacht, um den Linux Port zum laufen zu 
bekommen, va. wenn der Lizenzserver zum Einsatz kommen sollte. Ich hatte 
auch Befürchtungen, dass das x86 auf der Gosemi Homepage zu (altem) i686 
Code führt, aber es scheint durchwegs amd64 code zu sein; möglicherweise 
dient dass nur zur Abgrenzung zu ARM Code.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.