Covise-installation

From Immersive Visualization Lab Wiki
Revision as of 00:05, 22 July 2009 by Jschulze (Talk | contribs)

Jump to: navigation, search

Contents

COVISE Installation Tips

These tips apply only to collaborators of IVL who intend to use the educational license of COVISE for non-profit purposes. Also, only the Linux version of COVISE is covered. There is a Windows version but when you decide to use it we can't give any support due to a lack of experience with it.

Installation of base system

  • Create an account for the COVISE installation, e.g., "covise".
  • In /etc/passwd set the default shell for this account to /bin/tcsh.
  • Download COVISE for your Linux distribution from the HLRS download page.
  • Follow the installation instructions on that web site.
  • Once installed, run "opencover" to see if it was successful. You should see a black window with the COVER menu.
  • If opencover won't run but complain about missing libraries, add the respective paths to the LD_LIBRARY_PATH. Example:
setenv LD_LIBRARY_PATH /home/covise/covise/extern_libs/rhel5/OpenSceneGraph/lib64:/home/covise/covise/extern_libs/rhel5/x
erces/lib:/home/covise/covise/extern_libs/rhel5/qt4/lib:/home/covise/covise/extern_libs/rhel5/libwww/lib

Adding support to compile plugins

At this point you can only use COVISE's built-in plugins. In the following steps we're going to add the ability to compile custom plug-ins.

  • Copy your plugin source code to the machine COVISE is installed on.
  • Make sure the environment variable QT_HOME points to your Qt installation, with qmake under the bin directory. Example:
    setenv QT_HOME /home/covise/covise/extern_libs/qt4
  • Make sure the QMAKESPEC environment variable (defined in .cshrc) points to the correct qmake.conf file:
    setenv QMAKESPEC /home/covise/covise/mkspecs/rhel5
  • The COFRAMEWORKDIR variable needs to point to the .pri files (like config-first.pri):
    setenv COFRAMEWORKDIR /home/covise/covise
  • Problem: make errors out with "No generator specified in config file". Solution: add the following line to your qmake make file (.pro file):
    MAKEFILE_GENERATOR = UNIX
  • Problem: qmake won't create Makefile.$ARCHSUFFIX. Solution: add to .cshrc:
    setenv COINTREE 1

Display and plugin configuration

At this point when you run opencover it comes up in a fixed size window on the node you run it on. In order to change the screen configuration and enable your plugins we are going to edit COVISE's configuration file. The configuration file is located at ~covise/covise/config.

  • Come up with a name for the configuration file. For instance, if your machine or tiled display wall has a name then use that. Let's assume the name is starcave.
  • Add a line to the .cshrc file in covise's home directory:
    setenv $COCONFIG starcave.xml
    .
  • Copy the default configuration file config.xml to starcave.xml
    cp config.xml starcave.xml
    .
  • To enable a custom plugin like MyPlugin add a line to the <Plugins> section:
    <MyPlugin value="on" />

Troubleshooting

Symptom: When running opencover, the following error message is displayed: COVISE_HOST not set, using gethostname():

ASSERT failure in QList<T>::at: "index out of range", file /mnt/raid/data/extern_libs/maunaloa/Qt-4.4.0/include/QtCore/qlist.h, line 371

Resolution: add setenv COVISE_HOST 127.0.0.1 to .cshrc <p>

Sample Display Configuration File

<?xml version="1.0"?>

