テスト中の一部のハードウェアへの接続をシミュレートするGUIテストベンチがあります。テストベッドはSun Sparc Ultra 2 SunOs 5.7でした。エミュレーションソフトウェアはモニターの電源が入っていることを確認します:0.0
。それ以外の場合は電源が入りません。私たちはこれを確認しないようにシミュレーションのソースコードを書き換えませんでした。私のローカル端末に表示される内容を「見なければなりません」。これを試しましたが、x11vnc
Xsunはロギング拡張をサポートしていないようです。 SSH -XはDISPLAYをに設定すると:10.0
機能します。 cgwinを実行しているWindowsシステムでは、ポート6000をポート6001に転送する必要があります。 (私は6001が:1.0
私のWindowsボックスのxサーバーにもリストされていると仮定します。)これは可能ですか?私は限界に達した。
問題のコードです。
/* Console can always access the HW */
if (xserver != (char *) NULL)
{
/* if the first two characters are ":0" */
if ((xserver[0] == ':') && (xserver[1] == '0'))
termtype = TERMINAL_LOCAL;
else if (uname(&utshost) == 0)
{
nnlen = strlen(utshost.nodename);
if ((int) strlen(xserver) >= (int) (nnlen + 2))
{
if ((strncmp(xserver, utshost.nodename, nnlen) == 0) &&
(xserver[nnlen] == ':') && (xserver[nnlen + 1] == '0'))
termtype = TERMINAL_LOCAL;
else
termtype = TERMINAL_REMOTE;
} /* END if */
} /* END if/else */
} /* END if */
実行すると、次のようになりますxdpyinfo -queryExtensions
(関連性のために切り捨てられます)。
name of display: localhost:0.0
version number: 11.0
vendor string: The Cygwin/X Project
vendor release number: 11001000
maximum request size: 16777212 bytes
motion buffer size: 256
bitmap unit, bit order, padding: 32, LSBFirst, 32
image byte order: LSBFirst
number of supported pixmap formats: 7
supported pixmap formats:
depth 1, bits_per_pixel 1, scanline_pad 32
depth 4, bits_per_pixel 8, scanline_pad 32
depth 8, bits_per_pixel 8, scanline_pad 32
depth 15, bits_per_pixel 16, scanline_pad 32
depth 16, bits_per_pixel 16, scanline_pad 32
depth 24, bits_per_pixel 32, scanline_pad 32
depth 32, bits_per_pixel 32, scanline_pad 32
keycode range: minimum 8, maximum 255
focus: window 0x200023, revert to PointerRoot
number of extensions: 22
BIG-REQUESTS (opcode: 132)
Composite (opcode: 146)
DAMAGE (opcode: 147, base event: 90, base error: 149)
DOUBLE-BUFFER (opcode: 138, base error: 138)
DPMS (opcode: 139)
GLX (opcode: 148, base event: 91, base error: 150)
Generic Event Extension (opcode: 128)
MIT-SCREEN-SAVER (opcode: 133, base event: 82)
RANDR (opcode: 143, base event: 88, base error: 146)
RECORD (opcode: 137, base error: 137)
RENDER (opcode: 142, base error: 141)
SGI-GLX (opcode: 148, base event: 91, base error: 150)
SHAPE (opcode: 129, base event: 64)
SYNC (opcode: 134, base event: 83, base error: 133)
X-Resource (opcode: 145)
XC-MISC (opcode: 136)
XFIXES (opcode: 141, base event: 86, base error: 139)
XFree86-Bigfont (opcode: 140)
XINERAMA (opcode: 144)
XInputExtension (opcode: 130, base event: 65, base error: 128)
XKEYBOARD (opcode: 135, base event: 85, base error: 136)
XTEST (opcode: 131)
default screen number: 0
私がsshをするとき[Eメール保護]$ DISPLAYはサーバー名:0.0で、ローカルですが表示されません。私がssh -Xをするとき[Eメール保護]$ DISPLAYはlocalhost:0.0で、私のシミュレーションはそれをリモートで処理します。
答え1
シミュレーションソフトウェアがディスプレイ番号が0であることを確認したら、リモートディスプレイを0に設定できます。Xsun
ローカルで実行するか、別のモニター(例)で実行していないことを確認してくださいXsun :1
。 OpenSSHサーバー設定ファイルに/etc/ssh/sshd_config
次の行を追加しますX11DisplayOffset 0
。
SSH経由で接続すると、環境変数は(上記で設定したように)DISPLAY
に設定されます。これは(すべての実用的な目的のために)アプリケーションが許可する同義語なので、次の項目に入れることができます。localhost:0.0
X11DisplayOffset
localhost:0
.profile
DISPLAY=${DISPLAY%.0}
エミュレーションソフトウェアにローカルディスプレイが必要な場合は:0
Xvfb(V仮想F絶頂第二クマXサーバー、それがSolarisに付属しているかどうかはわかりません)。上記のように、Xサーバーをディスプレイ上でローカルに実行しないでください。存在する:0
場合は実行してください。:1
Xvfbを使用すると、モニターに簡単に接続することはできませんが、画面の静的画像を見ることができます。
Xvfb :1 -screen 0 1024x768x16 -fbdir /tmp &
DISPLAY=:1 simulation-program &
xwud -in /tmp/Xvfb_screen0
あるいは、Xnest、Xephyr、VNCなどのウィンドウに表示されているXサーバーを試すこともできます。再度SunシステムでローカルXサーバーを実行している場合は、ディスプレイから実行してください:1
。たとえば、VNCを使用すると、次のようになります。
vncserver :1
WindowsコンピュータでVNCビューアを使用してサーバーに接続することもできます。