next up previous contents
Next: Program Start Up: Gxsm and Xxsm User/Referenz Previous: Introduction   Contents

Subsections


Gxsm Project Installation

System requirements

Gxsm need a machine running Linux. At least you will need a Pentium Class CPU P133 (a K6-200 or better will be fine too) with a minimum of 64MB ram. Gxsm is now proofed to run on a PowerPC/G4, using Debian/PPC-unstable, but I don't know about using PCI hardware, because I've a laptop used for data analysis only.

To compile and run Gxsm the Gnome/Gtk+ Libs and some additional libs are required. To be precise here is a list of actually required libs of my version running on Debian Linux 2.2 + Gnome-Helixcode update from, simply add to you Debian's /etc/apt/sources.list a line like ``deb http://spidermonkey.helixcode.com /distributions/debian unstable main`` and run a update. All needed libs are available as Debian Packets, but Gxsm was build on a Suse 7.0 System + Gnome Helixcode Update as well and should be working an any recent linux system!

A call to ``ldd gxsm'' shows the following depends of gxsm:

pzahl@charon:~$ ldd Gxsm/src/gxsm
        libm.so.6 => /lib/libm.so.6 (0x6ff68000)
        libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x6ff17000)
        libdl.so.2 => /lib/libdl.so.2 (0x6fef4000)
        libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0x6fed1000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x6fea8000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x6fe77000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x6fd55000)
        libz.so.1 => /usr/lib/libz.so.1 (0x6fd25000)
        libfftw.so.2 => /usr/lib/libfftw.so.2 (0x6fcdb000)
        librfftw.so.2 => /usr/lib/librfftw.so.2 (0x6fc98000)
        libnetcdf_c++.so.3 => /usr/lib/libnetcdf_c++.so.3 (0x6fc4f000)
        libnetcdf.so.3 => /usr/lib/libnetcdf.so.3 (0x6fc02000)
        libgdk_pixbuf.so.2 => /usr/lib/libgdk_pixbuf.so.2 (0x6fbc8000)
        libgnomecanvaspixbuf.so.1 => /usr/lib/libgnomecanvaspixbuf.so.1 (0x6fba4000)
        libgnomeui.so.32 => /usr/lib/libgnomeui.so.32 (0x6fa7c000)
        libart_lgpl.so.2 => /usr/lib/libart_lgpl.so.2 (0x6fa4d000)
        libgdk_imlib.so.1 => /usr/lib/libgdk_imlib.so.1 (0x6fa05000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x6f9db000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x6f9a3000)
        libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0x6f7e1000)
        libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0x6f77f000)
        libgnome.so.32 => /usr/lib/libgnome.so.32 (0x6f743000)
        libgnomesupport.so.0 => /usr/lib/libgnomesupport.so.0 (0x6f71e000)
        libesd.so.0 => /usr/lib/libesd.so.0 (0x6f6f7000)
        libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x6f6b3000)
        libdb3.so.3 => /usr/lib/libdb3.so.3 (0x6f5b9000)
        libgtkgl.so.5 => /usr/lib/libgtkgl.so.5 (0x6f58b000)
        libGL.so.1 => /usr/lib/libGL.so.1 (0x6f40b000)
        libglut.so.3 => /usr/lib/libglut.so.3 (0x6f3a6000)
        libGLU.so.1 => /usr/lib/libGLU.so.1 (0x6f371000)
        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x6f339000)
        libgtkdatabox-0.1.13.so.0 => /usr/lib/libgtkdatabox-0.1.13.so.0 (0x6f30f000)
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x6f298000)
        libc.so.6 => /lib/libc.so.6 (0x6f144000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x6f10d000)
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x6f088000)
        /lib/ld.so.1 => /lib/ld.so.1 (0x30000000)

2.2.x kernel

The included kernel modules are testet with linux kernel 2.2.14-18, support of older (2.0.X kernel) was removed. To compile the modules you will need to have the kernel properly installed in ``/usr/src/linux'' and you should have the symlinks to the actual kernelcode from

``/usr/include/linux $->$ /usr/src/linux/include/linux''

and

``/usr/include/asm $->$ /usr/src/linux/include/asm''.

The running kernel should be consistent with your kernel source!

2.4.x kernel and DevFs

The linux 2.4.x kernel generation is now supported. The updated modules are now located in ``Gxsm/plug-ins/hard/modules'', while the 2.2.x version modules are frozen and untouched residing in ``Gxsm/pci32/modules''. The 2.4.x modules are designed to work with DevFs (Device File System), so I strongly recommend to have a 2.4.x kernel supporting DevFs!

Getting Gxsm via CVS

Go the the Gxsm Project's home page at

http://sourceforge.net/projects/gxsm

Follow the link at the bottom ``CVS Repository'' and have a look at the instructions there:

Anonymous CVS Access

This project's SourceForge CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. The module you wish to check out must be specified as the modulename. When prompted for a password for anonymous, simply press the Enter key.

cvs -d:pserver:anonymous@cvs.gxsm.sourceforge.net:/cvsroot/gxsm login

cvs -z3 -d:pserver:anonymous@cvs.gxsm.sourceforge.net:/cvsroot/gxsm co Gxsm

