= Xvfb


1. 概要

  • 仮想的に unix マシン内にディスプレイを作成するための機構.
  • メモリ上にディスプレイがあるイメージ.
  • X 環境では,DISPLAY 環境変数によって,実際のディスプレイと仮想ディスプレイは切替が可能.
  • ターミナルにおける screen のような使い方が可能になる.

2. インストール

2.1 FreeBSD 13.2 くらい? [2023-09-04]

  • x11-servers/xorg-vfbserver は、x11-servers/xorg-server に統合された。
  • portmaster からのインストールはうまくいかなかったが、以下のコマンドでは成功した。
 
# portmaster -m "FLAVOR=xvfb" x11-servers/xorg-vfbserver // 失敗
# cd /usr/ports/x11-servers/xorg-servers && make FLAVOR=xvfb install // 成功

2.2 FreeBSD 9.0 Release

  • ports で x11-servers/xorg-vfbserver をインストール.

3. 仮想スクリーンの起動方法

# Xvfb :1 -screen 0 1024x768x24 > /dev/null & 
  • :1 は,X のディスプレイサーバの番号.
  • -screen 0 はディスプレイサーバに紐づくスクリーン番号.
  • X11 では,サーバもスクリーンも複数制御できるため,その番号を指定する 必要がある.
  • 参考 URL
  • 上記コマンドで,1024×768 の 24bit カラーなディスプレイを仮想的に作成できる.

4. 利用例

4.1 vnc 経由で仮想ディスプレイを操作する

4.1.1 x11 server のインストール

  • net/x11vnc を ports でインストール
  • サーバ番号 1,スクリーン番号 0 で立ち上げる
x11vnc -display :1 -bg -nopw -listen localhost -xkb 
  • -display: サーバ番号の指定.
  • -bg:バックグラウンド
  • -nopw:パスワードなし
  • -listen localhost:ローカルホストからのみの接続を許可
  • -xkb:多分キーボード.

4.1.2 vncviewer のインストールから接続

4.1.2.1 [2023-09-04]

  • net/vnc はもう無くなった。
  • ls /usr/ports/net/ | grep vnc とすれば、いくつか出てくる。
  • net/tightvnc があまりパッケージ自体が大きくなくて手軽に見えた
% vncviewer localhost

4.1.2.2 obsolute

  • net/vnc を ports でインストール
  • 接続
% vncviewer localhost 
  • 注意:vncviewer は X のアプリケーションなので,ちゃんと起動できるようにすること.

4.2 firefox を Xvfb 上で起動し,スクリーンショットをとる

4.2.1 概要

  • firefox は,ディスプレイサーバを指定して起動できるオプションがある.
  • また,コマンドラインから URL を叩く方法も存在する.
  • これを利用すると,コマンドラインからいろいろなサイトを開きスクリーンショットをとることが可能になる

4.2.2 起動

% firefox -display :1 -remote "openurl(http://www.tsukune.org/)"
  • -display:ディスプレイサーバ1番.
  • -remote “openurl(http://www.tsukune.org/)“: 指定 URL をタブで開く.
    • 以下参考の所の mozilla コマンドラインを見ると,いくつか載っている.
    • -remote openurl だと,新しいタブが延々と開くので,vnc 経由で接続し,新しいタブを開かないように preference から設定する方が良い.

4.2.3 スクリーンショット

  • ImageMagick 附属の import コマンドを利用.
% import  -display :1 -window root test.jpg 
  • -display :1:1 番のウィンドウサーバを利用
  • -window root:window id または名前を指定.root は多分全画面,の意味だと思う.
  • test.jpg:出力ファイル名

4.2.4 その他

  • 上記の方法だと,アプリケーションを起動すると全画面で表示される.これは window manager を入れていないから.fvwm なり twm なりを起動すれば window が存在するように見せられるが,vnc 経由での操作になるし対して意味はないと思う.

4.2.5 参考

4.3 コマンドラインで display 指定できない場合

  • 環境変数 DISPLAY を設定すればよい。
例)
export DISPLAY=:1.0
xvfb.txt · 最終更新: 2023/09/07 22:19 by skk
文書の先頭へ
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0