PDA

View Full Version : [ubuntu] remote ssh can login, but xmanager/xstart or xdmcp failed



nico18
August 28th, 2014, 04:39 AM
Dear All,

I have a problem to connect to the Ubuntu desktop by Xmanager/xstart or xdmcp.
My client: Windows 7/64bits, Xmanager 4.0
My remote Ubuntu: Ubuntu 14.04.1/64bits, with desktop/gnome, default login gdm--> gnome desktop

I can normally operate the Ubuntu OS locally, including gdm login and gnome desktop.

When I try to connect from Windows client (Xmanager, xstart or xdmcp), it failed. The error message of the Xmanager is (seems that no useful info, I can’t understand.):


......(omit here...)
[11:10:14] An X11 channel (id=12) has opened.
gnome-session-is-accelerated: No composite extension.
[11:10:14] An X11 channel (id=12) has closed.
gnome-session-check-accelerated: Helper exited with code 256
** (process:6325): WARNING **: software acceleration check failed: Child process exited with code 1
[11:10:14] An X11 channel (id=11) has closed.
[11:10:14] An X11 channel (id=13) has opened.
[11:10:14] An X11 channel (id=13) has closed.
[11:10:14] An X11 channel (id=14) has opened.
** (gnome-session:6325): CRITICAL **: We failed, but the fail whale is dead. Sorry....

I also checked the log file generated by Xmanager (\NetSarang\Xmanager\4\Enterprise\Log\X0.log),


…….(omit here...)
Monitors: 1
Selected Monitor: Virtual Screen
Same display format: 1
Virtual screen x 0, y 0, w 1280 h 1024
Root Window x 0, y 0, w 1280, h 984
Exact StoreColor: 0
Reverse RGB Order: 0
Screen 0: 1280 x 984, depth 24, dpi 90 x 90
Keyboard file version: 3.0
Keyboard file: US 101 keyboard
Keyboard type: 0
nKeys, minKC, maxKC, mapWidth, nCompose: 101, 8, 109, 4, 0
Number of keycodes: 102
Number of KeySyms: 408
Bytes of KeySyms: 1632
Running Xsound...
Waiting for client connections ...

In the Xmanager/xstart setting, I chose


/usr/bin/gnome-session --display $DISPLAY

Since I can normally use the gnome-session in the local Ubuntu computer. Unfortunately if failed.

When I use Xmanager/Xshell to connect the Ubuntu machine, it indeed successes. And the UI of applications (such as gedit, evince, Matlab…) can normally launch.
And the $DISPLAY seems OK:


~$ echo $DISPLAY
localhost:15.0


For the network protocol test:
There is another Linux computer connected in the same subnet with my Ubuntu machine, and that OS is CentOS. From my client/Xmanager, it can connect the CentOS successfully.


I have searched for a long time. But no method solved this.
I use gdm to login, so I don’t think I need xdm, and hence I don’t have xdm/xdm-config (many guys suggest to edit the xdm/xdm-config and gdm/custom.conf at the same. I don’t know why).
Actually I have edited the gdm/custom.conf as,


[security]
DisallowTCP=false

[xdmcp]
Enable=true
Port=177
DisplaysPerHost=10

And for simplicity, I remove the iptables module so there is no ufw settings.
Also tried to edit /etc/gdm/gdm.schemas as,


<schema>
<key>xdmcp/Enable</key>
<signature>b</signature>
<default>true</default>
</schema>

It doesn’t work. There is no /usr/lib/gdm/gdmlogin file. Recent Ubuntu release doesn't have gdmsetup function.

Any friends can give me some suggestion ? Almost I have tried everything I could found.
I am OK either xmanager/xstart or xmanager/xdmcp works. Maybe the first choice is easier by contrast ?

Thank you in advance.
Nico

TheFu
August 28th, 2014, 08:20 PM
I don't know anything a Xmanager, but I do know X/Windows.
It is a network-based client/server protocol. https://en.wikipedia.org/wiki/X_Window_System