This will checkout (co) the most recent Gxsm source code tree in a directory tree starting with ``Gxsm''.

Making all of Gxsm

Configuration

Change into the Gxsm directory and type (if you have the ``stow'' utility installed and like to sort your local soft enter the optional prefix like below in brackets):

./autogen [-prefix=/usr/local/stow/gxsm]

Compilation

Type make in the Gxsm dir:

make

Installation

Switch to root and run ``make install'':

make install (do this with root privilegs)

(if you are using stow, then call stow in /usr/local/stow: ``stow gxsm''.)

If there are any errors, in most cases there are missing development packages, have a look at the fisrt occuring error and finger out what's missing.

Kernel Modules

Compiling 2.2.x kernel version modules

If you are using a 2.4.x kernel, go to next section!

Change to Gxsm/pci32/modules:

./configure

make

The modules pc31.o and pci32.o should be there now.

Compiling 2.4.x kernel version modules

You will need a kernel and you system with DevFs support!

Change dir to ``Gxsm/plug-ins/hard/modules'':

./configure

make

There is no need to make devices anymore! But remember: The devices are automatically generated: ``/dev/pcdsps/tms320''

some helping scripts

All file paths in the here provided scrips are handhacked, so please adjust to you needs!

It's handy to install a small ``rc.boot script'' like:

percy@nano:~$ cat /etc/rc.boot/pci32 

#!/bin/sh
echo Loading PCI32 module...
insmod pci32
echo Done.
echo Loading an starting SPM DSP program...
# replace the paths and xafm.out file locations by your needs
/usr/local/bin/loadpci -d /dev/pcdsps/tms320 \
    /usr/local/stow/gxsm/share/gxsm/pci32/tms320-htstm.out
echo Done.

And for (emergency) DSP restart a small script like may be handy:

percy@nano:~$ cat /usr/local/stow/gxsm/share/script/dsp-reset.sh

#!/bin/sh
sync
echo ---------------------------------------------------------------------
echo DSP emergency restart, be prepared!
echo ---------------------------------------------------------------------
echo Killing all possibly DSP using apps next.
echo Ready to go? I will kill all DSP Apps: goszi, gxsm and lcd!!!
echo ""
echo hit return to go
read
echo ---------------------------------------------------------------------
sync
echo killing goszi
killall -9 goszi
echo killing gxsm
killall -9 gxsm
echo killing lcd
killall -9 lcd
echo waiting 2s....
sleep 2
echo Done.
echo ---------------------------------------------------------------------
echo Syncing Disks for emergency
sync
echo ---------------------------------------------------------------------
echo "Resetting DSP, Loading an (re)starting SPM DSP program..."
echo ---------------------------------------------------------------------
sync
# adjust paths and .out file name to you needs!
loadpci -d /dev/pcdsps/tms320 /usr/local/stow/gxsm/share/gxsm/pci32/tms320-htstm
.out
echo Done.
echo ---------------------------------------------------------------------
echo Have fun...
echo ""
echo hit return
read

Installing

The reqired module can now be loaded using insmod.

The to access the driver a char device ``/dev/pcdsp'' is needed (only 2.2.x kernel):

mknod /dev/pcdsp c 254 0 -m 666 (as root)

will create this.

Check if everythin is right: Have a look at ``/var/log/mesages'' while doing insmod / rmmod:

tail -f /var/log/messages (as root)

The Major-Number reportet at insmod should be consistent with the device major 254!

DSP: PC31, PCI32 Card and Tools

The DSP Card needs to be feed with the DSP program, therefore we need some tools:

Change to ``Gxsm/pci32/load''

do there a

xmkmf

make

BurrBrown Card (SPALEED)

BurrBrown Module

Erstellung der Kernel Module:

In Gxsm/plug-ins/hard/modules/ ein make ausführen. (dazu ist eine Installierter Kernel 2.4.x/DevFs + Source/Header notwendig)

Dann sind zu finden:

Gxsm/plug-ins/hard/modules/:

Makefile


dspemu.c 		$\rightarrow$ Basis DSP Emulation

spaleed_emu.c $\rightarrow$ SPA-LEED Simulations Modul

spaleed_bb.c $\rightarrow$ SPA-LEED BurrBrown Modul
(Base Adr: 0xd0000 ist vorgegeben, Editor!!)
dspbbspa.o $\rightarrow$ mit insmod ladbares Modul für BB
dspspaemu.o $\rightarrow$ Simulationsmodul

Gxsm Configuration for SPA-LEED

Gxsm Settings to run SPA-LEED (Preference Folder):


Hardware/Card: 		 ``spa''

DataAq/PIDSrcA1: ``Counts'' , alles anderen Kanäle auf ``-''
Instrument/Type: ``SPALEED''
Instrument/Name: ``Name der Maschine''
Instrument/XCalib, YCalib
Instrument/EnergyCalibVeV, Sensitivity ggf anpassen.
User/Unit: ``V''


next up previous contents
Next: Program Start Up: Gxsm and Xxsm User/Referenz Previous: Introduction   Contents
Percy Zahl 2002-05-08