Useful Wall Stuff

Debian stuff

Package management

Before doing anything, make sure you have an updated list of packages:
apt-get update
To install a new package, type
apt-get install

To upgrade the entire system, try
apt-get upgrade

The tool to work with a single downloaded package file (a .deb, like an rpm) is dpkg
dpkg -i will install that file

To use RPM's (not recommended, since they usually don't conform to debian's standards regarding /etc, init scripts, etc.), try
rpm -Uvh OR
dpkg -i recommended

To search for a package, try
apt-cache search

There's also a menu based front-end towards dpkg called dselect, but apt-get will do it all and more. There are GUI frontends to apt (like Mandrake's package manager), do an apt-cache search for apt to find some.

File Locations

Debian usually puts config files in /etc/packagename/filename
Init scripts are /etc/init.d/, which symlinks from /etc/rcX.d
There is a nifty scripts called update-rc.d which will create/delete startup links in rcX.d, try it with a --help
The default runlevel is 2 (but still graphical, if KDM/XDM/GDM is installed)
Anything in /usr/ is liable to overwritten by a package, ideally, local compiled stuff should go in /usr/local OR (better) /local.
Kernel headers are in /usr/src/linux (where they belong).

Wall Software

Anything used by both the clients and the servers is in /s/gordo/paredsoft. Packages are installed to /s/gordo/paredsoft/local/packagename, with the libs symlinked to /s/gordo/paredsoft/lib, and the binaries to /s/gordo/paredsoft/bin. The user wall already has that in $PATH and $LD_LIBRARY_PATH.

Proxima Control Software

Look in /s/gordo/projector/projector.tcl

The user needs to have a .projectorrc file in $HOME, you can copy (or symlink to) the one in /s/gordo/projector/.projectorrc

Be advised that if you run it via:
ssh gordo /s/gordo/projector/projector.tcl (which is what the button does), then the .projectorrc file needs to be in $HOME on gordo. If you're a cluster user, that's fine, gordo automounts /u, but if it's the users wall, make sure to edit that file, not the one in $HOME/.projectorrc on rey.


Clients (viewers)

Make sure vncd is running (starts automatically on boot). That way, tileviewer will be started automatically with a call from vncwall.


Start a vncserver.
vncserver -geometry 4096x2304
(To kill it, try vncserver -kill <display>)

Then run the java program vncwall (needs Java SDK 1.3.1, which we have)

There are two premade conf files in /local/wall, named vncwall-1.conf, and vncwall-2.conf. They contain the config for a server on either :1, or :2. You can load them, enter the proper password (not writing that on a web page ;) ), and tileviewer should start automatically. If it doesn't, just go to the wall tab, and click on the screens that failed.

To shut down the viewer, try (from the commandline)
vncwall -k <conf file> OR
killtile <machine name>


Servers (pareds)

Make sure pipeserver is running (with the -f for fullscreen, and -p 7100 to listen on port 7100). The startpipeserver script is execute when XDM starts up, so that should be ok. If there are two copies running, that oculd be bad... try a killall startpipeserver, killall pipeserver, /etc/init.d/xdm stop; /etc/init.d/xdm start to refresh everything.

Client (rey)

wgl <program>
The config files are stored in /s/gordo/paredsoft/local/wiregl-1.2.1 (like all wall stuff)


Servers (pareds)

crserver should NOT be running on the machines. The mothership (aka config machine), rey, will start crserver automatically (using ssh 'DISPLAY=:0 crserver' pared1, etc).

Client (rey)

Change to the /mnt/gordo-m/paredsoft/local/cr/mothership/configs directory (aka /s/gordo/paredsoft/...). Run python wall.conf If you need to pass it options you can either create a script, or update wall.conf to handle sys.argv[2] and so on and so forth. Once that finishes outputting stuff (about 2 seconds or so), run crappfaker in another window. Done.

Movie Player

I have a version of NCSA's pixel blaster installed. This works by simulating a movie using an opengl image viewer. Put the movie source-- aka, a jpg sequence in /local/wall/share/mpegs/<directory name>. The pipeservers are set to put textures in /usr/local/frames/<directory name>/, but, to improve performance, we usually have that as a ramdisk. To mount the ramdisk (should be automatic, btw), do the following on each machine as root (use gsh):

insmod rd rd_size=375000
mke2fs /dev/ram0
mount -t ext2 /dev/ram0 /usr/local/frames/ramdisk

If it's already mounted, just clear it. The next thing is to change to /local/wall/share/mpegs, and do an

ln -s -f <directory> ramdisk

Then, run wgl npb -W -A ramdisk/<formatstring> <startframe> <endframe> to cache the files. Playback is

wgl npb -D -A -l ramdisk/<formatstring> <startframe> <endframe> -r <framerate>

The formatstring is a C-style descriptor to be able to reference the sequence. E.g., if the files are file0001.jpg, file0002.jpg, etc., you'd use file%04d.jpg .

Geometry Viewer

vtkViewer can be used on the wall to display precomputed geometry, including VTK files, VRML (not .wrl), 3D Studio and more. There are some sample files in /local/wall/share/3dstudio to try. It allows to you to open multiple files on top of one another... be sure to go to File->Close before doing a new open.

Image Viewer

We use a customized version of gliv. Run wgl gliv <image> to see it on the wall. You may need to use the 'm' key to make sure it fits nicely. One major caveat: wiregl just stretches the window, so when going from rey's 4x3 display to the walls 16x9 ratio, images get stretched. There are two solutions: 1-- resize the image viewer to a square (that way it stretches correctly), or edit the wiregl config file to only display a 4x3 image. Or buy a widescreen monitor for rey ;-)


Check out /local/mp3/ for some quality music.