OpenSSI Logo SourceForge Logo

project
 home page
 sourceforge page
 mailing lists
 feature list
 demos
 screenshots
 Bruce's corner
 related links
 wiki
downloads
 notes
 1.2 stable
 1.9 development
 CVS
documentation
 1.2 stable
 1.9 development
 roadmap
 wiki
work items
 task list
 bug database
 feature requests
 process mgmt hooks
  hide sidebar
Running X Windows with OpenSSI
=============================
This is a general document for X windows  setup on an OpenSSI cluster. 
It is written to apply to Fedora, as well as Debian, with indications
to explain differences between the distributions.

NOTE: On Fedora/Redhat, the equivalent commands for `invoke-rc.d`
      and `update-rc.d` are `service` and `chkconfig`, respectively.
      To start or stop a service, use command line arguments "on"
      and "off".

Running X on more than one node
===============================
1. Initially setup X windows on base OS and ensure they are working fine.
2. Edit /etc/inittab to add a U to the runlevel for prefdm(on Fedora)
   or xdm(on Debian).  This tells the SSI-enhanced init to start prexdm/xdm
   on every node. Runlevel is 5. 
   For Fedora
       x:5U:respawn:/etc/X11/prexdm -nodaemon OR
   On Debian
       x:5U:respawn:/etc/X11/xdm -nodaemon OR
   The entry should be corresponding to window manager being used.
   If the window manager being used is gdm, then xdm should be replaced by
   gdm or whatever the window manager intended to use
3. Each instance of X creates unix domain sockets in /tmp. To prevent
   namespace collisions between them, each node must have its own
   /tmp. So replace /tmp with a context-dependent symlink (CDSL). 
   Some of these commands may give error if you have not setup x windows 
   on base OS already.
   Assuming bash and that node 1 is your initnode:

     # mklocalfile /tmp
     # rm -rf /cluster/node[1-9]*/tmp/.font-unix
     # mkglobalfile /tmp/.font-unix
     # rm /cluster/node1/tmp/.font-unix
     # mv /cluster/tmp/.font-unix /cluster/node1/tmp
     # ln -s /cluster/node1/tmp/.font-unix /cluster/tmp/.
     # mklocalfile /var/gdm (on Fedora) /var/lib/gdm (on Debian)
     # for i in /cluster/node*/var/log ; do mkdir -p $i/gdm ; done

   Now each node effectively has its own /tmp and all nodes will use the
   X fontserver on node 1 (replace node1 in the above commands if you have 
   a different initnode).
4. There must be an entry for window manager in /etc/rc.nodeinfo. 
     Ex: For xdm window manager, /etc/rc.nodeinfo must have an entry
       xdm     initnode Y
   If it is required to get window manager and X server running on all nodes,
   then entry suppose to be:
       xdm	all	Y
   If window manager is "gdm", there must be an entry for gdm.

5. It's also a good idea to apply the following patch to /etc/console.perms
   on Fedora:
      --- /etc/security/console.perms.dist    2003-02-10 21:43:43.000000000
      +0100
      +++ /etc/security/console.perms 2003-11-10 15:02:01.000000000 +0100
      @@ -15,7 +15,7 @@
      # man 5 console.perms
      # file classes -- these are regular expressions
      -<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
      +<console>=tty[0-9][0-9]* ([0-9]+/)?vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
      <xconsole>=:[0-9]\.[0-9] :[0-9]

Troubleshooting:
===============
1. Verify whether X server and window manager can successfully run 
   on base OS
2. Verify whether /etc/rc.nodeinfo has an entry for window manager to run
   on initnode/all nodes.
3. If X server and window manager runs successfully, it should display
   login banner.
4. upon executing the command "ps ef --shownode | grep gdm/xdm" should display
   output similar to one shown below.
   root          66561    1      66558  0 00:38 ?        00:00:02 /usr/X11R6/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp
   root         131839    2     131837  0 00:37 ?        00:00:02 /usr/X11R6/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp
   root         131832    2          1  0 00:37 ?        00:00:00 /usr/bin/gdm
   root         131837    2     131832  0 00:37 ?        00:00:00 /usr/bin/gdm
   root          66553    1          1  0 00:38 ?        00:00:00 /usr/bin/gdm
   root          66558    1      66553  0 00:38 ?        00:00:00 /usr/bin/gdm

This page last updated on Thu Apr 7 00:42:54 2005 GMT
privacy and legal statement