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
1.5.6