Rocky Linux 8.10+VNCでXceliumのGUI表示が崩れる問題をXfce4で解決した

Rocky Linux 8.10にVNCで接続し、Cadence Xcelium 26.03などのEDAツールを使っていると、メニューやツールバーの描画が崩れることがありました。ウィンドウの最大化・全画面化・サイズ変更をきっかけに表示がおかしくなり、操作に支障が出る状態です。

結論から言うと、VNCで起動するデスクトップ環境をGNOME系からXfce4へ変更したところ解消しました。ホストマシン上でGNOMEを直接操作した場合は再現しなかったため、GNOMEそのものではなく「GNOME系デスクトップ+VNC経由の描画」の組み合わせに起因する現象と考えています。

English version is available here.

発生した環境

  • OS:Rocky Linux 8.10
  • VNCサーバー:Rocky Linux側のTigerVNCで確認
  • VNCクライアント:Windows 11のUltraVNC Viewer
  • デスクトップ環境:GNOME系セッション
  • EDAツール:Cadence Xcelium 26.03で確認

なお、VNCサーバーを別のものに変更しても改善しませんでした。一方、VNCを使わずRocky Linuxのホストマシンを直接操作した場合は、同じGNOME系デスクトップでも症状は再現しませんでした。

具体的な症状

  • Xceliumのツールバーやメニューを開くと、表示の一部が欠ける・重なる
  • ウィンドウを最大化または全画面表示にすると描画が崩れる
  • ウィンドウサイズを変更すると、古い描画が残ったような状態になる
  • アプリケーションを操作できても、画面が正しく再描画されず実用上つらい

最初はXcelium側のGUI不具合やVNCサーバー固有の問題を疑いました。しかし、接続方法とデスクトップ環境を変えながら比較すると、次の結果になりました。

条件結果
GNOME系+VNC接続表示崩れが発生
GNOME系+ホストで直接操作再現しない
VNCサーバーを変更改善しない
Xfce4+VNC接続表示崩れが解消

原因の切り分け

この結果から、少なくとも今回の環境ではXcelium単体やTigerVNC単体が原因とは考えにくく、GNOME系デスクトップの描画処理とVNCセッションの相性が問題だった可能性が高いです。

ただし、GNOME Shell、ウィンドウマネージャー、コンポジター、X11のどの層で問題が起きていたかまでは特定していません。そのため「GNOMEの特定コンポーネントのバグ」と断定するのではなく、実測上はGNOME系をVNC経由で使用した場合にだけ発生し、Xfce4へ切り替えると解消した、というのが正確な結論です。

対処法:VNCセッションをXfce4へ変更する

以下はRocky Linux 8系でXfceを追加する一般的な手順です。実行前に、利用中のリポジトリ構成とVNC設定をバックアップしてください。

1. EPELとPowerToolsを有効にする

sudo dnf config-manager --set-enabled powertools
sudo dnf install -y epel-release

Rocky Linux 8では、Xfce関連パッケージの取得にEPELを利用します。PowerToolsはRocky Linux 8での名称で、Rocky Linux 9以降のCRBとは名称が異なります。

2. Xfceをインストールする

sudo dnf grouplist
sudo dnf groupinstall -y "Xfce"

dnf grouplistの結果にXfceが表示されることを確認してからインストールします。Rocky Linux公式ドキュメントでも、Rocky Linux 8向けにEPEL・PowerToolsを有効化し、Xfceグループをインストールする手順が案内されています。

3. TigerVNCで起動するセッションをXfceにする

今回の環境では、ユーザーごとのVNC起動スクリプト ~/.vnc/xstartup を編集し、GNOME系セッションの代わりにXfce4を起動するよう変更しました。

既存ファイルをバックアップしてから編集します。

cp -a ~/.vnc/xstartup ~/.vnc/xstartup.bak
vi ~/.vnc/xstartup

~/.vnc/xstartupの内容を、Xfce4を起動するよう次のようにします。

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4

編集後、実行権限を確認します。

chmod +x ~/.vnc/xstartup

その後、使用中のディスプレイ番号に対応するVNCセッションを停止・再起動し、Windows 11のUltraVNC Viewerから再接続します。サービス名や再起動コマンドはTigerVNCの導入方式とディスプレイ番号によって異なるため、現在の設定を確認してから実行してください。

Xfce4へ変更した結果

Xfce4のVNCセッションへ切り替えた後、Xceliumでツールバーやメニューを開いても描画が崩れなくなりました。全画面表示やウィンドウサイズの変更でも症状は再現せず、通常どおり操作できるようになりました。

EDAツールはGUIが複雑で、波形ビューアーや各種パネルを頻繁に開閉します。VNCサーバーやクライアントの設定を延々と変更する前に、デスクトップ環境を軽量なXfceへ切り替えて比較するのは有効な切り分け方法です。

まとめ

  • Rocky Linux 8.10のGNOME系デスクトップをVNC経由で使うと、XceliumのGUI表示が崩れた
  • GNOME系でもホストマシンを直接操作した場合は再現しなかった
  • VNCサーバーを変更しても改善しなかった
  • VNCセッションをXfce4へ変更すると解消した
  • 内部の原因箇所までは未特定だが、GNOME系デスクトップとVNC描画の組み合わせ問題と考えるのが妥当

同じようにLinux上のEDAツールで、メニュー・ツールバー・最大化・リサイズ時の表示崩れに悩んでいる場合は、まずXfce4のVNCセッションを試してみてください。

参考資料