You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@guacamole.apache.org by "McRoy, Jeffrey (GE Healthcare)" <Je...@ge.com> on 2017/04/17 19:02:24 UTC

xf86 server - issue getting guacd to recognize the new xorg libraries

Thank you Mike.

I was able to get the xf86 server code to build and install. I deployed the
guacamole-example war file in Tomcat with the following in
DummyGuacamoleTunnelServlet:
String hostname = "localhost";
int port = 4822;
GuacamoleConfiguration config = new GuacamoleConfiguration();
config.setProtocol("xorg");

When I hit the client I get a 504 error - tunnel?connect returned a 504.
Syslog for guacd shows "Support for protocol xorg is not installed"

I did see the newly installed xorg libraries in
/usr/local/lib/xorg/modules/drivers. I tried moving them out to the
/usr/local/lib level instead with no change. What did I miss?

My xorg.conf file, deployed into /etc/X11, is below.

Thanks & Regards,
Jeff

Section "ServerLayout"
Identifier     "X.org Configured"
Screen      0  "Screen0" 0 0
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
Screen      1  "GuacScreen" LeftOf "Screen0"
#Mirror
#Screen      1  "GuacScreen" 0 0
    InputDevice    "GuacInput" "SendCoreEvents"
    # The following is not required, but useful when debugging X with gdb.
    # WIthout it, X traps segfaults itself, and gdb never gets a chance.
    #Option "NoTrapSignals"
EndSection

#
# IMPORTANT: The X.Org driver doesn't support RENDER yet. This section
must be
#            included, or graphical artifacts may result, particularly with
#            Gnome.
#
Section "Extensions"
    Option "RENDER" "disable"
EndSection

#
# Set files location and fonts
#
Section "Files"
ModulePath   "/usr/lib64/xorg/modules"
FontPath     "catalogue:/etc/X11/fontpath.d"
FontPath     "built-ins"
EndSection

#
# Set regular video driver
#
Section "Module"
Load  "glx"
EndSection

#
# Mouse and keyboard input from regular console
#
Section "InputDevice"
Identifier  "Keyboard0"
Driver      "kbd"
EndSection

Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option     "Protocol" "auto"
Option     "Device" "/dev/input/mice"
Option     "ZAxisMapping" "4 5 6 7"
EndSection

#
# Mouse and keyboard input from Guacamole
#
Section "InputDevice"
    Identifier  "GuacInput"
    Driver      "guac"
EndSection

#
# Video output to regular console
#
Section "Monitor"
Identifier   "Monitor0"
VendorName   "Monitor Vendor"
ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
Identifier  "Card0"
Driver      "vboxvideo"
BusID       "PCI:0:2:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
SubSection "Display"
Viewport   0 0
Depth     1
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     4
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     8
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     15
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     16
EndSubSection
SubSection "Display"
Viewport   0 0
Depth     24
EndSubSection
EndSection

#
# Video output to Guacamole
#
Section "Monitor"
    Identifier "GuacMonitor"
EndSection

Section "Device"
    Identifier "GuacCard"
    Driver     "guac"
    Option "ListenAddress" "0.0.0.0"
    Option "ListenPort" "4823"
EndSection

Section "Screen"
    Identifier "GuacScreen"
    Device     "GuacCard"
    Monitor    "GuacMonitor"
EndSection






From:  Mike Jumper <mi...@guac-dev.org>
Reply-To:  "user@guacamole.incubator.apache.org"
<us...@guacamole.incubator.apache.org>
Date:  Friday, March 17, 2017 at 2:48 PM
To:  "user@guacamole.incubator.apache.org"
<us...@guacamole.incubator.apache.org>
Subject:  Re: EXT: Re: X11 Server protocol plugin

On Wed, Mar 15, 2017 at 3:09 PM, McRoy, Jeffrey (GE Healthcare)
<Je...@ge.com> wrote:
> Thanks for the quick reply Mike. Is the experimental code for the X11 server
> protocol plugin available for others to work with?
> 

You can find it on the "xf86-video-guac" branches of my GitHub forks of
incubator-guacamole-client and incubator-guacamole-server, though beware
that those branches get rebased occasionally:

https://github.com/mike-jumper/incubator-guacamole-server/tree/xf86-video-gu
ac 
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mike-2Djump
er_incubator-2Dguacamole-2Dserver_tree_xf86-2Dvideo-2Dguac&d=DwMFaQ&c=IV_clA
zoPDE253xZdHuilRgztyh_RiV3wUrLrDQYWSI&r=eLJ4GpoiFp7eC0GlFr51iOuE_tZhPxStyxHx
eDPDDQM&m=ov18brCSyrPzP9a74y1OPSyH6aTbEu4tmeT9sFNX5d0&s=Q52-VvH45X_jt4LERF-c
8MMc35_QSHukQ6vOxdKLp_Y&e=>

https://github.com/mike-jumper/incubator-guacamole-client/tree/xf86-video-gu
ac 
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mike-2Djump
er_incubator-2Dguacamole-2Dclient_tree_xf86-2Dvideo-2Dguac&d=DwMFaQ&c=IV_clA
zoPDE253xZdHuilRgztyh_RiV3wUrLrDQYWSI&r=eLJ4GpoiFp7eC0GlFr51iOuE_tZhPxStyxHx
eDPDDQM&m=ov18brCSyrPzP9a74y1OPSyH6aTbEu4tmeT9sFNX5d0&s=40uhWifBtouW3UTgQ7ZX
FGPJz1egipuHchFBpHkyZk0&e=>

For guacamole-server, you'll need to specify an additional
"--with-xorg-module-dir" option for configure to locate the path for X.Org
drivers:

    $ ./configure --with-xorg-module-dir=/usr/lib64/xorg/modules/

Keep in mind the path to X.Org's modules will likely vary by distribution.

The implementation is not an X11 protocol plugin, but a driver for X.Org
which essentially contains an implementation of guacd, adding Guacamole
protocol support to X.Org directly. The changes to guacamole-client deal
with adding support for multiple guacd instances, since connecting to an
X.Org desktop in this manner requires specifying a different guacd hostname
for each distinct X.Org connection.

You'll need to write an xorg.conf to configure the X.Org server to use the
"guac" driver for display and input. There's an example provided in the
source:

https://github.com/mike-jumper/incubator-guacamole-server/blob/xf86-video-gu
ac/src/drivers/xf86-video-guac/doc/example.xorg.conf
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mike-2Djump
er_incubator-2Dguacamole-2Dserver_blob_xf86-2Dvideo-2Dguac_src_drivers_xf86-
2Dvideo-2Dguac_doc_example.xorg.conf&d=DwMFaQ&c=IV_clAzoPDE253xZdHuilRgztyh_
RiV3wUrLrDQYWSI&r=eLJ4GpoiFp7eC0GlFr51iOuE_tZhPxStyxHxeDPDDQM&m=ov18brCSyrPz
P9a74y1OPSyH6aTbEu4tmeT9sFNX5d0&s=nTxaGvAbikN6eRwKaoQ8bxiZkUluvIAEcsArOcRTqw
k&e=> 

Be warned also that the RENDER extension is not yet implemented. As such,
the example xorg.conf explicitly disables that extension. Some applications
will not be happy with that, and others may pretend to be happy yet fail in
interesting ways.

Testing is definitely welcome.

- Mike




Re: xf86 server - issue getting guacd to recognize the new xorg libraries

Posted by Mike Jumper <mi...@guac-dev.org>.
On Mon, Apr 17, 2017 at 12:02 PM, McRoy, Jeffrey (GE Healthcare)
<Je...@ge.com> wrote:
> Thank you Mike.
>
> I was able to get the xf86 server code to build and install. I deployed the
> guacamole-example war file in Tomcat with the following in
> DummyGuacamoleTunnelServlet:
> String hostname = "localhost";
> int port = 4822;

The X.Org driver listens on port 4823, not 4822.

> GuacamoleConfiguration config = new GuacamoleConfiguration();
> config.setProtocol("xorg");
>
> When I hit the client I get a 504 error - tunnel?connect returned a 504.
> Syslog for guacd shows "Support for protocol xorg is not installed"
>

You do not connect to X.Org through guacd as you would with VNC, RDP,
etc.; you connect to the Guacamole X.Org driver directly on port 4823.

The X.Org driver is essentially an implementation of guacd in driver
form, listening on a different port to avoid colliding with normal
guacd.

- Mike