雑多な備忘録ですが、せっかくなので残しておきます。
2022-08-31 追記
ここに色々書いてはいますが、結局 fluxbox を使う方法
が一番問題が起こらず良いです。 GDM3 や Light DM を諦めて、 fluxbox でリモートデスクトップ用にまともなデスクトップ環境を整えるようにすることをオススメします。一度、fluxbox の設定に慣れておけば、今後の Ubuntu のバージョンアップの際にいちいち躓かなくて良くなります。
Ubuntu 18.04 の resolv.conf を直す
Ubuntu 18.04 の VNC がやたら遅い。特に初回接続時に入力を受け付けない時間があり、とても不快。結局、全部 16.04 にインストールし直すことにする。
sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo reboot
これをしないと、VNC接続時に10秒の Delay が生じる。
Ubuntu 18.04 で GDM3 を使った場合
sudo sed -i -e "s/#WaylandEnable=False/WaylandEnable=False/" /etc/systemd/resolved.conf
Wayland を使っているとちゃんと動かないらしい。
x11vnc の起動コマンド
sudo /usr/bin/x11vnc -loop -forever -bg -xkb -noxrecord -noxfixes -noxdamage -shared -norc -auth /run/user/1000/gdm/Xauthority -rfbport 5900 -rfbauth
1000
などの数字の部分は以下のコマンドで確認しておく。
sudo loginctl
Ubuntu 17.10 & 18.04 – Configure x11vnc to boot at startup – Griffon’s IT Library
以上で接続はできるが、VNC接続した時のマウスカーソルがかっこ悪すぎる。使いたくないので lightdm を使うのがおすすめ。
Ubuntu 18.04 で Lightdm を使った場合
lightdm に切り替える。
apt install lightdm
dpkg-reconfigure lightdm
x11vnc の起動コマンドは下記のようになる。
sudo /usr/bin/x11vnc -display :0 -noxdamage -auth /var/run/lightdm/root/:0 -forever -loop -noxdamage -repeat -shared -rfbport 5900
Nvidia の場合
ドライバのインストール
このページからバージョンを確認する。
sudo apt-cache search 'nvidia-.+$' | grep 430
一致したバージョンのものを上記コマンドなどで探す。
nvidia-xconfig
Xvfbを使う方法などは、XvfbがNvidia関連のバグで正常に動かなくなる。そのため、nvidia-xconfig
を使う必要がある。
Ubuntu 16.04
sudo nvidia-xconfig -a --virtual=1920x1080 --allow-empty-initial-configuration
このコマンドを叩くだけでできる。
これだけでOK!
Remote Off-Screen Rendering with OpenGL | ArrayFire
VirtualGL | Documentation / Headless nVidia Mini How-To
OpenGL/GLXを使うXアプリケーションをkubernetes/dockerコンテナ内でheadlessに動かした話 | Ryought::Lab
Ubuntu 18.04
xorg – X server on NVIDIA card with no screen – Super User
sudo nvidia-xconfig -a --virtual=1920x1080 --allow-empty-initial-configuration --use-display-device="DFP-0" --connected-monitor="DFP-0" --custom-edid="DFP-0:/etc/X11/edid.txt"
なぜか 16.04 の方法ではログイン後に固まってしまう。そのため、monitor に DFP-0
を指定しなければならない。また、custom-edid
を適切に設定しなければ resolution が小さくなってしまう。理由はわからん。edid.txt の設定方法は下記。
sudo sh "echo '00 ff ff ff ff ff ff 00 1e 6d f5 56 71 ca 04 00 05 14 01 03 80 35 1e 78 0a ae c5 a2 57 4a 9c 25 12 50 54 21 08 00 b3 00 81 80 81 40 01 01 01 01 01 01 01 01 01 01 1a 36 80 a0 70 38 1f 40 30 20 35 00 13 2b 21 00 00 1a 02 3a 80 18 71 38 2d 40 58 2c 45 00 13 2b 21 00 00 1e 00 00 00 fd 00 38 3d 1e 53 0f 00 0a 20 20 20 20 20 20 00 00 00 fc 00 57 32 34 35 33 0a 20 20 20 20 20 20 20 01 3d 02 03 21 f1 4e 90 04 03 01 14 12 05 1f 10 13 00 00 00 00 23 09 07 07 83 01 00 00 65 03 0c 00 10 00 02 3a 80 18 71 38 2d 40 58 2c 45 00 13 2b 21 00 00 1e 01 1d 80 18 71 1c 16 20 58 2c 25 00 13 2b 21 00 00 9e 01 1d 00 72 51 d0 1e 20 6e 28 55 00 13 2b 21 00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 13 2b 21 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26' > /etc/X11/edid.txt"
X11VNC
TARGET=''
ssh $TARGET
sudo x11vnc -storepasswd
# Enter Password
sudo bash -c "echo "[Unit]
Description=x11vnc (Remote access)
After=multi-user.target
[Service]
Type=simple
ExecStart=sudo /usr/bin/x11vnc -display :0 -noxdamage -auth /var/run/lightdm/root/:0 -forever -loop -noxdamage -repeat -shared -rfbport 5900 -rfbauth /home/$USER/.vnc/passwd -xkb
[Install]
WantedBy=multi-user.target
" > /etc/systemd/system/x11vnc.service"
sudo systemctl daemon-reload
sudo systemctl enable x11vnc
sudo systemctl restart x11vnc
ログインしてすぐ XIO ERROR が起こる時
/var/log/syslogを確認して /home/anna/.Xauthority
の読み出しに失敗していないか確認する。権限がrootになっていたらエラーになる。ファイル
以下の情報はOpenGLを使う場合の情報。
Xvfb を使う場合
lightdm を使う方法
DTIのVPS上にデスクトップ環境を作るという試み — 実験メモとかいろいろ
上記リンクのやり方でログイン画面まではできた。ただ、ログインしたらすぐにx11vncが切れてしまった。
LightDMをXvfb上で動作するように構成
/etc/lightdm/Xvfb.sh として次のファイルを作る。 用意するデスクトップのサイズと色数は、1024x768x24のところで指定している。
#! /bin/sh
exec /usr/bin/Xvfb -screen 0 1024x768x24 -nolisten tcp
パーミッション等を調整。
$ sudo chown root:root /etc/lightdm/Xvfb.sh
$ sudo chmod 755 /etc/lightdm/Xvfb.sh
/etc/lightdm/lightdm.conf の [SeatDefaults] セクションの xserver-command を設定する。
[SeatDefaults]
xserver-command=/etc/lightdm/Xvfb.sh
LightDMを再起動する。
$ sudo /etc/init.d/lightdm restart
fluxbox を使う方法
Xvfbで作った仮想ディスプレイにリモートデスクトップ接続する – いしだ日記
sudo apt-get install fluxbox x11vnc xvfb
export DISPLAY=:0
nohup Xvfb :0 -screen 0 1280x1024x24 > /dev/null 2>&1 &
nohup fluxbox > /dev/null 2>&1 &
これでfluxboxをwindow-managerとしたデスクトップ環境が得られる。
fluxboxをバックグラウンドで起動します。
x11vncをこれまたバックグラウンドで起動します。
2019-08-17
Ubuntu のデスクトップが立ち上がらないのは gdm などのウィンドウマネジャーが起動していないことが原因みたい。gdm かなにかを立ち上げられるように頑張る。
How to Switch Between GDM and LightDM in Ubuntu
ubuntu 16.04 の default window manger は lightdm。
参考リンク
How to run X server using xserver-xorg-video-dummy driver on Ubuntu – TechOverflow
おっさんエンジニアの実験室: x11vnc、Xvfb、Xdummy、VirtualGL とか
How can I run lightdm on Xvfb on a Raspberry Pi? – Super User
12.04 – vnc using lightdm and x11vnc disconnects immediately after valid login – Ask Ubuntu
コメント