Ubuntu 24.04(Noble Numbat)などの新しいLinux環境で、FPGA開発環境であるGowin IDE(Gowin_V1.9.11.03_Education_Linux など)を起動しようとすると、共有ライブラリのバージョン不整合やOpenGLの初期化失敗により、起動直後に強制終了(コアダンプ)することがあります。本記事では、実際に発生する一連のエラーの原因と、最終的な解決手順を解説します。
発生するエラーと根本的な原因
Gowin IDEは、動作に必要なQtや標準C++ライブラリなどの一部をアプリケーション独自のディレクトリ(IDE/lib や IDE/plugins)内に同梱しています。しかし、これらの同梱ライブラリは古いバージョンのUbuntuを基準にビルドされているため、Ubuntu 24.04の新しいシステムライブラリと干渉を起こし、段階的に以下のようなエラーが発生します。
第一の壁となるのが、フォント描画に関連する undefined symbol: FT_Done_MM_Var というシンボル参照エラーです。これはシステム側の新しいフォント設定ライブラリが、Gowin同梱の古い libfreetype を読み込んでしまうことで発生します。
第二の壁は、Qtのプラットフォームプラグインである xcb の読み込み失敗です。デバッグオプション(QT_DEBUG_PLUGINS=1)をつけて起動すると、Gowin同梱の古い libstdc++.so.6 に新しいシステムライブラリが要求する GLIBCXX_3.4.29 が含まれていないことが原因であると判明します。
そして最後の壁となるのが、QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled というグラフィック描画のエラーです。Gowinに同梱されている古いQtのXCBプラグイン(libqxcb.so)が、Ubuntu 24.04の新しいディスプレイ環境(WaylandやXwayland、最新のMesaドライバ)に対応しておらず、OpenGLコンテキストの作成に失敗して即座にアボートしてしまいます。
解決手順
これらの競合をすべて解消し、OS側の新しいシステムライブラリとQtプラグインを正しく参照させるための手順は以下の通りです。
まず、ターミナルを開き、Gowin IDEの IDE/lib ディレクトリへ移動します。パスは自身のインストール環境に合わせて適宜読み替えてください。
cd ~/programs/gowin/Gowin_V1.9.11.03_Education_Linux/IDE/lib
次に、システム側とバージョン不整合を起こす同梱の libstdc++.so.6 と libfreetype.so.6 をリネームして無効化します。これにより、起動時にUbuntu標準の新しいライブラリが読み込まれるようになります。
mv libstdc++.so.6 libstdc++.so.6.bak
mv libfreetype.so.6 libfreetype.so.6.bak
なお、同じディレクトリ内にある libQt5* 関連のファイルまで移動させてしまうと、Gowin固有のQtモジュールが見つからず別のエラーになるため、それらはそのまま残しておく必要があります。
続いて、グラフィック描画のエラーを回避するため、QtのプラットフォームプラグインとしてUbuntuシステム側にインストールされている標準のプラグインを指定して起動します。IDE/bin ディレクトリへ移動し、環境変数 QT_PLUGIN_PATH を付与して実行します。
cd ../bin
QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins ./gw_ide
もしシステム側にQt5のプラグインが存在しない場合は、あらかじめ sudo apt install -y qtbase5-dev qt5-qpa-plugins で導入しておきます。この指定により、OpenGLの初期化処理がGowin付属の古いプラグインからシステム側の新しい libqxcb.so に切り替わり、Gowin IDEが正常に起動するようになります。
毎回環境変数を入力せずに起動する設定
毎回長い環境変数を入力して起動するのは手間がかかるため、以下のいずれかの方法で設定を固定化しておくと便利です。
一つ目は、シェルの設定ファイル(~/.bashrc など)にエイリアスを登録する方法です。以下の1行を追記して反映させることで、どのディレクトリからでも gw_ide と入力するだけで起動できるようになります。
alias gw_ide='QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins ~/programs/gowin/Gowin_V1.9.11.03_Education_Linux/IDE/bin/gw_ide'
二つ目は、Gowin側のプラグインファイルをシステム側のファイルへのシンボリックリンクに置き換える方法です。この方法であれば、デスクトップショートカットや既存の起動スクリプトから直接 ./gw_ide を実行した場合でも正常に動作します。
cd ~/programs/gowin/Gowin_V1.9.11.03_Education_Linux/IDE/plugins/qt/platforms
mv libqxcb.so libqxcb.so.bak
ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so ./libqxcb.so
まとめ
- Ubuntu 24.04でGowin IDEが起動しない主因は、同梱されている古いライブラリとOS標準ライブラリとのバージョン不整合にある
IDE/lib内のlibstdc++.so.6とlibfreetype.so.6をリネームして無効化し、システム側のライブラリを参照させるIDE/lib内のlibQt5*関連ファイルはGowinの動作に必要なため削除・移動しない- OpenGLのコンテキスト生成エラーは、環境変数
QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/pluginsを指定してシステム側のlibqxcb.soを使わせることで解決する - エイリアスの登録またはプラグインのシンボリックリンク化を行うことで、次回以降もスムーズに起動できる
