A page in your DokuWiki was added or changed. Here are the details:

Date        : 2018/12/17 18:36
Browser     : Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like 
Gecko) Chrome/70.0.3538.110 Safari/537.36
IP-Address  : 188.192.205.150
Hostname    : ipbcc0cd96.dynamic.kabel-deutschland.de
Old Revision: ---
New Revision: https://wiki.x2go.org/doku.php/wiki:advanced:x2goephyr:start
Edit Summary: created
User        : ncryer

~~NOTOC~~

====== X2Go Ephyr ======

===== What is X2Go Ephyr ? =====
X2Go Ephyr is a new kdrive X Server for X2Go. It could be used instead of 
x2goagent. X2Go Ephyr works similar to Xephyr and based on it's code. It won't 
replace x2goagent, users will be able to chose if they want to run their 
sessions in x2goagent or in X2Go Ephyr.
===== Why do we need X2Go Ephyr? =====
The main reason - we want to be able to run modern desktops such as Unity, 
KDE-5, Gnome-3 and the applications built with the latest toolkits without 
limitations.
===== What is the
difference between x2goagent and X2Go Ephyr =====
x2goagent (or nxagent) is based on NX technologies. It's basically kind of 
X-proxy. It accepting X-protocol requests from X-Client and forwarding them to 
remote X-Server. In opposite, X2Go Ephyr is a real X-Server. It's processing 
the requests from X-Client and rendering images on the remote display, like 
normal X-Server rendering them into the graphic display, using the video 
driver. You could say, that the difference between x2goagent and X2Go Ephyr 
it's the same as difference between Xnest and Xephyr.
===== Advantages of x2goagent  =====
NX-Protocol using the network transparency of X-protocol. It mean's that instead of sending images over 
network, it sending the X-requests like "create window" or "move window from one position to 
another" or "write text in the window". So if you running legacy X-applications, it'll work 
much faster on the slow networks, than protocols, which are transferring images between server and
client.

===== Advantages of X2Go Ephyr =====
==== 1. X2Go Ephyr based on the recent X.Org code ====
Unlike the NX-libraries, which are based on obsolete X.Org-6, X2Go Ephyr is based on the recent X.Org-7. It brings multiply advantages: * We can run without any limitations any modern Desktops and applications.
 * We don't need to support obsolete X code, which makes the development and 
support much easier.
==== 2. X2Go Ephyr is a real X-Server ====
If x2goagent is just a proxy between X-Servers on the server and client sides, 
X2Go Ephyr is a standalone X-Server. It brings a lot of advantages over 
NX-protocol:
 * We don't need an X-Server on the client side. This is a main advantage. If 
we want to use NX-Libraries, we always need a fully functional X-Server on 
client, like XQuartz on Mac or VCXsrv on Windows. X-applications are not native 
to this OS and are always the source of many troubles. Another OS, like Android 
or IOS, doesn't have any usable X-Server software at all.
Using X2Go Ephyr we can avoid this issue and build native clients for any 
platform and even develop HTML5 client.
 * The X2Go Ephyr architecture is better suited for the modern application like 
Firefox or Chromium. This applications are developed to run on different 
platforms and using cross-platform graphic libraries like Skia. Modern browsers 
and some other applications working much better with X2Go Ephyr than with NX.

===== How X2Go Ephyr works=====

X2Go Ephyr works similar to Xephyr with only difference, that it's not 
rendering frames in the X-window but transferring them instead over the network 
to xephyrclient. Xephyrclient running on the client computer, rendering the 
frames, capturing the input events and sending them back to the server.

===== How to use X2Go Ephyr =====

xephyrclient and x2goephyr binaries are made to be compatible with nxproxy and 
x2goagent. You can just rename xephyrclient to nxproxy and x2goephyr to 
x2goagent and start the X2Go session using X2Go
Client. It works only if X2Go Client is running on Linux. The versions of X2Go 
Client and X2Go Server, which can run parallel x2goagent and X2Go Ephyr 
sessions are coming soon.


**Please keep in mind:**
* This is not a stable software. * Use it on your own risk and don't use it in productive environment. * At the moment it's only a preview version. We assume you know how X2Go works and you know what are you doing.

