Using Pup/Dogs as 'thin-clients' via VirtualGL on server

What features/apps/bugfixes needed in a future Puppy
Post Reply
Message
Author
wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

Using Pup/Dogs as 'thin-clients' via VirtualGL on server

#1 Post by wiak »

Three of my family (not me) are really into using Blender, but we only have one computer available that is capable of running the latest version of Blender because of its OpenGL 3.3 version requirement. Hence, right at this moment I am experimenting with running Blender on that server computer for remote access via our home LAN. May sound trivial - X window protocol or RDP or VNC, but it is actually not trivial for 3D apps. For example, if you try to simply ssh -X and use traditional X windows remote protocol you will find 3D apps still don't work remotely because the OpenGL stuff gets sent to the Xserver of the thin-client machine (despite the rendering taking place on the server - which in X terminology is actually the 'client') so doesn't work because the low-powered thin-client does not have the necessary OpenGL accelerated graphics hardware (so same issue as trying to run Blender locally on that client).

Fortunately, a great research paper (very interesting to read) was written in 2002 which details how to get the accelerated graphics OpenGL stuff done on the server and only the 2D results sent back: https://virtualgl.org/pmwiki/uploads/Ab ... GSHARV.pdf and VirtualGL provides that much higher performance solution than straight VNC on its own. There is also a follow-up research paper for those interested in the finer details of how it all works:

https://virtualgl.org/pmwiki/uploads/Ab ... pa2003.pdf

The fact is that my own laptop, which I use for dev work, is getting a bit old but still generally very useful otherwise. It's an HP Elitebook 2530p from 2008, was 2 but now 4GB RAM, and Core 2 Duo Intel processor. Where it is no use however is with modern graphics apps such as latest Blender, which required OpenGL 3.3 or better. The graphics hardware in my laptop can only handle OpenGL 2.1, so in that sense Blender is a no-go (has pretty rubbish Intel Mobile 4 Series chipset Integrated Graphics Controller with i915 driver).

But with VirtualGL (and optional VNC) running on faster machine it becomes possible to remotely access that latest Blender (on the faster server) and have it display on the thin-client Pup or Dog on an otherwise not capable machine.

Tonight I've been using VirtualGL on WeeDogLinux Arch64, and on BionicDog64, both as server OS options, and with little client program on the low-powered machine (which could also be using these same distros or Puppy or even SliTaz).

