2018/02/15

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

@Ubuntu 16.04 LTS

[Vino](https://github.com/GNOME/vino) はそもそも画面をミラーリングするアプリケーションなので、画面出力をしていないマシンにつなぐことは出来ません。

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

> 参考
>
> [Vino - ArchWiki](https://wiki.archlinux.jp/index.php/Vino#.E3.83.98.E3.83.83.E3.83.89.E3.83.AC.E3.82.B9.E3.82.B5.E3.83.BC.E3.83.90.E3.83.BC.E3.81.A7.E5.AE.9F.E8.A1.8C)



### グラフィックドライバをインストールする
Ubuntu 16.04 では以下のようにバージョン指定(lts-xenial)しないとうまく動きませんでした。
本来ならば `xserver-xorg-video-dummy` で良いはずなのですが多分、依存関係の問題なのですが、深く追っていません。

```console
`gutter: false;
$ apt install xserver-xorg-video-dummy-lts-xenial
```

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

`/usr/share/X11/xorg.conf.d/80-dummy.conf` 
```text
`highlight: [12, 14, 24];
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](https://arachnoid.com/modelines/index.html)

2018/5/12 追記
InputClass セクションを追加しました。
これがないとキーボードレイアウトがおかしくなってしまいます。
[Headless server につないだ Vino のキーボードを日本語レイアウトにする | 穀風](https://kokufu.blogspot.com/2018/05/headless-server-vino.html)
### Vino を起動時に有効にする `gsettings` を使うと Vino を有効にすることが出来ます。 この時、`prompt-enabled` を `false` にしないとダミーの画面にプロンプトが出て実際には見えないので「出てるであろう」が正しいかもしまい、接続できないので注意が必要です。 ```console `gutter: false; $ gsettings set org.gnome.Vino enabled true $ gsettings set org.gnome.Vino prompt-enabled false ``` なお、設定の段階からディスプレイをつないでいない場合、以下のように `DISPLAY` 環境変数を明示的に指定しないとエラーになってしまいます。 ```console `gutter: false; $ DISPLAY=:0 gsettings set org.gnome.Vino enabled true $ DISPLAY=:0 gsettings set org.gnome.Vino prompt-enabled false ``` > 参考 > > [Vino の設定は gconftool-2 では出来ない | 穀風](https://kokufu.blogspot.com/2017/09/vino-gconftool-2.html)

0 件のコメント: