Docker 19.03で実装された–gpusを使ってGPUが使えるコンテナを作るで作ったGPUコンテナ上でXVfbを実行してブラウザを動かす、といった事をやりたかったのだけど、VirtualGLなどを駆使してみたり、このへんとかを見ながらガチャガチャやってみたが、結果的にうまくいかなかった
1 | // glxinfoでディスプレイドライバを確認(Xvfbで作った仮想スクリーン) |
先に結論
Xvfbを使わず、Nvidia Linux Display DriverのAllowEmptyInitialConfiguration
オプションを使って仮想ディスプレイを用意しました
1 | $ sudo nvidia-xconfig --enable-all-gpus --allow-empty-initial-configuration --use-display-device=None --virtual=1920x1080 |
/etc/X11/xorg.conf
に以下のような内容が追加されます(xorg.conf自体が無い場合は新規作成してくれる)
1 | Section "Screen" |
AllowEmptyInitialConfigurationとは
NVIDIA DRIVERS Linux x64 (AMD64/EM64T) Display Driver
上記より抜粋
立ち上げ時に接続されたディスプレイデバイスが検出されない場合でも Xサーバが始動できる新たなオプション、AllowEmptyInitialConfiguration を追加しました。このオプションは、”sudo nvidia-xconfig –allow-empty-initial-configuration”を動作することで、有効化することができます。
ようするに、わざわざXvfbを使用しなくても、Nvidia GPU単体でXサーバを起動出来るらしく、これを使用する事にしました
なんか動かないなーという時のログ出力先
0
の所はディスプレイ番号?(未確認)
1 | $ cat /var/log/Xorg.0.log |