We don't have a binary builds yet. If you want to try it, you need to build it 
by yourself or wait until binary packages are ready.

Or just take a look at screenshots:

{{:wiki:advanced:x2goephyr:screenshot_20181217_153306.png?direct&400|}}
KDE-5 on Open SUSE Leap 42.3


{{:wiki:advanced:x2goephyr:screenshot_20181217_153541.png?direct&400|}}
xephyrclient display menu

{{:wiki:advanced:x2goephyr:screenshot_20181217_154248.png?direct&400|}}
Gnome-3 in SLE-classic mode on SLES 12sp1

{{:wiki:advanced:x2goephyr:screenshot_20181217_155451.png?direct&400|}}
Gnome-3 in
modern look on Debian Stretch.


===== How to build X2Go Ephyr =====

download the x2goephyr from git:

[[https://code.x2go.org/gitweb?p=x2goephyr.git/.git;a=summary|x2goephyr]]

We assuming, that you are familiar with make, Xorg and know how to build 
software from sources.

You'll need a xorg-server sources (1.19.2), zlib, libpng and libjpeg. Configure Xorg to build xephyr and start a build process (make). After that copy x2goephyr directories in ''xorg-server/hw/kdrive'', than change to ''xorg-server/hw/kdrive/x2goephyr'' and run ''make x2go''. This should build x2goephyr binary.

The simplest way to build x2goephyr if you are using your system source 
packages. I'll give some examples for Debian, SLE12sp1 and OpenSUSE Leap 42.3

==== Debain Stretch ====
 * Install apt-source, and get source for xorg-server ''apt-build source 
xorg-server''
 * Go to the source directory and build it with ''dpkg-buildpackage''
 * Copy x2goephyr sources to ''xorg-server-1.19.2/hw/kdrive/''
 *
Create directory 'x2goephyr' in  
''xorg-server-1.19.2/debian/build/main/hw/kdrive/''
 * Link Makefile from ''xorg-server-1.19.2/hw/kdrive/x2goephyr'' to  
''xorg-server-1.19.2/debian/build/main/hw/kdrive/x2goephyr''
 * Go to ''xorg-server-1.19.2/debian/build/main/hw/kdrive/x2goephyr'' and run 
''make x2go''

==== SLES 12SP1 or OpenSUSE Leap 42.3 ====
 * Download xorg-server SRPM for your system and install it
 * Install all dependencies you need to build xorg-server
 * Build xorg-server from SPEC file
 * Copy x2goephyr sources to ''BUILD/xorg-server-<your version>/hw/kdrive''
 * You'll need apply a patch for your system: ''patch -p1 < osuse_42.3.patch'' or 
''patch -p1 < sles12sp1.patch''
 * Build binary: ''make x2go''


===== How to build xephyr client =====
To build xephyrclient you'll need QT-5.
 * Get it from git: 
[[https://code.x2go.org/gitweb?p=xephyrclient.git/.git;a=summary|xephyrclient]]
 * Build it like any qt project: ''qmake && make''


===== What X2Go Ephyr
already can do =====
 * Works with recent desktops and software
 * Supports SW 3D acceleration
 * Supports RANDR, works with multiply desktops in window and full screen modes
 * Supports JPEG and PNG compression
 * Supports frame caching
 * Can recognize windows scrolling and doesn't transfer frame areas, which are 
already in cache.
* Works with 3D acceleration (if you are using Virtual GL) * Has QT client for Linux and Windows (Mac client not ready yet, but it's not complicated, only keyboard encoding is missing)

===== What need to be done (sorted by priority) =====
 * Proper build scripts and integration with jenkins
 * Support in X2Go Client and X2Go Server (it's actually done, just need to 
discus how we'll integrate it in our builds)
 * Clipboard support
 * Mac client
 * Different optimizations for slow networks, frame dropping, etc
 * Video encodings
 * HTML5 client
 * ....
















--
This mail was generated by DokuWiki at
https://wiki.x2go.org/

_______________________________________________
x2go-commits mailing list
x2go-commits@lists.x2go.org
https://lists.x2go.org/listinfo/x2go-commits

Reply via email to