[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [seul-edu] Mac/Linux Xterminals



Doug,

Hi; I did something like what you're trying, and I can probably help.

I assume you will have a central linux server box to which everyone
would log in, and so would be using XDMCP query to try to attach.

So you know... I tried MI/X again recently, and again, it didn't work
to my satisfaction: the only way to attach was to start with a telnet
and MI/X was not able to use fonts served up by xfs.

So, I started going for what you're trying.

The first thing I found, was that the inittab was a reasonable way to
start the server. However, doing things this way the server had trouble
connecting to the main box... reasonable, it turned out, since networking
was not set up yet.

So I wrote a script that uses a special ping command called fping. The
script is very simple: it simply tries to ping the main box, and if
it cannot, it waits one second. As soon as it can, it exits.

Once I had this going, I had one xterminal that worked. So, I wrote
a tarball of it to a nearby linux box. 

Then, I tried getting two going, and I ran into two problems: first,
the networking setup on both tried to use the same IP address. Big
problem if I wanted to just rubber-stamp the debian onto these
machines.

The machines were win95 clients that had static IPs already assigned,
so I decided to find the ethernet addresses and the IPs that went
with them. I went through many different ways of doing this, but by
far the easiest was to turn them all on, ping them from a central linux
box and then simply print the arp table.

Once I knew the addresses, I created a dhcp server that passed out 
the static IPs to the machines that they were assigned to.

As far as the client daemons, I tried several things: installed 
the dhcpcd package and several others. I had also been compiling
kernels and creating .deb packages of them, and I noticed that 
the newer kernels had a builtin dhcp client. I settled on using 
that; from that point forward, the machines booted seamlessly
and once I had 

The other problem encountered at this point, was the partition table:
I just had to make sure that the partitions were the same across all
machines. As long as I did this, there was no further problem in that
area. I could clone the system and it would boot with no problems.

Here are some of the scripts I used...

I added this to the end of the inittab, it says: in any runlevel 2 thru 5,
run the StartServer script, and if the process dies, start it again.

-
# xterm pointing at earth
x:2345:respawn:/root/StartServer
-

Here is the StartServer script:

-
#!/bin/bash

# wait for the main linux box to be reachable (by name, implying DNS is up)
/root/WaitForEarth

# now that networking and DNS is up, start the server
/usr/X11R6/bin/X -query earth.laney.edu
-

Finally, here is WaitForEarth (which you can either generalize or alter
for your setup)

-
WaitForEarth.bash
-
#!/bin/bash

while ! fping -q earth
do
    sleep 2
done
-

For the above script to exit, the IP address has to be assigned and the
DNS server has to be reachable. If either fails, the script simply waits
awhile and asks again.

In the process of booting, both eventually happen (if the infrastructure
is set up correctly) and the next thing to happen is the X server should
be started, querying the main linux box using XDMCP.