2018/02/15

モニタをつないでいない Ubuntu の Vino に接続する

@Ubuntu 16.04 LTS

Vino はそもそも画面をミラーリングするアプリケーションなので、画面出力をしていないマシンにつなぐことは出来ません。

しかし、バックグラウンドで GUI アプリケーションを動かしておきたい場合、モニタ無しで VNC 接続したいこともあります。 そんな時は、ダミーのグラフィックドライバをインストールすることで接続出来るようになります。

参考

Vino - ArchWiki

グラフィックドライバをインストールする

Ubuntu 16.04 では以下のようにバージョン指定(lts-xenial)しないとうまく動きませんでした。 本来ならば xserver-xorg-video-dummy で良いはずなのですが1

$ sudo apt install xserver-xorg-video-dummy-lts-xenial

設定ファイルを用意する

以下のような設定ファイルを用意します。

/usr/share/X11/xorg.conf.d/80-dummy.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Section "Device"
    Identifier  "Configured Video Device"
    Driver      "dummy"
    VideoRam 256000
EndSection
 
Section "Monitor"
    Identifier  "Configured Monitor"
    HorizSync 5.0 - 1000.0
    VertRefresh 5.0 - 200.0
    # 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz
    Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
    # 1920x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 193.16 MHz
    Modeline "1920x1200" 193.16 1920 2048 2256 2592 1200 1201 1204 1242 -HSync +Vsync
EndSection
 
Section "Screen"
    Identifier  "Default Screen"
    Monitor     "Configured Monitor"
    Device      "Configured Video Device"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1920x1200"
    EndSubSection
EndSection
 
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "jp,us"
        Option "XkbModel" "jp106"
        Option "XkbVariant" ",dvorak"
        Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

重要なのは Modeline の行で、ここで解像度を指定します。 そして、Screen セクションの Modes で、どの解像度を使用するか明示します。

上記の例では2つ書きましたが、基本的には1つで良いです。 上記の例だと 1920x1200 を指定しているので、1920x1080 は本当は必要ありません。

Modeline の計算は面倒くさいので、以下のサイト等を利用させてもらうと良いでしょう。

参考

* Modeline Calculator

2018/5/12 追記
InputClass セクションを追加しました。
これがないとキーボードレイアウトがおかしくなってしまいます。
[Headless server につないだ Vino のキーボードを日本語レイアウトにする | 穀風](https://kokufu.blogspot.com/2018/05/headless-server-vino.html)

Vino を起動時に有効にする

gsettings を使うと Vino を有効にすることが出来ます。 この時、prompt-enabledfalse にしないとダミーの画面にプロンプトが出て2しまい、接続できないので注意が必要です。

$ gsettings set org.gnome.Vino enabled true
$ gsettings set org.gnome.Vino prompt-enabled false

なお、設定の段階からディスプレイをつないでいない場合、以下のように DISPLAY 環境変数を明示的に指定しないとエラーになってしまいます。

$ DISPLAY=:0 gsettings set org.gnome.Vino enabled true
$ DISPLAY=:0 gsettings set org.gnome.Vino prompt-enabled false

参考

Vino の設定は gconftool-2 では出来ない | 穀風

  1. 多分、依存関係の問題なのですが、深く追っていません 
  2. 実際には見えないので「出てるであろう」が正しいかも 
?

0 件のコメント: