TurboVNC / turbovnc

Main TurboVNC repository
https://TurboVNC.org
GNU General Public License v2.0
789 stars 142 forks source link

LightDM support in xstartup.turbovnc #71

Closed jdasmith closed 7 years ago

jdasmith commented 7 years ago

On ubuntu16, 64bit desktop, a clean install to new partition will use lightdm as the display manager. In the docs at: http://www.virtualgl.org/vgldoc/2_1_1/ section 6.2 on should /etc/init.d/lightdm stop and start Also, the init scripts: ~/.vnc/xstartup.turbovnc Should be updated to provide the correct support. Until this is done, the resulting vnc session is blank, but usable by logging on to the vnc server over ssh and something like, export DISPLAY=:1 xterm & This will give a wholescreen terminal. I suspect this means we have X started, but not any display manager in this case. I am not an expert.

dcommander commented 7 years ago

I don't fully understand what you're saying. The latest TurboVNC and VirtualGL releases (2.1 and 2.5.1, respectivaly) should work fine with Ubuntu 16 LTS. Remove ~/.vnc/xstartup.turbovnc, upgrade to the latest software, and restart the TurboVNC session. Does it still display a blank screen? The reason why I'm saying this is because you linked to the VirtualGL 2.1.1 docs, and 2.1.1 is a very old release.

jdasmith commented 7 years ago

Thanks for getting straight back to me. This is indeed with the software (turbovnc 2.1 and virtualgl 2.5.1, respectively) downloaded from the sourceforge website on Thursday. I guess I must have landed on the virtualGL 2.1.1 docs by google search, so it is those instructions I followed. I see comments in xstartup.turbovnc that tells me ubuntu 16.04 has been considered and indicating should work, but those all refer to gnome desktop, which AFAICT is not default any more. Particularly I refer to this stanza

  # This is necessary to make Unity work on Ubuntu 16, and on Ubuntu 14, it
  # ensures that the proper compiz profile is set up.  Otherwise, if you forget
  # to specify -3dwm, compiz will automatically disable its OpenGL plugin,
  # requiring you to reset the compiz plugin state before Unity will work
  # again.
  if [ -f /usr/share/gnome-session/sessions/ubuntu.session ]; then
    SESSION=ubuntu
    DESKTOP_SESSION=$SESSION; export DESKTOP_SESSION
    GDMSESSION=$SESSION; export GDMSESSION
    SESSIONTYPE=gnome-session; export SESSIONTYPE
    XDG_CURRENT_DESKTOP=Unity; export XDG_CURRENT_DESKTOP
    XDG_SESSION_TYPE=x11; export XDG_SESSION_TYPE
    STARTUP="/usr/bin/gnome-session --session=$SESSION"; export STARTUP
  fi

... so I believe I am running the latest and get the blank screen. Happy to run any tests on the system that you think may help. FWIW running the TigerVNC vncserver gave me a mouse cursor on a grey background and not a lot more. I see a comment about -3dwm. I have not

In better news, when I set up an xterm as described above, I've been able to run the VisIt visualisation tool (https://wci.llnl.gov/simulation/computer-codes/visit) and VSim simulation software (www.txcorp.com/vsim). Obviously that they run on one system hardly justifies calling them working in general, but I hope that's useful feedback and I'd be happy to qualify them some more if that's mutually beneficial. (eg for section 15) though since no special options were required perhaps this is not particularly helpful.

In terms of docs I see the docs moved home after 2_2_1. I wonder if it's worth posting something at the top of the legacy docs to direct users to the new ones? I see the point I mentioned about lightdm has been addressed.

I'm not ruling out user error here somewhere in the setup. When I ran /opt/VirtualGL/bin/vglserver_config my choices were yes to the two questions about the vglusers group and no to the XTEST question, the latter seeming the correct answer to still be able to run via VNC.

I then added my user to vglusers with $sudo adduser myusername vglusers

Can you confirm I am asking for the expected behaviour - that when I start the server I get a lightdm session on it, or is it my expectation that is out?

dcommander commented 7 years ago

The display manager stuff is specific to VirtualGL. VirtualGL modifies the DM startup scripts so that they will either:

This allows VGL to redirect OpenGL commands to the GPU while the 3D X server is sitting at the login prompt. You will normally never see a display manager screen in TurboVNC, because TurboVNC sessions (and all other X proxy sessions) run only under your user account. Thus, what you should see is a window manager, as if you had logged into the system locally.

The stanza you list is only invoked in "3D window manager" mode, which isn't the default. Ubuntu uses gnome-session to launch its window managers, even though it isn't usually running GNOME. So that stanza is supposed to launch Unity 3D if you run vncserver with the -3dwm argument. If you don't run vncserver with -3dwm, then xstartup.turbovnc should launch the GNOME Flashback Metacity window manager, if it is installed. If GNOME Flashback Metacity isn't installed, then that could explain why you aren't getting a window manager.

I tested all of this stuff thoroughly in the run-up to the 2.1 release. If there is a bug, I certainly want to fix it, but I first need to make sure this isn't due to another cause. If GNOME Flashback Metacity is installed and you're still getting a black screen, then post the contents of the TurboVNC session log (under ~/.vnc). Also remove ~/.xsession-errors, restart the TurboVNC session, and post the contents of the fresh ~/.xsession-errors file.

jdasmith commented 7 years ago

I think metacity is there by default (I have the metacity package installed). I had been using the machine on which I've been trying to run virutalGL/turboVNC as a desktop, with a display manager that looks mostly like what I have seen in 14.04 when sitting at the monitor and keyboard connected to that box, but that's not to say that under the hood there are differences. It's just the VNC session which comes up blank, but obviously with X in the background. The windows I create do not have title bars, so something is up with windows management. I'll post the outputs when I next get a chance, and perhaps a few screen captures which should clarify things, as will the logs.

Thanks once again for your efforts.

On 20 November 2016 at 19:30, DRC notifications@github.com wrote:

The display manager stuff is specific to VirtualGL. VirtualGL modifies the DM startup scripts so that they will either:

  • Run xauth +LOCAL: to grant all local users access to the 3D X server (AKA the "root X server", usually Display :0) while the DM is sitting at the login prompt, or ...
  • Store the DM's xauth cookie in a place (/etc/opt/VirtualGL) where all members of the vglusers group can access it, and vglrun can load the cookie into a user's ~/.Xauthority file prior to invoking VirtualGL. This effectively grants only members of the vglusers group access to the 3D X server.

This allows VGL to redirect OpenGL commands to the GPU while the 3D X server is sitting at the login prompt. You will normally never see a display manager screen in TurboVNC, because TurboVNC sessions (and all other X proxy sessions) run only under your user account. Thus, what you should see is a window manager, as if you had logged into the system locally.

The stanza you list is only invoked in "3D window manager" mode, which isn't the default. Ubuntu uses gnome-session to launch its window managers, even though it isn't usually running GNOME. So that stanza is supposed to launch Unity 3D if you run vncserver with the -3dwm argument. If you don't run vncserver with -3dwm, then xstartup.turbovnc should launch the GNOME Flashback Metacity window manager, if it is installed. If GNOME Flashback Metacity isn't installed, then that could explain why you aren't getting a window manager.

I tested all of this stuff thoroughly in the run-up to the 2.1 release. If there is a bug, I certainly want to fix it, but I first need to make sure this isn't due to another cause. If GNOME Flashback Metacity is installed and you're still getting a black screen, then post the contents of the TurboVNC session log (under ~/.vnc). Also remove ~/.xsession-errors, restart the TurboVNC session, and post the contents of the fresh ~/.xsession-errors file.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/TurboVNC/turbovnc/issues/71#issuecomment-261799346, or mute the thread https://github.com/notifications/unsubscribe-auth/AEQfLMpgv4kKHxosfQznXHhxCjxh48Efks5rAJ_VgaJpZM4K3hh9 .

dcommander commented 7 years ago

There should be a file called /usr/share/gnome-session/sessions/gnome-flashback-metacity.session if the GNOME Flashback Metacity WM is installed. Otherwise:

sudo apt-get update
sudo apt-get install gnome-session-flashback
jdasmith commented 7 years ago

Thanks.

~$ ls /usr/share/gnome-session/sessions/gnome-flashback-metacity.session ls: cannot access '/usr/share/gnome-session/sessions/gnome-flashback-metacity.session': No such file or directory. Clearing out log now and retrying. Will post contents shortly.

On 21 November 2016 at 14:49, DRC notifications@github.com wrote:

There should be a file called /usr/share/gnome-session/ sessions/gnome-flashback-metacity.session if the GNOME Flashback Metacity WM is installed. Otherwise:

sudo apt-get update sudo apt-get install gnome-session-flashback

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/TurboVNC/turbovnc/issues/71#issuecomment-261957949, or mute the thread https://github.com/notifications/unsubscribe-auth/AEQfLFgJlDXH2hMPFhyAC_VjJ7zjUxQDks5rAa9ygaJpZM4K3hh9 .

jdasmith commented 7 years ago

Yes, that was it.

On 21 November 2016 at 14:49, DRC notifications@github.com wrote:

There should be a file called /usr/share/gnome-session/ sessions/gnome-flashback-metacity.session if the GNOME Flashback Metacity WM is installed. Otherwise:

sudo apt-get update sudo apt-get install gnome-session-flashback

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/TurboVNC/turbovnc/issues/71#issuecomment-261957949, or mute the thread https://github.com/notifications/unsubscribe-auth/AEQfLFgJlDXH2hMPFhyAC_VjJ7zjUxQDks5rAa9ygaJpZM4K3hh9 .

dcommander commented 7 years ago

Cool, so it works now?

jdasmith commented 7 years ago

I'm afraid I was so keen to try this, I forgot to check .xsession-errors before testing. I have some errors like openConnection: connect: no such file or directory cannot connect to brltty at :0, a bunch of upstart notices (killed by HUP or TERM signals) finishing with upstart: unity7 main process (1989) terminated with status 1 upstart: Disconnected from notified D-Bus bus.

These could be from the current session or an older one.

On 21 November 2016 at 14:49, DRC notifications@github.com wrote:

There should be a file called /usr/share/gnome-session/ sessions/gnome-flashback-metacity.session if the GNOME Flashback Metacity WM is installed. Otherwise:

sudo apt-get update sudo apt-get install gnome-session-flashback

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/TurboVNC/turbovnc/issues/71#issuecomment-261957949, or mute the thread https://github.com/notifications/unsubscribe-auth/AEQfLFgJlDXH2hMPFhyAC_VjJ7zjUxQDks5rAa9ygaJpZM4K3hh9 .

dcommander commented 7 years ago

But does the window manager work now?

jdasmith commented 7 years ago

Yes. Very nicely thanks.

On 21 November 2016 at 23:56, DRC notifications@github.com wrote:

But does the window manager work now?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/TurboVNC/turbovnc/issues/71#issuecomment-262105887, or mute the thread https://github.com/notifications/unsubscribe-auth/AEQfLOzwIECa4xzcGFDLZjv1jHGgFU_Jks5rAi-qgaJpZM4K3hh9 .

jdasmith commented 7 years ago

Yes. Good catch. Just needed flashback. Guess we could throw a warning if that file's not there when the vnc server is invoked?

On 21 Nov 2016 23:10, "DRC" notifications@github.com wrote:

Cool, so it works now?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/TurboVNC/turbovnc/issues/71#issuecomment-262097105, or mute the thread https://github.com/notifications/unsubscribe-auth/AEQfLLHgWwC9v0sb8ZghuiiO6zn9Rbnzks5rAiTSgaJpZM4K3hh9 .

dcommander commented 7 years ago

Awesome. I wouldn't worry about the X session errors as long as everything is working.

dcommander commented 7 years ago

As far as throwing a warning, the problem is that xstartup.turbovnc doesn't really know what platform it's running on, so it doesn't know whether GNOME Flashback should exist or not. The script takes more of the approach of "if this exists, then use it." I could conceivably detect Ubuntu, but there's no way to know whether it's, for instance, Kubuntu.