VMGLの覚え書き(動作した方式のメモ)
「VMGLの覚え書き(失敗した方式のメモ)」に続き、今度は正常に動作した方式のメモとなる。
最も使えそうなのはSSHのXフォワーディング
SSHのXフォワーディング*1を使用したところ、良好に動作し、表示がおかしくなることもなかった。フルスクリーンのアプリケーションも動作している。- ホストOS上でstub-daemonを起動
- ホストOSからゲストOSへ「ssh -Y」でログイン
- [ホームディレクトリ]/.stub-daemon.logの「Set GLSTUB var in guest to point to port [ポート番号]」の番号部分を見て、ゲストOSの環境変数GLSTUBを「[ホストOSのIPアドレス]:[ポート番号]」に設定
- SSHの端末からコマンド名でOpenGLアプリケーションを起動
下はglxinfoの出力。
guestSSH$ glxinfo name of display: localhost:10.0 CR Info(localhost:24213): Pack SPU: Couldn't init X server CR support extension!! display: localhost:10 screen: 0 direct rendering: Yes server glx vendor string: VMGL server glx version string: 1.2 VMGL server glx extensions: client glx vendor string: VMGL client glx version string: 1.2 VMGL client glx extensions: GLX version: 1.3 GLX extensions: GLX_ARB_multisample OpenGL vendor string: H. Andres Lagar-Cavilla OpenGL renderer string: VMGL OpenGL version string: 1.4 VMGL 1.9 OpenGL extensions: GL_ARB_depth_texture, GL_ARB_fragment_program, GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, GL_ARB_texture_cube_map, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_EXT_texture_env_combine, GL_ARB_texture_env_dot3, GL_EXT_texture_env_dot3, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two, GL_ARB_transpose_matrix, GL_ARB_vertex_program, GL_ARB_window_pos, GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_func_separate, GL_EXT_blend_subtract, GL_EXT_texture_env_add, GL_EXT_fog_coord, GL_EXT_multi_draw_arrays, GL_EXT_secondary_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, GL_EXT_texture_edge_clamp, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_texture3D, GL_EXT_bgra, GL_IBM_rasterpos_clip, GL_NV_fog_distance, GL_NV_texgen_reflection, GL_NV_texture_rectangle, GL_EXT_texture_rectangle, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, GL_CR_state_parameter, GL_CR_cursor_position, GL_CR_bounding_box, GL_CR_print_string, GL_CR_tilesort_info, GL_CR_synchronization, GL_CR_head_spu_name, GL_CR_performance_info, GL_CR_window_size, GL_CR_tile_info, GL_CR_saveframe, GL_CR_readback_barrier_size, GL_CR_server_id_sharing, GL_CR_server_matrix visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat ---------------------------------------------------------------------- 0x21 24 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 None 0x22 24 dc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 None 0x24 24 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 None 0x25 24 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 None 0x26 24 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 None 0x27 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None 0x28 24 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 None 0x29 24 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 None 0x2a 24 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 None 0x2b 24 tc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 0 0 None 0x2c 24 tc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 0 0 None 0x2d 24 tc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 0 0 None 0x2e 24 tc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 0 0 None 0x2f 24 tc 0 32 0 r y . 8 8 8 0 4 0 0 16 16 16 16 0 0 None 0x30 24 tc 0 32 0 r y . 8 8 8 8 4 0 0 16 16 16 16 0 0 None 0x31 24 tc 0 32 0 r . . 8 8 8 0 4 0 0 16 16 16 16 0 0 None 0x32 24 tc 0 32 0 r . . 8 8 8 8 4 0 0 16 16 16 16 0 0 None 0x33 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 2 1 None 0x34 24 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 2 1 None 0x35 24 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 4 1 None 0x36 24 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 4 1 None 0x37 24 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 2 1 None 0x38 24 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 2 1 None 0x39 24 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 4 1 None 0x3a 24 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 4 1 None 0x3b 24 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 2 1 None 0x3c 24 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 2 1 None 0x3d 24 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 4 1 None 0x3e 24 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 4 1 None 0x3f 24 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 2 1 None 0x40 24 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 2 1 None 0x41 24 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 4 1 None 0x42 24 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 4 1 None 0x43 24 tc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 2 1 None 0x44 24 tc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 2 1 None 0x45 24 tc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 4 1 None 0x46 24 tc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 4 1 None 0x47 24 tc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 2 1 None 0x48 24 tc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 2 1 None 0x49 24 tc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 4 1 None 0x4a 24 tc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 4 1 None 0x4b 24 dc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 None 0x4c 24 dc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 None 0x4d 24 dc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 None 0x4e 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None 0x4f 24 dc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 None 0x50 24 dc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 None 0x51 24 dc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 None 0x52 24 dc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 0 0 None 0x53 24 dc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 0 0 None 0x54 24 dc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 0 0 None 0x55 24 dc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 0 0 None 0x56 24 dc 0 32 0 r y . 8 8 8 0 4 0 0 16 16 16 16 0 0 None 0x57 24 dc 0 32 0 r y . 8 8 8 8 4 0 0 16 16 16 16 0 0 None 0x58 24 dc 0 32 0 r . . 8 8 8 0 4 0 0 16 16 16 16 0 0 None 0x59 24 dc 0 32 0 r . . 8 8 8 8 4 0 0 16 16 16 16 0 0 None 0x5a 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 2 1 None 0x5b 24 dc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 2 1 None 0x5c 24 dc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 4 1 None 0x5d 24 dc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 4 1 None 0x5e 24 dc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 2 1 None 0x5f 24 dc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 2 1 None 0x60 24 dc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 4 1 None 0x61 24 dc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 4 1 None 0x62 24 dc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 2 1 None 0x63 24 dc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 2 1 None 0x64 24 dc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 4 1 None 0x65 24 dc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 4 1 None 0x66 24 dc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 2 1 None 0x67 24 dc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 2 1 None 0x68 24 dc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 4 1 None 0x69 24 dc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 4 1 None 0x6a 24 dc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 2 1 None 0x6b 24 dc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 2 1 None 0x6c 24 dc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 4 1 None 0x6d 24 dc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 4 1 None 0x6e 24 dc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 2 1 None 0x6f 24 dc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 2 1 None 0x70 24 dc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 4 1 None 0x71 24 dc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 4 1 None 0x23 32 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 0 0 None 0x72 32 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 0 0 None 0x73 32 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 0 0 None 0x74 32 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 0 0 None 0x75 32 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 0 0 None 0x76 32 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 0 0 None 0x77 32 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 0 0 None 0x78 32 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 0 0 None 0x79 32 tc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 0 0 None 0x7a 32 tc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 0 0 None 0x7b 32 tc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 0 0 None 0x7c 32 tc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 0 0 None 0x7d 32 tc 0 32 0 r y . 8 8 8 0 4 0 0 16 16 16 16 0 0 None 0x7e 32 tc 0 32 0 r y . 8 8 8 8 4 0 0 16 16 16 16 0 0 None 0x7f 32 tc 0 32 0 r . . 8 8 8 0 4 0 0 16 16 16 16 0 0 None 0x80 32 tc 0 32 0 r . . 8 8 8 8 4 0 0 16 16 16 16 0 0 None 0x81 32 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 2 1 None 0x82 32 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 2 1 None 0x83 32 tc 0 32 0 r y . 8 8 8 0 4 24 0 16 16 16 16 4 1 None 0x84 32 tc 0 32 0 r y . 8 8 8 8 4 24 0 16 16 16 16 4 1 None 0x85 32 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 2 1 None 0x86 32 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 2 1 None 0x87 32 tc 0 32 0 r . . 8 8 8 0 4 24 0 16 16 16 16 4 1 None 0x88 32 tc 0 32 0 r . . 8 8 8 8 4 24 0 16 16 16 16 4 1 None 0x89 32 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 2 1 None 0x8a 32 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 2 1 None 0x8b 32 tc 0 32 0 r y . 8 8 8 0 4 24 8 16 16 16 16 4 1 None 0x8c 32 tc 0 32 0 r y . 8 8 8 8 4 24 8 16 16 16 16 4 1 None 0x8d 32 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 2 1 None 0x8e 32 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 2 1 None 0x8f 32 tc 0 32 0 r . . 8 8 8 0 4 24 8 16 16 16 16 4 1 None 0x90 32 tc 0 32 0 r . . 8 8 8 8 4 24 8 16 16 16 16 4 1 None 0x91 32 tc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 2 1 None 0x92 32 tc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 2 1 None 0x93 32 tc 0 32 0 r y . 8 8 8 0 4 16 0 16 16 16 16 4 1 None 0x94 32 tc 0 32 0 r y . 8 8 8 8 4 16 0 16 16 16 16 4 1 None 0x95 32 tc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 2 1 None 0x96 32 tc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 2 1 None 0x97 32 tc 0 32 0 r . . 8 8 8 0 4 16 0 16 16 16 16 4 1 None 0x98 32 tc 0 32 0 r . . 8 8 8 8 4 16 0 16 16 16 16 4 1 None
「Couldn't init X server CR support extension!!」は、Xを飛ばす使い方では関係ない(無視できる・vmglext自体不要)と思われる。
xauthで認証してゲストOS上のウィンドウをホストOSへ飛ばす方法
これはSSHで飛ばすのに近く、ホストOS上にウィンドウが出る形。多少セキュリティのレベルを下げるため、あまりおすすめはできない。まず、ホストOSのXサーバがTCP接続を許可する(Xサーバの-nolisten tcpオプションを外す)ように設定する必要がある。ログインにGDMが使用されている場合、F10を押してから設定を選択し、管理者として認証後「セキュリティ」タブの「Xサーバへの転送を禁止する」のチェックを外す。
その後一般ユーザでログインしたらホストOS上でstub-daemonを手動で開始して、[ホームディレクトリ]/.stub-daemon.logの最後に書かれたポート番号を控えてからゲストOSのシェルで環境変数GLSTUBを設定する。
次に、ホストOS上のマジッククッキーを控えておく。下の場合は「12323434545656767878989a9ababcbc」となる。
host$ xauth list localhost/unix:0 MIT-MAGIC-COOKIE-1 12323434545656767878989a9ababcbc localhost.localdomain/unix:0 MIT-MAGIC-COOKIE-1 12323434545656767878989a9ababcbc localhost:0 MIT-MAGIC-COOKIE-1 12323434545656767878989a9ababcbc localhost:0 MIT-MAGIC-COOKIE-1 12323434545656767878989a9ababcbc localhost:0 MIT-MAGIC-COOKIE-1 12323434545656767878989a9ababcbc
これを使用して、ゲストOS上のX11の出力をホストOSのXサーバへ渡すための設定を行う。
guest$ export DISPLAY=[ホストのIPアドレス]:0 guest$ xauth add ${DISPLAY} . 12323434545656767878989a9ababcbc
この後OpenGLを使用するアプリケーションを起動すると、ホストOS上にウィンドウが表示される。
使用したバージョン:
- VMGL 0.1
- GDM 2.20.8
*1:SSHで遠隔ログインしたマシンのX Window Systemアプリケーションのウィンドウ出力を安全に手元のXサーバ上に表示することができ、そのための機能がXフォワーディングと呼ばれる