文書の過去の版を表示しています。


Xvfb


概要

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

インストール on FreeBSD 9.0 Release

on 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 // 成功

on FreeBSD 9.0 Release

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

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

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

利用例

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

x11 server のインストール

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

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

[2023-09-04]

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

obsolute

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

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

概要

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

起動

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

スクリーンショット

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

その他

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

参考

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

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