The Arch Wiki contains a lot of useful information (and further links) for setting VirtualGL up (to use either X11 protocol alone, or in conjunction with VNC:

https://wiki.archlinux.org/index.php/VirtualGL

So if you have a host of lesser powered machines and even just one other with good hw graphics acceleration capability a VirtualGL server can be a great resource.

wiak

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

#2 Post by wiak »

VirtualGL with turbo vnc combination working great even with slow 2003 32bit computer and also Emachines Atom CPU netbook as clients, so able to do use latest Blender 3D software and also Supertuxkart 1.1 OpenGL 3.3 hw accelerated graphics at high frame rate - the old computer acting as clients to remote OpenGL-capable server.

See howto here:

https://weedoglinux.rockedge.org/viewto ... p=263#p263

wiak

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

Running modern 64bit apps 'on' your old 32bit Pup or SliTaz

#3 Post by wiak »

You may think this technique is just some dev esoteric experiment and of no practical use to you. Well, perhaps you should think again... especially if you have one or more low-powered computers and one or more high-powered ones, then this technique could work wonders for you in practice. You may not appreciate that, however, until you have tried it and discover just how great it is...

Also, for that particular case where you may have some very old but still very functional 32bit-CPU-capable machines, the problem you face is that many apps are now being compiled only to work on 64bit machines. So one complete answer to that problem is not, how do you run such apps anymore on your 32bit machine. The answer is DON'T... instead simply run VirtualGL plus vncserver in the background of any of your more capable computers (this uses very low resources aside from what the remote computers actually run), and then you can run even WeeDogLinux_SliTaz32 on your 32bit machine and run and control any 64bit apps you like on the server. So it is as if your old 32bit computer can suddenly run most modern 64bit apps (including the whole window GUI (openbox/jwm, whatever) with most modern gtk/glibc and so on... and play pretty fast frame-rate modern games... via this technique.

I mentioned WDL_SliTaz because I am producing a tiny numbered sfs containing a 32bit version VirtualGL on it for exactly this thin-client purpose... (see WeeDogLinux forum for details, and soon, the sfs download).

The implementation for all this is on that weedoglinux forum, but since murga forum has often been about squeezing the last drop of efficiency out of even older machines I posted the above information here to bring it to the attention of non-WeeDog users who might nevertheless find it useful for their other older Pups and Dogs booted machines (32bit and 64bit).

wiak

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#4 Post by rufwoof »

Neat wiak!

Does it include supporting sound? (Suspect not and that sound has to be handled separately?)

Found this (somewhat dated) youtube https://youtu.be/gD8iPEhITL8
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

Forwarding audio

#5 Post by wiak »

You are correct rufwoof. Audio is the holy grail since VNC doesn't itself do audio streaming.
(EDIT: paid VNC solution apparently now providing audio though I don't know how well RealVNC works with VirtualGL: https://www.realvnc.com/en/connect/audio/
https://help.realvnc.com/hc/en-us/artic ... users--0-3)

Nevertheless, VirtualGL + vnc (or even plain X11 for single connection) is a big hit in my house; that networked racing game Supertuxkart being the wow factor that it actually works at such high frame rates.

But no audio... (except we hear the sound playing on the server machine...)

You probably know that there are quite a few articles on using pulseaudio to forward audio over a network. I have not yet tried that and don't hold out much hope.

From my reading pulseaudio forwarding typically uses a lot of bandwidth since raw PCM I think, so tends to not work well.

From my reading pulseaudio forwarding typically uses a lot of bandwidth since raw PCM I think, so tends to not work well.

However, I do have some 'hope' in this:

https://gavv.github.io/articles/new-network-transport/

https://github.com/roc-streaming/roc-toolkit
---------------------

Here are some older ideas:

https://community.spiceworks.com/topic/ ... onnections

Guacamole
https://guacamole.apache.org/

https://joshdata.wordpress.com/2009/02/ ... a-network/

https://openwrt.org/docs/guide-user/har ... pulseaudio

https://rootprompt.apatsch.net/2013/02/ ... ulseaudio/
--------------------------------

Somewhat related... for those wanting audio forwarded from virtual machines (but this person partly using windows 10...):

https://mathiashueber.com/virtual-machi ... o-working/

https://mathiashueber.com/amd-ryzen-bas ... indows-10/
--------------------------------------

I have not tried the following, but perhaps it is possible to use VirtualGL with these alternatives to straight X11 or vnc:

http://opennx.sourceforge.net/
https://en.wikipedia.org/wiki/Xpra

However, the vnc method I detailed works very well for me so I'll probably just stick with that until such time as someone has tried these alternatives and found them better somehow (opennx apparently will work with pulseaudio though whether with VirtualGL I don't know...).

wiak

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#6 Post by rufwoof »

My primary use of vnc nowadays is to drive a old tower PC that boots Fatdog (live-DVD) connected to the large size (living room) TV (with reasonable external speakers). Fatdog comes with X11VNC Server and TigerVNC client (and SSH/SSL VNC Viewer/Terminal Server client alternatives) pre-installed (IIRC ?? may have installed them myself). With Fatdog also booted on my laptop I vnc connect and in effect use it as the keyboard/mouse as a form of wireless remote control for the TV connected system. Kinder on my old eyes to be browsing etc. using the TV as the display/monitor. I've had a long term intent to replace that TV connected box with a low power consumption alternative that I could leave on 24/7 - and use it as a web server type device also. The existing TV connected box is a bit too heavy on power consumption (and noisy, even though it is relatively quiet) to leave it on 24/7.
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

#7 Post by wiak »

rufwoof wrote:I've had a long term intent to replace that TV connected box with a low power consumption alternative that I could leave on 24/7 - and use it as a web server type device also. The existing TV connected box is a bit too heavy on power consumption (and noisy, even though it is relatively quiet) to leave it on 24/7.
Yes this is a concern I always have. Nice to keep old boxes off the dump but depends on their power efficiency whether that is really wise longterm - if the annual additional cost in electricity is not compensated for by their related ability to heat the house in winter then the savings to be made not throwing them on the dump might better be used to invest in more efficient machines...

However, these old Core2Duo SL9400 LV CPU HP Elitebook 2530p laptops three of us use in my home remain in that sweet spot of reasonable performance with low power consumption despite their twelve years of age.

wiak

Post Reply