Problem with X server

Nigel Wade nmw at ion.le.ac.uk
Tue May 6 16:09:23 UTC 2008


Wiedemann, Shane CIV NAVAIR wrote:
> So this problem is most likely user error; none the less...
> I have some software (only one other place has this software) that to
> view video windows that the software tries to pop up, you need to use
> the following command to get it to display:
> "software_name -display hostname", or at least that is what I am told.
> I have inserted my hostname where it says "hostname" and verified with
> "uname" that my hostname is correct.  I am not connecting to a remote
> machine, am not on a network and am running the software on a
> stand-alone machine.  The vendors of the software do connect remotely, I
> believe, and they can pop video display windows just fine.  Whenever I
> run the software, I get a message that says "Unable to connect to x
> server".  
> I currently have the DISPLAY variable set to ":0.0" and this seems to be
> fine for opening programs, such as NEdit.  Any other setting (even
> "hostname:0.0") and I cannot start programs such as editors and other
> programs that open in a separate window.  I get errors that say "can't
> open display" and the like.
> 
> When I run the software, if I leave out the command "-display hostname"
> all video rendering is done behind the scenes, i.e., I can't view it.  I
> have tried replacing "hostname" with all of the following:
> hostname:0.0
> :0.0
> hostname:0
> localhost
> localhost:0.0
> localhost:0
> 
> Any clues?

I think you probably need to enable your X display to listen on the network.

The software you are using is pretty strange. It should not be necessary 
to specify the -display option, it should use whatever DISPLAY is set 
to. However, given that it does what it does, you are pretty much at its 
mercy.

By default the X display does not listen for network (TCP) connections, 
it allows local connections using a UNIX domain socket. If you have 
DISPLAY set to :0 clients will connect on the UNIX socket, but if you 
specify a hostname (even localhost) then the connection will be done on 
a TCP socket. If the X server isn't listening on a TCP socket then the 
connection will fail. This is a quite sensible security precaution (it 
prevents any non-local clients connecting to your display, even if you 
use the xhost + security disabler) but can cause problems for any 
software which expects to be able to connect via a TCP socket.

To enable the TCP socket you need to modify the X server startup. How 
you do that depends on what version of RedHat you are using. For RH 4 it 
is set in /etc/X11/gdm/gdm.conf. To enable TCP connections you need to 
change the line:
   DisallowTCP=true
to
   DisallowTCP=false

In KDE desktop you can also set this using the System Settings->Login 
Screen dialog (I presume there's something similar for Gnome). In the 
Security tab un-check the box marked "Always disallow TCP connections to 
X server".


-- 
Nigel Wade, System Administrator, Space Plasma Physics Group,
             University of Leicester, Leicester, LE1 7RH, UK
E-mail :    nmw at ion.le.ac.uk
Phone :     +44 (0)116 2523548, Fax : +44 (0)116 2523555




More information about the redhat-list mailing list