Michael DePaulo | 22 Jul 03:52 2014
Picon

Re: x2go, GLX option

On Jul 21, 2014 12:41 PM, "Leopold Palomo-Avellaneda" <leo <at> alaxarxa.net> wrote:
>
> A Diumenge, 20 de juliol de 2014, Michael DePaulo va escriure:
> > On Thu, Jul 17, 2014 at 11:40 AM, Leopold Palomo-Avellaneda
> > <leo <at> alaxarxa.net> wrote:
> > > A Dijous, 17 de juliol de 2014, Michael DePaulo va escriure:
> > >> On Wed, Jul 16, 2014 at 6:12 PM, Leopold Palomo-Avellaneda
> > >> <leo-4DxD5imHBKjk1uMJSBkQmQ@public.gmane.org> wrote:
> > >> > El Dimecres, 16 de juliol de 2014, a les 14:55:59, Michael DePaulo va
> > >> > escriure:
> > >> >> On Jul 16, 2014 11:44 AM, "Leopold Palomo-Avellaneda"
> <leo <at> alaxarxa.net>
> > [...]
> >
> > >> > Also, I have solved this, but I still have problems with some software
> > > that
> > >> > under a remote virt-manager is working but not under x2go.
> > >> >
> > >> > If I run a graphical python qt program I got:
> > >> >
> > >> >
> > >> > python: Fatal IO error 11 (Resource temporarily unavailable) on X
> server
> > > :5
> > >> >
> > >> >
> > >> > and if I run for instance gazebo, I got:
> > >> >
> > >> > X Error of failed request:  BadMatch (invalid parameter attributes)
> > >> >   Major opcode of failed request:  147 (GLX)
> > >> >   Minor opcode of failed request:  5 (X_GLXMakeCurrent)
> > >> >   Serial number of failed request:  22
> > >> >   Current serial number in output stream:  22
> > >> >
> > >> > Any idea?
> > >>
> > >> We've disabled GLX by default because It causes many applications to
> > >> not work. The reason is that our "X server", nxagent 3.5.0.x, is based
> > >> on X.org 6.9, from 2005. Therefore, nxagent implements a very old
> > >> version of the GLX protocol. Many apps try to use it, but require a
> > >> newer version of the GLX protocol, and thus fail.
> > >> You can read more about this problem here:
> > >> http://wiki.x2go.org/doku.php/doc:de-compat
> > >> (I just wrote that wiki page yesterday. Feedback is welcome.)
> > >
> > > well, in my case there's no a problem of desktop, it's of application. So,
> the
> > > wiki is too much desktop centric. You asked feedback ....
> > >>
> > >> Does gazebo require 3D acceleration?
> > >
> > > yes ... if relays in OGRE libs.
> > >
> > >> If not, try running it with GLX
> > >> disabled. If you are still having trouble running it, let me know and
> > >> I'll test gazebo on a KVM/virt-manager Ubuntu 12.04 VM at my home.
> > >
> > > I will send you in private a virt machine to test.
> >
> > Good news and bad news.
>
> :-)
>
> >
> > Bad News:
> >
> > It looks like nxagent (and therefore X2Go) is too old to run OGRE apps
> > linked against Ubuntu 12.04's libraries. Maybe it could be recompiled
> > against older x server libs and run, but I don't have time to try that
> > .
> >
> > I also was unable to run it under cygwin X11 for some reason.
>
> Ok, so as you said, the problem is the nxagent is too old.
>
> > Good News:
> >
> > I was able to run Gazebo and the OGRE's "SampleBrowser" under KVM &
> > virt-manager using SPICE and QXL. I am not sure if my host system was
> > providing the new (experimantal) virtio-gpu or not. The OGRE
> > SampleBrowser ran surprisingly well.
>
> so, may I understand that you connect remotely to the host and run virt-
> manager and then visualize the box?

The architecture you have right now is this:

1. Your host has qemu-kvm hosting the VM.

2. The host has libvirtd managing qemu-kvm.

3. virt-manager can be opened and closed on the server, locally or over x2go, to manage the libvirtd.

Your client should run virt-viewer instead of x2go client. virt-viewer is available for both Windows and Linux. virt-viewer (a Red Hat sponsored project) is available not only for Red Hat based distros, but also for Ubuntu, Debian and other distros. The URL to enter in virt-viewer is spice://hostname:59xx, where hostname is the host, and 59xx is the port that virt-manager lists for the display. When you select the display under the VM's hardware details, it should list what port it is on. If the port is not listed, remove and add the display, and configure the display to listen on "All interfaces".

You could also run virt-manager directly on the client and connect to the server's libvirtd with it. virt-manager is available for Linux, but not for Windows. You do not need libvirtd running on the client, although the OS may make the virt-manager package depend on the libvirtd package. If so, just disable the libvirtd service from running.

>
> > I successfully did this on both your VM and a VM i created with the
> > original 12.04 HWE stack.
> >
> > On your VM, i first ran this command to make sure that the 13.10 HWE X
> > server and X libraries are installed. You have a bunch of 12.04 HWE X
> > libraries installed, but they are not supported with the 13.10 kernel
> > that you have (kernel 3.11).
>
> > sudo apt-get install --install-recommends linux-generic-lts-saucy
> > xserver-xorg-lts-saucy libgl1-mesa-glx-lts-saucy
>
> Ok
>
> > To run the OGRE SampleBrowser, I ran this package installation command:
> >
> > sudo apt-get install ogre-samples ogre-tools ogre-doc
> >
> > Then just run:
> > SampleBrowser
> >
> > Screenshots (from my VM, but your's worked too):
> > http://imgur.com/a/zwPz9
>
>
> Done, worked with virt-manager but not connecting with x2goclient.

See above.

>
> > My system:
> > Host: Fedora 20 64-bit with all the latest updates.
> > Guest: Ubuntu 12.04 64-bit with original 12.04 HWE stack. Packages
> > installed include: xubuntu-desktop spice-vdagent libtxc-dxtn-s2tc
> > Client: virt-viewer 0.6.0 64-bit on Windows
> >
> > Other notes: On my VM, I installed spice-vdagent. This caused MATE
> > 1.6.0 (from the mate-desktop.org) repo to fail to launch, but it XFCE
> > still worked. On your VM, it is not installed.
>
> it runs Unity.

Yeah. When I ran your VM, Unity ran fine using virt-viewer. I just thought the MATE issue was worth noting.

>
> > Also, remember that to enable remote SPICE displays, you have to set
> > the settings on the "Display" in virt-manager. You may have to remove
> > and add the display for those settings to be adjusted.
>
> well, I'm I bit lost. I have configured in the host the spice and qxl. I runs
> better than using the default VGA, cyrrus.
>
> Otherwise, I think that I cannot use X2Go here :-( I'm searching another
> solutions.

See above.

>
> Just, for curiosity, X2Go will be ready to use with wayland?

So long as X2Go uses the NX protocol exclusively for remote display and keyboard/mouse input, we cannot support wayland. (Audio and file/printer sharing are handled by separate protocols.) This is because NX works with the underlying X11 protocol, rather than using an entirely separate protocol like SPICE and VNC do. NX improves X11 performance by caching the X11 traffic, compressing it, and eliminating the X11 "round-trip".

Finding another protocol to use and implementing it is a long-term task, but not out of the question. MIke#1 tested SPICE. It seemed to perform well, but not as well over WANs as NX did. There are other factors in chosing a protocol too too, such as X2Go telekinesis and the maturity of XSpice.

(XSpice: http://www.spice-space.org/page/Features/XSpice )

This Q&A belongs on the Wiki's FAQ page btw. I will add it.

> Regards,

>
> Leopold
[...]

Personally, I hope we get NX upstreamed into X.org. NX would be a DDX for the X.org server that does not output to hardware, just like Xwin (outputs to one or more windows on the Windows OS) and Xquartz (outputs to one or more windows on Mac OS X). And then NX would be a good reason for toolkits and desktop environments to support both wayland and X11. Wayland would be used for local desktops, while NX would be used for remote desktops. But that's merely what I hope.

-Mike#2

<div><div dir="ltr">
<p dir="ltr"></p>
<p dir="ltr">On Jul 21, 2014 12:41 PM, "Leopold Palomo-Avellaneda" &lt;<a href="mailto:leo@..." target="_blank">leo <at> alaxarxa.net</a>&gt; wrote:<br>
&gt;<br>
&gt; A Diumenge, 20 de juliol de 2014, Michael DePaulo va escriure:<br>
&gt; &gt; On Thu, Jul 17, 2014 at 11:40 AM, Leopold Palomo-Avellaneda<br>
&gt; &gt; &lt;<a href="mailto:leo@..." target="_blank">leo <at> alaxarxa.net</a>&gt; wrote:<br>
&gt; &gt; &gt; A Dijous, 17 de juliol de 2014, Michael DePaulo va escriure:<br>
&gt; &gt; &gt;&gt; On Wed, Jul 16, 2014 at 6:12 PM, Leopold Palomo-Avellaneda<br>
&gt; &gt; &gt;&gt; &lt;<a href="mailto:leo@..." target="_blank">leo@...</a>&gt; wrote:<br>
&gt; &gt; &gt;&gt; &gt; El Dimecres, 16 de juliol de 2014, a les 14:55:59, Michael DePaulo va<br>
&gt; &gt; &gt;&gt; &gt; escriure:<br>
&gt; &gt; &gt;&gt; &gt;&gt; On Jul 16, 2014 11:44 AM, "Leopold Palomo-Avellaneda"<br>
&gt; &lt;<a href="mailto:leo@..." target="_blank">leo <at> alaxarxa.net</a>&gt;<br>
&gt; &gt; [...]<br>
&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt; Also, I have solved this, but I still have problems with some software<br>
&gt; &gt; &gt; that<br>
&gt; &gt; &gt;&gt; &gt; under a remote virt-manager is working but not under x2go.<br>
&gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt; If I run a graphical python qt program I got:<br>
&gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt; python: Fatal IO error 11 (Resource temporarily unavailable) on X<br>
&gt; server<br>
&gt; &gt; &gt; :5<br>
&gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt; and if I run for instance gazebo, I got:<br>
&gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt; X Error of failed request: &nbsp;BadMatch (invalid parameter attributes)<br>
&gt; &gt; &gt;&gt; &gt; &nbsp; Major opcode of failed request: &nbsp;147 (GLX)<br>
&gt; &gt; &gt;&gt; &gt; &nbsp; Minor opcode of failed request: &nbsp;5 (X_GLXMakeCurrent)<br>
&gt; &gt; &gt;&gt; &gt; &nbsp; Serial number of failed request: &nbsp;22<br>
&gt; &gt; &gt;&gt; &gt; &nbsp; Current serial number in output stream: &nbsp;22<br>
&gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt; Any idea?<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; We've disabled GLX by default because It causes many applications to<br>
&gt; &gt; &gt;&gt; not work. The reason is that our "X server", nxagent 3.5.0.x, is based<br>
&gt; &gt; &gt;&gt; on X.org 6.9, from 2005. Therefore, nxagent implements a very old<br>
&gt; &gt; &gt;&gt; version of the GLX protocol. Many apps try to use it, but require a<br>
&gt; &gt; &gt;&gt; newer version of the GLX protocol, and thus fail.<br>
&gt; &gt; &gt;&gt; You can read more about this problem here:<br>
&gt; &gt; &gt;&gt; <a href="http://wiki.x2go.org/doku.php/doc:de-compat" target="_blank">http://wiki.x2go.org/doku.php/doc:de-compat</a><br>
&gt; &gt; &gt;&gt; (I just wrote that wiki page yesterday. Feedback is welcome.)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; well, in my case there's no a problem of desktop, it's of application. So,<br>
&gt; the<br>
&gt; &gt; &gt; wiki is too much desktop centric. You asked feedback ....<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Does gazebo require 3D acceleration?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; yes ... if relays in OGRE libs.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;&gt; If not, try running it with GLX<br>
&gt; &gt; &gt;&gt; disabled. If you are still having trouble running it, let me know and<br>
&gt; &gt; &gt;&gt; I'll test gazebo on a KVM/virt-manager Ubuntu 12.04 VM at my home.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I will send you in private a virt machine to test.<br>
&gt; &gt;<br>
&gt; &gt; Good news and bad news.<br>
&gt;<br>
&gt; :-)<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; Bad News:<br>
&gt; &gt;<br>
&gt; &gt; It looks like nxagent (and therefore X2Go) is too old to run OGRE apps<br>
&gt; &gt; linked against Ubuntu 12.04's libraries. Maybe it could be recompiled<br>
&gt; &gt; against older x server libs and run, but I don't have time to try that<br>
&gt; &gt; .<br>
&gt; &gt;<br>
&gt; &gt; I also was unable to run it under cygwin X11 for some reason.<br>
&gt;<br>
&gt; Ok, so as you said, the problem is the nxagent is too old.<br>
&gt;<br>
&gt; &gt; Good News:<br>
&gt; &gt;<br>
&gt; &gt; I was able to run Gazebo and the OGRE's "SampleBrowser" under KVM &amp;<br>
&gt; &gt; virt-manager using SPICE and QXL. I am not sure if my host system was<br>
&gt; &gt; providing the new (experimantal) virtio-gpu or not. The OGRE<br>
&gt; &gt; SampleBrowser ran surprisingly well.<br>
&gt;<br>
&gt; so, may I understand that you connect remotely to the host and run virt-<br>
&gt; manager and then visualize the box?</p>
<p>The architecture you have right now is this:</p>
<p>1. Your host has qemu-kvm hosting the VM.</p>
<p>2. The host has libvirtd managing qemu-kvm.</p>
<p>3. virt-manager can be opened and closed on the server, locally or over x2go, to manage the libvirtd.</p>

<p dir="ltr">Your client should run virt-viewer instead of x2go client. virt-viewer is available for both Windows and Linux. virt-viewer (a Red Hat sponsored project) is available not only for Red Hat based distros, but also for Ubuntu, Debian and other distros. The URL to enter in virt-viewer is spice://hostname:59xx, where hostname is the host, and 59xx is the port that virt-manager lists for the display. When you select the display under the VM's hardware details, it should list what port it is on. If the port is not listed, remove and add the display, and configure the display to listen on "All interfaces".</p>
<p>You could also run virt-manager directly on the client and connect to the server's libvirtd with it. virt-manager is available for Linux, but not for Windows. You do not need libvirtd running on the client, although the OS may make the virt-manager package depend on the libvirtd package. If so, just disable the libvirtd service from running.</p>
<p dir="ltr" title="">

&gt;<br>
&gt; &gt; I successfully did this on both your VM and a VM i created with the<br>
&gt; &gt; original 12.04 HWE stack.<br>
&gt; &gt;<br>
&gt; &gt; On your VM, i first ran this command to make sure that the 13.10 HWE X<br>
&gt; &gt; server and X libraries are installed. You have a bunch of 12.04 HWE X<br>
&gt; &gt; libraries installed, but they are not supported with the 13.10 kernel<br>
&gt; &gt; that you have (kernel 3.11).<br>
&gt;<br>
&gt; &gt; sudo apt-get install --install-recommends linux-generic-lts-saucy<br>
&gt; &gt; xserver-xorg-lts-saucy libgl1-mesa-glx-lts-saucy<br>
&gt;<br>
&gt; Ok<br>
&gt;<br>
&gt; &gt; To run the OGRE SampleBrowser, I ran this package installation command:<br>
&gt; &gt;<br>
&gt; &gt; sudo apt-get install ogre-samples ogre-tools ogre-doc<br>
&gt; &gt;<br>
&gt; &gt; Then just run:<br>
&gt; &gt; SampleBrowser<br>
&gt; &gt;<br>
&gt; &gt; Screenshots (from my VM, but your's worked too):<br>
&gt; &gt; <a href="http://imgur.com/a/zwPz9" target="_blank" title="">http://imgur.com/a/zwPz9</a><br>
&gt;<br>
&gt;<br>
&gt; Done, worked with virt-manager but not connecting with x2goclient.</p>
<p title="">See above.</p>
<p dir="ltr" title="">
&gt;<br>
&gt; &gt; My system:<br>
&gt; &gt; Host: Fedora 20 64-bit with all the latest updates.<br>
&gt; &gt; Guest: Ubuntu 12.04 64-bit with original 12.04 HWE stack. Packages<br>
&gt; &gt; installed include: xubuntu-desktop spice-vdagent libtxc-dxtn-s2tc<br>
&gt; &gt; Client: virt-viewer 0.6.0 64-bit on Windows<br>
&gt; &gt;<br>
&gt; &gt; Other notes: On my VM, I installed spice-vdagent. This caused MATE<br>
&gt; &gt; 1.6.0 (from the <a href="http://mate-desktop.org" target="_blank">mate-desktop.org</a>) repo to fail to launch, but it XFCE<br>
&gt; &gt; still worked. On your VM, it is not installed.<br>
&gt;<br>
&gt; it runs Unity.</p>
<p title="">Yeah. When I ran your VM, Unity ran fine using virt-viewer. I just thought the MATE issue was worth noting.</p>
<p dir="ltr" title="">
&gt;<br>
&gt; &gt; Also, remember that to enable remote SPICE displays, you have to set<br>
&gt; &gt; the settings on the "Display" in virt-manager. You may have to remove<br>
&gt; &gt; and add the display for those settings to be adjusted.<br>
&gt;<br>
&gt; well, I'm I bit lost. I have configured in the host the spice and qxl. I runs<br>
&gt; better than using the default VGA, cyrrus.<br>
&gt;<br>
&gt; Otherwise, I think that I cannot use X2Go here :-( I'm searching another<br>
&gt; solutions.</p>
<p title="">See above.</p>
<p dir="ltr" title="">
&gt;<br>
&gt; Just, for curiosity, X2Go will be ready to use with wayland?<br><br>So long as X2Go uses the NX protocol exclusively for remote display and keyboard/mouse input, we cannot support wayland. (Audio and file/printer sharing are handled by separate protocols.) This is because NX works with the underlying X11 protocol, rather than using an entirely separate protocol like SPICE and VNC do. NX improves X11 performance by caching the X11 traffic, compressing it, and eliminating the X11 "round-trip".</p>
<p dir="ltr" title="">Finding another protocol to use and implementing it is a long-term task, but not out of the question. MIke#1 tested SPICE. It seemed to perform well, but not as well over WANs as NX did. There are other factors in chosing a protocol too too, such as X2Go telekinesis and the maturity of XSpice.</p>
<p title="">(XSpice:&nbsp;<a href="http://www.spice-space.org/page/Features/XSpice">http://www.spice-space.org/page/Features/XSpice</a> )</p>
<p title="">This Q&amp;A belongs on the Wiki's FAQ page btw. I will add it.<br></p>
<p dir="ltr" title="">&gt; Regards,<br></p>
<p dir="ltr" title="">
&gt;<br>
&gt; Leopold<br>[...]
</p>
<p dir="ltr" title="">Personally, I hope we get NX upstreamed into X.org. NX would be a DDX for the X.org server that does not output to hardware, just like Xwin (outputs to one or more windows on the Windows OS) and Xquartz (outputs to one or more windows on Mac OS X). And then NX would be a good reason for toolkits and desktop environments to support both wayland and X11. Wayland would be used for local desktops, while NX would be used for remote desktops. But that's merely what I hope.</p>
<p title="">-Mike#2</p>
</div></div>

Gmane