CentOS 8 / esxi環境 で画面解像度が保存されないのをどうにかする
VMware esxi 7 (および6)においてCentOS8をインストールすると画面解像度が保存されません。
再起動すると800x600になってしまうのでかなり面倒です。
正しい解決方法は結局見つからなかったので対処療法ですが記録しておきます。
~~【問題点1】 CentOS8からX Window SystemがX.orgからWaylandにデフォルトが変更になった。
そもそもの元凶がこれだと思われます・・・。まだ人類には早すぎた(違)
解像度が保存されない原因は不明ですが、対処に利用したい解像度変更のxrandrコマンドがWaylandでは動きません。
~~【解決策1】Waylandを止める!
/etc/gdm/custom.conf
を編集します。コメントアウトだけで大丈夫のハズ
WaylandEnable=false
再起動したら、xrandrコマンドが動くか確認しましょう
# xrandr --output Virtual-1 --mode 1680x1050
xrandrを引数無しで実行すると認識している解像度一覧が出ます。
outputで指定しているVirtual-1(モニタ識別子)も表示されますので確認してください。(Virtual1だったりします)
このあたりはxrandrでぐぐればたくさん事例があると思います。
あとはこれを起動時に実行するだけですが・・・
/etc/gdm/Init/Default で実行するのが一番だと思います。
ログイン画面(GDM)の画面解像度 - つるながの綴り方
他にもいろいろ方法がありますが、/etc/profile.d/ にスクリプトを入れる方法は時間差がありすぎてダメでした。
~~【問題点2】/etc/gdm/Init/Default が実行されない!
これもWaylandがデフォルトになっている影響だと邪推しています。(Waylandではこれを使わないようなので)
正しく設定されているかどうかは、Defaultを直接実行してみれば判ります。解像度が正しく変更されれば大丈夫です。
これはバグのような気がするので直るのを待つのがいいのですが・・・
~~【解決策2】/etc/xdg/autostart/ で無理矢理実行する
解決策というか一時回避策です。
Gnomeの起動時に実行するように設定します。
[Desktop Entry] Type=Application Name=GNOME run Default Exec=/etc/gdm/Init/Default OnlyShowIn=GNOME; NoDisplay=true;
ファイル名は最後に.desktopが付いていれば何でも良いです。 gnome.run.default.desktop とか。
これを /etc/xdg/autostart/ に置きます。ユーザー個別にしたいときはそれぞれで設定して下さい(省略)
これでログイン時にDefaultが実行されて解像度が変更されました。
ログイン画面はDefaultが正しく実行されないので800x600のままです。
もしバグ修正が行われれば、ログイン画面から指定解像度になると思います。そのときは.desktopを消せば良いかと。
また、Waylandがまともに動くようになればそちらに移行するのが一番かと思います。