Click to See Complete Forum and Search --> : Problems connecting from a X Windows Client to a Linux machine (XDMCP & GDM)


Jay Park
07-12-2001, 06:27 PM
I'm trying to connect to my Mandrake 8.0 box from my NT machine using a X terminal program (X-Win32).

I've read the XDMCP mini-HowTo and the help for X-Win32. I think I've made all the configurations asked for on the linux box. The linux box starts up in run level 5. I'm using GDM as the display manager. In /etc/X11/gdm/gdm.conf, I've enabled XDMCP and in /etc/X11/xdm/Xaccess, I've enabled hosts to connect.

In the windows side, I'm attempting to connect to the linux box with the X-Win32 program set to connect using XDMCP. When I try to connect, the error message "ioctlsocket: Not a socket" pops up repeatly, and never goes any further.

On the Linux box, the /var/log/messages file has the following 2 lines added each time the "ioctlsocket" messsage pocks up : gdm_child_action: Aborting display 9.22.25.xxx:0
Jul 12 14:11:44 barracuda gdm[1679]: gdm_slave_xioerror_handler: Fatal X error - Restarting 9.22.25.xxx:0

If anyone could help me to get the X Windows terminal working, I'd appreciate it very much.

Thanks,
Jay Park

yard21
07-18-2001, 10:36 AM
I'm afraid I can't help you with X-Win32, but have you ever considered to give VNCServer a try? It's really easy to install and works fine for me, and it's open source! Unfortunately I don't have the link to their homepage, but a little research on google should do it.

bdg1983
07-18-2001, 12:59 PM
Virtual Network Computing (VNC) (http://www.uk.research.att.com/vnc/)

bdg1983
07-18-2001, 01:06 PM
This is from Caldera's knowledgebase. Thought you may want to verify your configuration.

Setting up the server side of things
Edit the /etc/X11/kdm/Xaccess file to include one of the following (no quotes):
"* CHOOSER BROADCAST"
This will set the server up as the machine that queries the network for other machines that can serve XDMCP connections. This server will not actually be doing the serving of XDMCP; it will only act as a proxy that finds other machines that can provide this service.


"* CHOOSER %HOSTS"
This will do the same as the first option, but will only query the machines in a pre-defined list called "%HOSTS". If this option is used, earlier in the Xaccess file you must have a definition of this list that looks something like this:

%HOSTS host1 host2 host3 host4 host5 \
host6 host7 host8

(Note that there is nothing special about the name "HOSTS"; you can change it to "GEORGE" and precede it with a "%" and it'll have the same affect, as long as "%GEORGE" is used in the "CHOOSER" line above.)


"*"
This will open up the server to connections from any client on the network. No "chooser" menu will be assembled; if this machine receives a request from a client, it will simply start an XDMCP session.

Note that in each of these cases, "*" could be replaced by an individual machine name or a wildcarded name spec (i.e. dhcp*.calderasystems.com) if the scope of supported machines needs to be limited.


Edit the /etc/X11/kdm/xdm-config file to include the following line:
DisplayManager*chooser: /usr/X11R6/bin/chooser

Make sure KDM is running on the server after all of this is done. Restart the X system if necessary. Note that all XDMCP capable servers that you would like to appear in the chooser menu for clients will have to have at least a "*" line in its /etc/X11/kdm/Xaccess file. Only set up one server as a "chooser" (using the instructions above), and have clients always query that one "chooser" machine for a menu of XDMCP capable servers.

Setting up the client side (with X not currently running):
Start an X connection using one of the following commands:
"X -indirect chooser_server"
This will query "chooser_server" for connections, and if everything is set up correctly on that server, the client will see a chooser menu. Again, if a server is set up as a chooser, it can not serve XDMCP services; all it will do is assemble a menu of machines and send it to a client that starts X using the command above.


"X -query server"
This will query "server" directly for an XDMCP session. Note that "server" should not be set up as a chooser using the instructions listed earlier. Its Xaccess file should have a line that permits access from the client, whether the line is nothing more than the client's full machine name, or simply an "*" which opens the server to queries from any machine on the network.


"X -broadcast"
This will broadcast a plea for XDMCP connections over the entire network, and the first server that responds will offer a login prompt to the client. It's possible that each time X is started this way, a different server will end up providing the XDMCP services.

Multiple X displays
Finally, you can run multiple versions of X on different virtual terminals by specifying a number corresponding to the next X console, starting with 1. For example, the following code would start X on the first X console with the display provided by servername.
X :1 -query servername

And to start on the second X console:
X :2 -query secondservername