Skip to content

Troubleshooting Launch Issues on Raspberry Pi JP

HiroYokoyama edited this page Dec 6, 2025 · 3 revisions

Raspberry Pi での起動トラブルシューティング

Raspberry Pi (Raspberry Pi OS) 環境において、moleditpy が起動直後にクラッシュする、または画面が表示されない場合の原因と対処法です。

発生する現象

アプリケーション起動時に以下のエラーログが出力され、異常終了する。

  1. X Window 関連のエラー
    X Error of failed request: BadWindow (invalid Window parameter)
    Major opcode of failed request: 12 (X_ConfigureWindow)
    
  2. シェーダー (OpenGL) 関連のエラー
    vtkShaderProgram ... error: syntax error, unexpected NEW_IDENTIFIER
    attempt to add attribute without a program for attribute ndCoordIn
    Couldn't build the shader program for resolving msaa.
    

原因

Raspberry Pi のグラフィックスドライバ (VC4/V3D) と、描画ライブラリ (VTK/Qt) の互換性および設定の問題です。

  1. OpenGLバージョンの不一致: アプリケーションが要求するアンチエイリアス処理 (MSAA) に必要なシェーダー機能 (sampler2DMS) を、Raspberry Pi のドライバがデフォルト設定ではサポートしていない、あるいはバージョンの申告が低いために発生します。
  2. ウィンドウシステム: Raspberry Pi OS (Bookworm以降) の Wayland 環境下で、Qt が XWayland を介してウィンドウを操作する際にタイミングの問題が発生しています。

解決策

起動時に以下の環境変数を設定することで、これらの制限を回避して起動できます。

方法1: ターミナルで一時的に実行する場合

以下のコマンドを順に入力してから moleditpy を起動してください。

export QT_QPA_PLATFORM=xcb
export MESA_GL_VERSION_OVERRIDE=3.2
export MESA_GLSL_VERSION_OVERRIDE=150
moleditpy
  • QT_QPA_PLATFORM=xcb: Qtに対して、WaylandではなくX11バックエンドを強制的に使用させます。
  • MESA_GL_...: OpenGL 3.2 / GLSL 1.50 をサポートしているようにドライバに振る舞わせ、シェーダーのコンパイルエラーを回避します。

方法2: 起動用スクリプトを作成する場合 (推奨)

毎回入力するのが手間な場合は、以下の内容で起動スクリプト (例: run_moleditpy.sh) を作成してください。

#!/bin/bash
export QT_QPA_PLATFORM=xcb
export MESA_GL_VERSION_OVERRIDE=3.2
export MESA_GLSL_VERSION_OVERRIDE=150
moleditpy

実行権限を付与して使用します。

chmod +x run_moleditpy.sh
./run_moleditpy.sh

(開発者向け) コードレベルでの修正

環境変数を設定せずに動作させるためには、アプリケーションコード側で マルチサンプリング (MSAA) を無効化 することを推奨します。

Raspberry Pi などの組込みGPUでは MSAA の負荷が高く、サポートも限定的であるため、これを無効にすることで MESA_... の環境変数オーバーライドが不要になります。

修正例 (Python/VTK):

# vtkRenderWindow に対して設定を行う
render_window.SetMultiSamples(0)

QT_QPA_PLATFORM=xcb については、環境によっては依然として必要な場合があります。

Clone this wiki locally