<COCONFIG version="1" >

  <GLOBAL>
    <COVER>
      <PipeConfig>
        <Pipe display=":0.0" name="0" screen="0" pipe="0" />
      </PipeConfig>

      <WindowConfig>
        <Window width="3840" comment="MAIN" window="0" pipeIndex="0" height="1200" left="0" bottom="0" name="0" decoration="false" />
      </WindowConfig>
 
      <ChannelConfig>
       <Channel windowIndex="0" stereoMode="LEFT" channel="0" left="0"    width="1920" bottom="0" height="1200" comment="C_A" name="0" />
       <Channel windowIndex="0" stereoMode="LEFT" channel="1" left="1920" width="1920" bottom="0" height="1200" comment="C_B" name="1" />
      </ChannelConfig>

      <CollisionDist value="1500" />
 
    </COVER>

    <System>
      <CRB>
        <ModuleAlias name="Renderer/Renderer" value="Renderer/IvRenderer" arch="x11"/>
        <ModuleAlias name="Renderer/Renderer" value="Renderer/QtRenderer" arch="windows"/>
        <ModuleAlias name="Renderer/Renderer" value="Renderer/QtRenderer" arch="mac"/>
        <ModuleAlias value="Renderer/OpenCOVER" name="Renderer/VRRenderer" />
      </CRB>
    </System>


    <System> 
      <IpTable>
        <coutsound symbolic="starcave" value="137.110.118.206" />
      </IpTable>

      <HostConfig>
        <Host timeout="60" memory="shm" method="ssh" name="coutsound" hostname="coutsound" />
      </HostConfig>
    </System>  

    <CUI>
      <ResourcesDirectory value="/home/covise/trunk/covise/src/renderer/OpenCOVER/osgcaveui/resources" />
    </CUI>

   <COVER>

     <WelcomeMessage value="Welcome to OpenCOVER at NICT" />
     <MultiThreaded value="false" />
     <SyncToVBlank value="ON" device="DFP-1" />
     <SyncToVBlank value="ON" device="DFP-0" />
     <LODScale value="0.1" />

     <Plugin>
        <Vrml97 value="on" />
      </Plugin>

      <FrameAngle value="18.0" />
      <ScaleAll value="OFF" />

     <TabletPC>
      <Server value="localhost" />
     </TabletPC>

    </COVER>

   <COVER>

    <MultiPC>
      <SyncMode value="TCP" />
      <MasterInterface value="xk111" />
      <NumSlaves value="5" />
      <Startup arch="x11" value="ssh ${USER}@xk112 if \( \{ test -d `pwd` \} \) cd `pwd` \;opencover \>\& /tmp/errors.log" name="0" />
      <Startup arch="x11" value="ssh ${USER}@xk113 if \( \{ test -d `pwd` \} \) cd `pwd` \;opencover \>\& /tmp/errors.log" name="1" />
      <Startup arch="x11" value="ssh ${USER}@xk114 if \( \{ test -d `pwd` \} \) cd `pwd` \;opencover \>\& /tmp/errors.log" name="2" />
      <Startup arch="x11" value="ssh ${USER}@xk115 if \( \{ test -d `pwd` \} \) cd `pwd` \;opencover \>\& /tmp/errors.log" name="3" />
      <Startup arch="x11" value="ssh ${USER}@xk116 if \( \{ test -d `pwd` \} \) cd `pwd` \;opencover \>\& /tmp/errors.log" name="4" />
    </MultiPC>
 
    <Stereo enable="OFF" value="OFF" />
    <StereoMode value="LEFT" />

    <Input>
     <ButtonSystem value="MOUSE" />
     <MouseNav value="ON" />
     <TrackingSystem value="MOUSE" />
    </Input>
 
    <Menu>
      <Orientation h="0" p="0" r="0" />
      <Position x="0" y="0" z="0" />
      <Size value="0.8" />
    </Menu>

    <SceneSize value="4000" />
    <ViewerPosition x="0" y="-2000" z="0" />
    <CoordAxis value="off" />
    <Freeze value="on" />
    <ViewAll value="off" />
    <NumPipes value="1" />
    <NumScreens value="2" />
    <NumWindows value="1" />
 
    <Plugin>
      <Vrml97>
       <Audio value="none" >
       </Audio>
      </Vrml97>
    </Plugin>

    <DebugLevel value="1" />
    <FPS value="true" />

   </COVER>

  <Messages>
    <WindowSize value="10" />
  </Messages>

 </GLOBAL>

  <LOCAL host="optiporta.calit2.net" >
    <COVER>
     <ScreenConfig>
      <Screen width="280" h="0.0" height="175" p="0.0" originX="0" comment="S_A" originY="0" r="0.0" name="0" originZ="0" screen="0" />
      <Screen width="280" h="0.0" height="175" p="0.0" originX="0" comment="S_B" originY="0" r="0.0" name="1" originZ="0" screen="1" />
     </ScreenConfig>
    </COVER>
   </LOCAL>

<!-- displays: frame size: 560x365, pixels: 520x325mm -->


   <LOCAL host="xk111" >
    <COVER>
  <ScreenConfig>
  <Screen width="520" h="0.0" height="325" p="0.0" originX="-1100" comment="S_A" originY="0"  r="0.0" name="0" originZ="-360" screen="0" />
  <Screen width="520" h="0.0" height="325" p="0.0" originX="-570"  comment="S_B" originY="0"  r="0.0" name="1" originZ="-360" screen="1" />
  </ScreenConfig>
    </COVER>
   </LOCAL>

  <LOCAL host="xk112" >
  <COVER>
  <ScreenConfig>
  <Screen width="520" h="0.0" height="325" p="0.0" originX="-1100" comment="S_A" originY="0.0"  r="0.0" name="0" originZ="0" screen="0" />
  <Screen width="520" h="0.0" height="325" p="0.0" originX="-570"  comment="S_B" originY="0.0"  r="0.0" name="1" originZ="0" screen="1" />
  </ScreenConfig>
  </COVER>
  </LOCAL>

  <LOCAL host="xk113" >
  <COVER>
  <ScreenConfig>
  <Screen width="520" h="0.0" height="325" p="0.0" originX="-1100" comment="S_A" originY="0.0"  r="0.0" name="0" originZ="360" screen="0" />
  <Screen width="520" h="0.0" height="325" p="0.0" originX="-570"  comment="S_B" originY="0.0"  r="0.0" name="1" originZ="360" screen="1" />
  </ScreenConfig>
  </COVER>
  </LOCAL>

  <LOCAL host="xk114" >
  <COVER>
  <ScreenConfig>
      <Screen width="520" h="0.0" height="325" p="0.0" originX="0"   comment="S_A" originY="0.0"  r="0.0" name="0" originZ="-360" screen="0" />
      <Screen width="520" h="0.0" height="325" p="0.0" originX="540" comment="S_B" originY="0.0"  r="0.0" name="1" originZ="-360" screen="1" />
     </ScreenConfig>
    </COVER>
   </LOCAL>

   <LOCAL host="xk115" >
    <COVER>
     <ScreenConfig>
      <Screen width="520" h="0.0" height="325" p="0.0" originX="0"   comment="S_A" originY="0.0"  r="0.0" name="0" originZ="0.0" screen="0" />
      <Screen width="520" h="0.0" height="325" p="0.0" originX="540" comment="S_B" originY="0.0"  r="0.0" name="1" originZ="0.0" screen="1" />
     </ScreenConfig>
    </COVER>
   </LOCAL>

   <LOCAL host="xk116" >
    <COVER>
     <ScreenConfig>
      <Screen width="520" h="0.0" height="325" p="0.0" originX="0"   comment="S_A" originY="0.0"  r="0.0" name="0" originZ="0.0" screen="0" />
      <Screen width="520" h="0.0" height="325" p="0.0" originX="540" comment="S_B" originY="0.0"  r="0.0" name="1" originZ="0.0" screen="1" />
     </ScreenConfig>
    </COVER>
   </LOCAL>

</COCONFIG>