web-dev-qa-db-ja.com

実行中にXvfbフレームバッファの解像度を変更する

私は Xvfb をコマンドで実行します:

Xvfb :1 -screen 0 100x100x16 -fbdir /tmp

そして、それはうまく機能しています。 VNC経由で接続でき、/tmpディレクトリの下にXvfb_screen0バイナリファイルがあります。

/dev/fb0のように動作すると思ったので、次のように設定を変更しようとしました fbset

Sudo fbset -fb /tmp/Xvfb_screen0 -xres 500 -yres 500

しかし、コマンドはエラーで終了します。

ioctl FBIOGET_VSCREENINFO:デバイスに不適切なioctl

実行中のXvfbサーバーの解像度を変更する方法はありますか?

4
Jezor

Xvfbがサイズ変更をサポートしているかどうかはわかりません。主な関心がVNCである場合は、おそらく TigerVNC を試してみてください。 RandRとXineramaをサポートする最新のVNCサーバーです。 TigerVNCでは、画面のサイズ変更と複数のモニターが非常にうまく機能します。

2
Satya Mishra

−fbdirパラメータ 、作成中フレームバッファメモリを含むメモリマップファイル、フレームバッファデバイスではありません。

fbset manual によると、-fbは、フレームバッファデバイスノードのみを受け入れ、メモリマップファイルは受け入れません。したがって、適切な構文は次のようになると思います。

fbset -fb /dev/fb0 500x500

どこ /dev/fb0はフレームバッファデバイスです(例:/dev/fb/0または/dev/fb0)。

フレームバッファデバイスをXに認識させるには、FRAMEBUFFER変数を定義します。

export FRAMEBUFFER=/dev/fb0

参照 man fbdev 詳細については。

読むには/tmp/Xvfb_screen0、代わりにxwudコマンドを使用する必要があります。

xwud -in /var/tmp/Xvfb_screen0

サーバーの画面0が表示されます。


ほとんどの場合、既存のXサーバーの解像度を変更することはできないため、Xvfbサーバーを再実行するか、解像度の異なる別の画面を呼び出す必要があります。

1
kenorb