MUSIM Software Installation and Operation



The following list of third party software packages is necessary, but not necessarily sufficent to build the MUSIM.   Additional development and development library packages are also necessary, such as the gcc compiler that comes with the Linux distribution, freeglut , text editors etc.   Is also important to note that the following packages must be installed before attempting to compile/link the MUSIM source code.

The following list is not intended to be installed in any particular order, but it is recommeded that Open Scene Graph be installed last.

  • LINUX OS:
  • - We use Novell Open Suse .   Follow the instructions for your Linux distribution.   After it is installed, verify that the following packages are installed:

  • Open Scene Graph
  • - an open source run time visual API found at this tar ball, or the bleeding edge version at subversion .  Install it in /usr/local/src , on your machine. Follow the instructions for compilation and installation.


  • FLTK 2.0
  • - the fast light toolkit FLTK 2.0.  Install it at /usr/local/src.  Follow the instructions for compilation and installation.   For tips on how to use some of the less documented features of FLTK, try this URL .


  • libxml2
  • - development libraries (if SUSE, use YAST) else XML C parser.  Use the default installation instructions.


  • Image compression support
  • - Install libjpeg, libjpeg-devel, libtiff, libtiff-devel, libpng and libpng-devel.   You'll need these for jpeg, tiff and png support in OSG.   This is a YAST download for SUSE.  Your distro will differ.


  • FreeGlut
  • - you need FreeGlut for the FLTK, and OSG.   This is a YAST download for SUSE.  Your distro will differ.


  • Kernel Source
  • - you need the kernel source code to integrate the Nvidia driver.   This is a YAST download for SUSE.  Your distro will differ.


  • CMAKE
  • - a cross platform 'make' tool required to complile Open Scene Graph found at CMAKE.  Use the default installation instructions.


  • Nvidia GTX 285
  • We are using a wide variety of Nvidia graphics cards.   My personal development machine is using an Nvidia GTX 285.   A recent addition to Linux distros (many of them) was the Nouveau open source Nvidia driver program.   The MUSIM developers were disconcerted to find that adding Nouveau to the Suse 11.3 distro prevents the user/developer from installing the Nvidia driver.   There are several soultions on the web, many of which don't work with Suse 11.3.   What did work, was to disable Kernel Mode Support (KMS) in the boot ram disk as follows:

    > cd   /etc/sysconfig

    > vi    kernel

    Change the line

    NO_KMS_IN_INITRD="no"    - to -    NO_KMS_IN_INITRD="yes".

    Save the file and then make a new initial ram disk bootable image as follows:
    > /sbin/mkinitrd

    Then reboot.   Nouveau will no longer be running, as KMS is a pre-requisite for the Nouveau driver module.


  • SpaceExplorer
  • - The space Explorer integration can be simplified with a small modification to the udev 'rules' files.   The spaceEx process is a driver for a SpaceExplorer from 3DConnexion.   It gets inputs from a SpaceExplorer and then multicasts them to the rest of MUSIM using the network library.   Like so much of Linux, the design for attaching peripheral devices is changing over time. With the release of Suse 11.2 (kernel # 2.6.31) the technique for attaching the SpaceExplorer was modified slightly in reponse to changes made to the way devices are recognized by Linux.   Two techniques are described below.   Use the appropriate one based on your kernel #.

    SpaceEx defaults to using the device file /dev/input/spaceexplorer. You can verify that it exists with the following:


    > ls /dev/input

    you should see something like the following:

    total 0
    drwxr-xr-x 2 root root 100 2010-09-02 09:20 by-id
    drwxr-xr-x 2 root root 140 2010-09-02 09:20 by-path
    crw-rw-rw- 1 root root 13, 64 2010-09-02 09:18 event0
    crw-rw-rw- 1 root root 13, 65 2010-09-02 09:20 event1
    crw-rw-rw- 1 root root 13, 66 2010-09-02 09:18 event2
    crw-rw-rw- 1 root root 13, 67 2010-09-02 09:18 event3
    crw-rw-rw- 1 root root 13, 68 2010-09-02 09:18 event4
    crw-rw-rw- 1 root root 13, 69 2010-09-02 09:18 event5
    crw-rw-rw- 1 root root 13, 63 2010-09-02 09:18 mice
    crw-rw-rw- 1 root root 13, 32 2010-09-02 09:18 mouse0
    /dev/input>

    If it needs to be created, for kernels prior to 2.6.31:
    To create /dev/input/spaceexplorer at boot time, create a file named 50-spaceEx.rules and give it the pathname

    /etc/udev/rules.d/50-spaceEx.rules

    Put this line in the 50-spaceEx.rules file;

    KERNEL=="event*", SYSFS{manufacturer}=="3Dconnexion", SYMLINK="input/spaceexplorer", MODE="0666" OPTIONS+="last_rule"

    then attach/re-attach the SpaceExplorer. If you want to use a different device name you can override the device name on the command line in the MUSIM RUN file, like so:

    spaceEx /dev/yourDeviceName


    For kernels 2.6.31 and later, the location of the rules file has changed and the default behavior of the SpaceExplorer also changed for some distros, such that it is now interpreted as a mouse.   This becomes an issue when you try to manipulate the sensor (heading and/or pitch), and the mouse cursor is moving all over the desktop.   To avoid this situation, create /dev/input/spaceexplorer at boot time by creating and adding a line to your

    /lib/udev/rules.d/50-spaceEx.rules

    file. Add this line:

    KERNEL=="event*", SYSFS{manufacturer}=="3Dconnexion", SYMLINK="input/spaceexplorer", MODE="0666"

    and then attach/re-attach the SpaceExplorer.

    Re-booting and listing the contents of the /dev/input directory should now give you the following:

    total 0
    drwxr-xr-x 2 root root 100 2010-09-02 09:20 by-id
    drwxr-xr-x 2 root root 140 2010-09-02 09:20 by-path
    crw-rw-rw- 1 root root 13, 64 2010-09-02 09:18 event0
    crw-rw-rw- 1 root root 13, 65 2010-09-02 09:20 event1
    crw-rw-rw- 1 root root 13, 66 2010-09-02 09:18 event2
    crw-rw-rw- 1 root root 13, 67 2010-09-02 09:18 event3
    crw-rw-rw- 1 root root 13, 68 2010-09-02 09:18 event4
    crw-rw-rw- 1 root root 13, 69 2010-09-02 09:18 event5
    crw-rw-rw- 1 root root 13, 63 2010-09-02 09:18 mice
    crw-rw-rw- 1 root root 13, 32 2010-09-02 09:18 mouse0
    lrwxrwxrwx 1 root root 6 2010-09-02 09:20 spaceexplorer -> event1
    /dev/input>

    Note the existence of the 'spaceexplorer link.   Note also, the permissions of the devices.   The link 'spaceexplorer' is a pointer to device 'event1'.   Be certain that read/write permissions are enabled for the link 'spaceexplore' and the device 'event1', or whatever device 'spaceexplorer' points to.   The device permissions can be modified at boot time by changing the 'rules' file that describes the device in /lib/udev/rules.d/50-udev-default.rules.   The 'event' default is set to 'MODE="400"' in Suse 11.3.   Change this to 'MODE="666"'. The location of the rules file may be different for your Linux distribution.



  • MUSIM Source Code Installation and MUSIM Operations
  • Create a MUSIM installation directory.   We use /home/userName/projects/MUSIM.   Install your MUSIM source and

    > cd userName/projects/MUSIM > make

    If all goes as expected, you will compile and link MUSIM. If it doesn't go as expected, there is an error in your installation, probably related to the package installation described above.   Fix any issues and 'make' MUSIM until it compiles and links.

    To run MUSIM,

    > cd userName/projects/MUSIM/bin

    RUN 1 1 1

    You should see three or more MUSIM application windows appear on the desktop. If not, there is a problem with your installation, most likely related to package installation related above.   If you have got this far and the MUSIM app windows appear on your desktop, toggle the 'F' key on the Space Explorer to take MUSIM out of it's 'freeze' mode. You should see motion effects in the sensor and mapview windows.   If not, check the shell that you used to 'RUN' the MUSIM for any error messages.



    V1.0


    Modified on Thursday Nov 6, 2010 for MUSIM by twm and  doxygen 1.5.6