The server must run on the machine you sit behind and the client is on the remote machine. The client machine needs to be told where the server is running and the server needs to "allow" the client access.

On the "server", allow the remote X-client access by using the xhost + {name-of-remote-machine-or-IP-address}
On the "client", tell it where to send the DISPLAY by setting the DISPLAY environment variable. export DISPLAY={name-of-the-server-or-IP-address}:0

The client must be able to ping the server by name or IP.
The server must be able to ping the client by name or IP. If by-name doesn't work going either direction, use IP addresses.

So - you have an X/server running on the PC you are on (Xmanager?), have used xhost + to allow the remote client access and just want remote GUI applications to work? It is possible to remote in using ssh (PuTTY), manually set the DISPLAY correctly, then run any GUI programs. Those will be sent from the X/Client to the X/Server. Experiment with smaller programs like an xterm first. Then you can add other things like a window manager, etc....

Unity doesn't like this stuff. It really wants to be run on local, 3-D accelerated GPUs, NOT over a network. If you must have a DE running, LXDE or XFCE4 are better options.

BTW, X/Windows should only be used on a trusted LAN - NEVER over the internet. There are much more efficient solutions that include security for internet use, but that is not your question.

I hope this made sense to you.

nico18
August 29th, 2014, 09:10 AM
Thank you TheFu, your reply is indeed informative.

According your suggestion, I have directly connected the xfce4-terminal by which I can don almost all my job.
The reason why I chose xfce terminal is I like gnome-terminal but the latter had a very bad appearance showing in the client.

So my puzzle was resolved.

However, I still can't understand why the Ubuntu 14.04 X/gnome desktop/Unity don't show in the client.
Actually, I have tested the same client (Xmanager/xstart in Windows 7/64bits) as posted above to connect the CentOS and Ubuntu 12.04 (all in same subnet),
and all the tests are successful, although the all the apps on the remote desktop, including top menu and Unity
(tested both Ubuntu session and gnome session), are displayed in separate floating windows.
Unfortunately I failed for the test on the computer Ubuntu 14.04.1 in the post.

Before I posted the questions here, I have tested many suggestion from my colleagues and the internet, as described in the post.
This is what really puzzles and frustrates me.

Thank you,
Nico

TheFu
August 29th, 2014, 02:28 PM
However, I still can't understand why the Ubuntu 14.04 X/gnome desktop/Unity don't show in the client.
Actually, I have tested the same client (Xmanager/xstart in Windows 7/64bits) as posted above to connect the CentOS and Ubuntu 12.04 (all in same subnet),
and all the tests are successful, although the all the apps on the remote desktop, including top menu and Unity
(tested both Ubuntu session and gnome session), are displayed in separate floating windows.
Unfortunately I failed for the test on the computer Ubuntu 14.04.1 in the post.

Before I posted the questions here, I have tested many suggestion from my colleagues and the internet, as described in the post.
This is what really puzzles and frustrates me.

Thank you,
Nico

Not all X/Servers are created equal. Some just cannot handle all the complexities and Unity with 3d Acceleration requirements is DEFINITELY COMPLEX. So - if I understand correctly, using a real UNIX/Linux X/server works, but not the Windows one?

Don't use Unity for remote X/Windows desktops if you want a happy experience.
I can confirm that LXDE and XFCE4 and fvwm, openbox and other pure window managers DO WORK fine over a remote X/Windows connection.

Yishi
February 1st, 2015, 04:31 PM
Hi Nico,
I've just run into the same problem as yours. I also use Xstart to connect to my Ubuntu 14.04 server. You said you have directly connected the xfce4-terminal, I also want to try this but I didn't find a proper way. How to configure the Ubuntu server, what is the command that I should fill in the command box in Xstart? Would you please share your succeeded experience?
I've just install the xfce desktop by using:
sudo apt-get install xubuntu-desktop

Thank you!
Yishi