Results 1 to 4 of 4

Thread: Running "x2goclient" on Android devices ... sort of

  1. #1
    Join Date
    May 2006
    Location
    Switzerland
    Beans
    2,903
    Distro
    Ubuntu 20.04 Focal Fossa

    Running "x2goclient" on Android devices ... sort of

    I'm posting this here in the hope that others who are looking for a way to have any kind of X2go Client on their Android device might find it, e.g. via Google. It sure would have helped me had I found a forum post like this... So to spare you from wasting many hours trying to figure this out like I just did, I will write this down. Hopefully it will be useful to someone some day.

    So, as we all know, there is no native Android client for the "X2go" remote desktop solution. Which is a big shame. "X2go" is a lot faster than e.g. VNC, it is also more secure, it can work with SSH keys, SSH jump hosts, it can forward sound, it can reconnect to an already running desktop session... there are so many ways it is superior to VNC.

    Having a X2go client on your Android device sure would be "nice to have". In my case it's even "must have" because sometimes I really really need full desktop access to my Linux machines back in the office and a simple SSH session won't be sufficient in all scenarios. And it could happen that I don't have my laptop with me... just my Android 'phablet' (yes, I'm a huge fan of plus-size Android devices!).

    Since there simply is no X2go Android client we are going to cheat by installing a so called "Linux compatibility layer" on our Android device.

    I have experimented with these 3:



    I have had issues and various problems with all 3 x ... but UserLand seems to work best (as of July 2021). So that's what I'm going with here.


    Step 1:

    Install "UserLand" from the Google Play Store: https://play.google.com/store/apps/details?id=tech.ula ...
    You will also need a VNC client to connect to your fake Linux desktop that will be running locally on your Android device.

    For most people this one should do:
    https://play.google.com/store/apps/d...viewer.android

    I myself bought this one because it also works very nicely with the "DeX" (desktop mode) of my Samsung device:
    https://play.google.com/store/apps/d...iiordanov.bVNC


    Step 2:

    Once "UserLand" is installed you should be seeing a screen that offers you various icons, e.g. Alpine Linux, Debian and Ubuntu sessions ... Scroll down until you find the "LXDE" and "XFCE" desktop sessions. Now create a local desktop session for VNC, e.g. by telling "UserLand" to install Ubuntu with either the XFCE or the LXDE desktop for you. "UserLand" will ask you to define a user account and a VNC password:

    Screenshot_20210721-123406_UserLAnd.jpg
    (UserLand in Samsung's DeX mode)

    Once you have a user and a VNC password, "UserLand" will offer you to connect to your new environment:

    Screenshot_20210721-112922_Android System.jpg

    When you connect you should find yourself in a minimalist "twm" session and there should be a terminal which is busy with installing lots and lots of packages for you...

    Screenshot_20210721-123605_bVNC Pro.jpg

    When everything is done, you will be told to disconnect from this VNC session, stop it (you will find it on the "Sessions" tab of "UserLand" ... long-press it and then choose "Stop"), restart it, and then reconnect to it (by clicking on it on the "Sessions" tab). When you do then this time you should be greeted by your chosen desktop, e.g. XFCE:

    Screenshot_20210721-124348_bVNC Pro.jpg

    Now, this desktop behaves exactly like a 'normal' Linux VM would, e.g. you can install additional themes, additional wallpapers, icons, customize it whichever way you want. Don't forget to run updates:
    Code:
    sudo apt update
    sudo apt dist-upgrade

    Step 3a:

    Now you can install "x2goclient" like you would inside a Linux VM or a normal Ubuntu desktop:
    Code:
    sudo apt install x2goclient

    Step 3b:

    Now, if you try to run your X2go client you will run into various errors, such as:
    Code:
    error while loading shared libraries: libdl.so: cannot open shared object file: No such file or directory
    ... or:
    Code:
    error while loading shared libraries: /usr/lib/aarch64-linux-gnu/libc.so: invalid ELF header

    The core reason for this is a bug in "UserLand". Some nice folks already filed a bug report:
    https://github.com/CypherpunkArmory/...nd/issues/1410

    So to work around this bug you have to set a specific environment variable to an empty value:
    Code:
    export LD_LIBRARY_PATH=""
    I'd also recommend to add that line into various places such as your ~/.bashrc, ~/.profile ...

    It appears that the developers were aware of the problem and they tried getting rid of the problem by defining commands such as
    Code:
    unset LD_LIBRARY_PATH
    ... in various places such as /etc/profile.d/userland.sh ... except this does not seem to have any positive effect.

    Anyways.... until this bug is solved executing the command...
    Code:
    export LD_LIBRARY_PATH=""
    ... will work tip top and achieve the desired effect.

    Once this variable is cleared you should be able to execute the X2go client:
    Code:
    x2goclient
    X2go client running on the "openbox" window manager, running inside an Ubuntu VM, running on Android 11, showing a remotely running Ubuntu-Budgie session:

    Screenshot_20210721-113333_bVNC Pro.jpg


    Until such time that we get blessed with an official Android client for X2go or a working HTML5 implementation (so we could access X2go with our web browsers) I guess this is a suitable workaround for Linux road warriors who need X2go access on the go via their Android devices ...
    Last edited by scorp123; July 22nd, 2021 at 12:48 AM. Reason: Errors corrected

  2. #2
    Join Date
    May 2010
    Beans
    1,594

    Re: Running "x2goclient" on Android devices ... sort of

    Nef you do this you should see if there is a sleeker solution. Like SSH or Web interfaces which apps can connect to (VLC and Transmission spring to mind). A lot of the time there is a better option than accessing the full desktop. People (a lot of the time) just jump to VNC and similar without thinking. I've had users VNC to a remote system on their own LAN, to then open a Web browser to http://localhost
    I kid you not

  3. #3
    Join Date
    May 2006
    Location
    Switzerland
    Beans
    2,903
    Distro
    Ubuntu 20.04 Focal Fossa

    Re: Running "x2goclient" on Android devices ... sort of

    Quote Originally Posted by ActionParsnip View Post
    Nef you do this you should see if there is a sleeker solution.
    Sure, for many things a simple SSH terminal or a SSH tunnel (e.g. for forwarding a remote web site to your local device) will suffice. There are many excellent SSH clients on Android, both free and paid ones. And SSH tunnelling isn't too hard. But I have a few use cases where SSH won't be enough and where I absolutely need a full desktop somehow. And what if my employer's Citrix infrastructure isn't working in that moment because the Windows guys had to take it down once again because of some urgent security issue...? That has happened a few times lately thanks to all the Citrix zero-day exploits that are going around. Sure, I could wait until the Windows folks get their Citrix stuff up and running again... but then again I hate to be depending on them and the "reliability" (read: complete lack thereof) of their stuff so I'd very much prefer to have my own solution that does not have Windows anywhere in the equation. So I can do the job I'm paid to do.

    And running X2go this way works surprisingly well. And having something like a "Linux VM" (UserLand's compatibility layer) locally on my Android device that's actually working and behaving like the real thing? Can't say I dislike the idea...

  4. #4
    Join Date
    May 2010
    Beans
    1,594

    Re: Running "x2goclient" on Android devices ... sort of

    I manage Windows entirely with Powershell. I don't suggest you use VNC to Windows servers and IMHO RDP should not be used by engineers to resolve issues on servers.
    The only real use case for this I can see, is remote desk side support etc. For real servers it's pretty awful but then again people install webmin etc which is also pretty nasty

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •