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)
``/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!
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!
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''.
./autogen [-prefix=/usr/local/stow/gxsm]
make
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.
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.
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''
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
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!
Change to ``Gxsm/pci32/load''
do there a
xmkmf
make
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.cBasis DSP Emulation
spaleed_emu.cSPA-LEED Simulations Modul
spaleed_bb.c
SPA-LEED BurrBrown Modul
(Base Adr: 0xd0000 ist vorgegeben, Editor!!)
dspbbspa.omit insmod ladbares Modul für BB
dspspaemu.oSimulationsmodul
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''