gdm + gnome-session
前回までのセットアップでは、Xを手動でstartxして起動していたが、実験の意味もあり
GDMを入れることにした。
lightdmを最初に入れたが、なぜかログインできず。原因がXAuthorityパーミンションでもなく、解決困難だったため lightdm をやめて gdm に切り替えた。
$ sudo apt install gdm
これだけでXorgでgdmが自動起動するようになる。gnome-sessionも同時に入る。
$ sudo systemctl stop gdm
ってやってもXが止まってくれない。defaultがgraphical.targetだからかな。。
gdm 常時offにしたい時
$ sudo systemctl set-default multi-user.target してリブート
gdm 常時onにしたい時
$ sudo systemctl set-default graphical.target してリブート
$ systemctl get-defaultで
multi-user.targetとなっている場合は、systemctl start/stop gdmがうまく動く。
x11vnc
これを使うと、物理ディスプレイのXをVNCでミラーリングできる。物理ディスプレイをリモート操作できるっていう代物。
$ sudo apt install x11vnc
別のホストPCで使っているvnc4serverとかは仮想XドライバなのでGPUが機能しない。
GPUイネーブルなドライバが機能するのは、ディスプレイデバイスに接続されているX環境だけなのだ。正確には物理GPUアクセス可能なネイティブなビデオドライバが動くX環境。
x11vncは以下のXvfbやDummyと組み合わせて使うとより自由度が高まる。
Xvfb
Xの仮想フレームバッファドライバ。残念ながら3DはMesaで3DHWは使えない。
仮想X環境をいくつも簡単に作れるので便利ではある。
$ sudo apt install xvfb
XDummy
これはスクリプトと説明されているけれど、プログラムソースコードが含まれている。
これを動かすためには、dummyビデオドライバとgccやclangなどのコンパイラが必要。
$ sudo apt install xserver-xorg-video-dummy
$ sudo apt install clang
$ XDummy install
すると、スクリプト内に含まれているプログラムがコンパイルされて~/bin/xdummy.so が作られる。
これがx11vncが起動するXの仮想ドライバになる・・・のかな?・・・
XDummyスクリプトを通して、このxdummy.soを使うとdlsymがundefinedだとかでエラー。
↓
XDummy スクリプトで cc でコンパイルしている行に" -ldl" を追加して再度実行。
ユーザレベル起動だとハング!!
↓
$ sudo XDummy :0
でやっと動いた。rootじゃなくても動くようになったと書いてあったけどなぁ。
なにかやり忘れているのかもしれないが、ちゃんとした説明がなく、-help 頼み。
org-video-dummyのdummyドライバを使ったXorg起動とこのxdummy.soは関係あるのか、ないのかイマイチ体感できず。
XDummyスクリプトを通して、このxdummy.soを使うとdlsymがundefinedだとかでエラー。
↓
XDummy スクリプトで cc でコンパイルしている行に" -ldl" を追加して再度実行。
ユーザレベル起動だとハング!!
↓
$ sudo XDummy :0
でやっと動いた。rootじゃなくても動くようになったと書いてあったけどなぁ。
なにかやり忘れているのかもしれないが、ちゃんとした説明がなく、-help 頼み。
org-video-dummyのdummyドライバを使ったXorg起動とこのxdummy.soは関係あるのか、ないのかイマイチ体感できず。
XDummyはXvfbよりちょっとだけ優れているのだそうな。RandRとGLX extensionsが機能することと、2Dパフォーマンスがいいらしいが、結局仮想ドライバなので、GLXはソフトエミュ。
x11vnc設定ファイル
x11vnc設定ファイル
x11vncには山ほどのオプション設定がある。sshトンネル経由とか。。把握しきれない。
色々物色して、.x11vncrcと言う名前のファイルにオプションの'-'外して羅列することで設定できるとわかり、色々実験した結果、自分なりの.x11vncrcは以下の通り。
.x11vncrc の内容
usepw
nonc
shared
noxrecord
noxdamage
noxfixes
norc
xkb
repeat
scr_keyrepeat 4-10
o x11vnc.log
usepwで初回起動でpw設定できる。いちいち-storepasswordとかやらなくていい。
あとはだいたいお決まりオプション。
VirtualGL
Linux Packages からvirtualglのdebパッケージをダウンロード
vglrunとか、vgl**なコマンドが使えるようになる。
これはXGLなアプリをこのツールを通して実行することで、GPUイネーブルなドライバが動いているXでGLコマンドを実行させて出力イメージを転送表示するツールみたいなもの。
Linux Packages からvirtualglのdebパッケージをダウンロード
$ sudo dpkg -i debファイル
vglrunとか、vgl**なコマンドが使えるようになる。
vglconnectやvglclientとかは、より遠方のX端末同士をつなぐ時に使うみたい。
自分がやりたいこととは若干違ったので、vglrunだけ試してみた。