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
Klaus R. schrieb: > Warum ich das hier schreibe? Damit, sollte jemand auf ein > ähnliches Problem stoßen, eine Lösung gefunden wird. n1 :)
.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.
Angehängte Dateien:
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.