Xmanager와 VirtualGL을 이용한 OpenGL 응용프로그램 사용 - Solaris 10, 11

VirtualGL이란

VirtualGL은 로컬의 하드웨어 자원을 이용하여 3D 명령을 처리한 후 결과를 VirtualGL 서버가 원격에서 구동 중인 VirtualGL client에게 전송하도록 하는 프로그램입니다.


X서버가 3D 기능을 지원하지 않거나 가속 기능이 없을 경우 로컬의 자원을 이용하는 VirtualGL 기능을 활용할 수 있습니다.


Solaris 시스템에 하는 설치 및 설정

  1. 설치
    • 파일 :
      Sparc 머신 : https://sourceforge.net/projects/virtualgl/files/2.1.2/SUNWvgl-2.1.2-sparc.pkg.bz2/download

      X86 머신 : https://sourceforge.net/projects/virtualgl/files/2.3/VirtualGL-2.3-solarisx64.pkg.bz2/download

    • 위 파일을 다운로드 받은 후 ftp 등을 이용하여 솔라리스 서버에 옮겨 놓습니다.
      플랫폼이 x86이거나 다른 버전을 설치하고자 할 경우 다음 경로에서 필요한 파일을 다운로드 받을 수 있습니다.
      https://sourceforge.net/projects/virtualgl/files/

    • 패키지 설치(아래  파일명은 시스템에 맞게 다운로드 받은 파일명을 입력합니다.)

      # bzip2 -d SUNWvgl-2.1.2-sparc.pkg.bz2
      # pkgadd -d SUNWvgl-2.1.2-sparc.pkg
      The following packages are available:
      1  VirtualGL     VirtualGL server, client, and diagnostic utilities
      (i386) 2.2,REV=20101019
      Select package(s) you wish to process (or 'all' to process
      all packages). (default: all) [?,??,q]:
      Processing package instance <VirtualGL> from </root/SUNWvgl-2.1.2-sparc.pkg>
      VirtualGL server, client, and diagnostic utilities(i386) 2.2,REV=20101019
      This appears to be an attempt to install the same architecture and
      version of a package which is already installed.  This installation
      will attempt to overwrite this package.
      Use is subject to the terms of the wxWindows Library License, version 3.1
      Using </opt> as the package base directory.
      ## Processing package information.
      ## Processing system information.
      49 package pathnames are already properly installed.
      ## Verifying package dependencies.
      ## Verifying disk space requirements.
      ## Checking for conflicts with packages already installed.
      ## Checking for setuid/setgid programs.
      Installing VirtualGL server, client, and diagnostic utilities as <VirtualGL>
      ## Installing part 1 of 1.
      [ verifying class <none> ]
      Installation of <VirtualGL> was successful.


    • 설치 확인(버전이나 시스템마다 차이가 있을 수 있습니다)

    • #ls -l
      ls -l /opt/VirtualGL/
      total 10
      drwxr-xr-x   2 root     bin          512 May 18 03:26 bin
      drwxr-xr-x   2 root     bin         1024 May 18 03:26 doc
      drwxr-xr-x   2 root     bin          512 May 18 03:26 fakelib
      
      drwxr-xr-x   2 root     bin          512 May 18 03:26 lib
  2. Solaris 설정
    • 호스트 제어에 로컬 접속 추가

      # /opt/VirtualGL/bin/vglserver_config
      
      1) Configure server for use with VirtualGL in GLX mode
      2) Unconfigure server for use with VirtualGL in GLX mode
      X) Exit
      
      Choose: 1
      
      Restrict 3D X server access to vglusers group (recommended)?
      [Y/n]
      n
      
      Restrict framebuffer device access to vglusers group (recommended)?
      [Y/n]
      n
      
      Disable XTEST extension (recommended)?
      [Y/n]
      n
      ... Modifying /etc/logindevperm to disable automatic permissions for
          /dev/fbs/* ...
      ... Granting write permission to /dev/fbs/* for all users ...
      ... Adding xhost +LOCAL: to /etc/X11/gdm/Init/Default script ...
      ... /etc/dt/config/Xconfig has been saved as /etc/dt/config/Xconfig.orig.vgl ...
      ... Setting Dtlogin*grabServer to False in /etc/dt/config/Xconfig ...
      ... Enabling XTEST extension in /etc/X11/gdm/gdm.conf ...
      ... Commenting out DisallowTCP line (if it exists) in /etc/X11/gdm/gdm.conf ...
      
      Done. You must restart the display manager for the changes to take effect.
      
      
      1) Configure server for use with VirtualGL in GLX mode
      2) Unconfigure server for use with VirtualGL in GLX mode
      X) Exit
      
      Choose:
      x
    • 로컬 서버 접근을 위한 설정 및 Display Manager 재시작

      Solaris 10의 경우

      # svcadm restart cde-login ### dtlogin을 사용하는 Solaris 10의 경우

      Solaris 11의 경우

      # svccfg -s svc:/application/x11/x11-server setprop options/tcp_listen = true ### 로컬 X 서버 접근을 위한 설정.
      # svcadm restart gdm ### gdm을 사용하는 Solaris 11의 경우

Xmanager에서 VirtualGL을 이용하여 OpenGL 응용프로그램을 사용하는 방법

  • OpenGL 응용프로그램 구동 명령문 앞에 'vglrun -c proxy'을 추가합니다.
    ex)

    $ /opt/VirtualGL/bin/vglrun -c proxy glxgears