#Xrfb Client Setup | #Xrfb Server Setup
To configure your Xrfb client you'll need the address and the password for your Xrfb server, both of which should be obtainable from your Systems Administrator. Once you have this information you're ready to complete the setup:
#back to top
To build your own Xrfb jail, the server machine needs to be
The last Xrfb (aka Totoro) built by Henry Strickland and Ryan Seto under contract and supervision of the University of Wisconsin for use with the Dormouse version of Croquet.
The Xrfb server runs in a chroot jail. You may either use the Jail we provide (XrfbJail.tgz) or you may build your
own (using xrfb-build.tgz).
If you use XrfbJail.tgz, as root, chdir to the directory where you want to place the jail, and untar it:
su root cd /somewhere tar xzf ..../...XrfbJail.tgz
In that example, the jail will be named "/somewhere/XrfbJail". (We'll continue to use /somewhere as the example location; change it to your actual location.)
To build your own jail, follow the instruction in the READ_ME file inside xrfb-build.tgz
Choose a password containing at least six (preferably many more) letters and numbers. Do not use spaces or other punctuation!
Put it in the file /somewhere/XrfbJail/home/guest/XrfbPasswd:
echo MyReallyHardToGuessS3cr3t > /somewhere/XrfbJail/home/guest/XrfbPasswd
This password will need to be shared with all clients using the server.
To run it in the foreground, enter:
Diagnostics will be sent to the console. To kill it, use ^C.
To run it in background, add the "-d" flag:
sh /somewhere/XrfbJail/XrfbDaemon.sh -d
You may put that line in /etc/rc.local to have it restart automatically when the server reboots.
Every Croquet client can manage the daemon; it is a shared resource, like much of Croquet.
These management buttons are availble in the control panel:
Every desktop running on the server will be listed, as will every client connected to it.
listening 10 583928446372263745 http://google.com
A desktop server process (named Xvnc) is listening
for connections on port 5910 (add 5900 to the
desktop number 10 to get ths port). It is browsing
http://google.com . The large arbitray number
583928446372263745 is a desktop id that is kept in
the model object in Croquet. It tells us whether
the client is viewing the same or different models.
connected 10 10.33.44.55:33459
A client on IP address 10.33.44.55 is connected from
client port 33459 to the desktop server at port 5910.
Servers listening on desktop numbers with connections are in use.
Servers may be left running with no connections because they might be used again. This speeds up closing & re-opening a Croquet world. However, you may also shut down all servers with no connections using the "Clean up" button. This is not usually necessary, since unconnected servers are automatically cleaned up whenever a new server is allocated.
Kill All Desktops!
This is an emergency shutdown for all running desktops; you probably don't need to use it. Any clients connected will be aborted; they will see their desktop portals go light green.
The XrfbDaemon itself is NOT shut down. New management and desktop requests will be handled.
To repair client connections that are aborted (due to "Kill All Desktops!", server reboots, network disconnections, etc.), closing croquet (saving the world) and restarting the croquet world. Fresh desktop connections will be made to view the saved models.
Copy&paste clones of windows are prone to freezing up, apparently due to neither smalltalk nor the free unix Xvnc (vncserver) processes being multithreaded enough. I've seen the non-smalltalk linux vncviewer also lock up, apparently because the Xvnc server is in deadlock with a Croquet RFB process.
Workaround: Close croquet (saving the world), close squeak, restart squeak, and rejoin the world.
We can't find any way to find out when our XrfbMorph becomes garbage (e.g. when the entire Croquet is closed), so we can abort the client connection. This only wastes resources; it's not usually noticable. (When the portals are explicitly closed by clicking on the floating halo "X", we do intercept the message and abort the client.)
Workaround: ignore it, or same as above.
#back to top