Hi guys
Let’s TLDR for you: This Guide is meant to help you install and configure ThinLinc Server and VirtualGL on the same host machine, so that you can have a secure multi-user full remote desktop session experience with sound and hardware accelerated graphics for OpenGL applications. I had some struggles trying to configure both, so I decided to document it and share with you.
Intro and motivation:
At the start of pandemics lockdown, I had to find a way to share the “better computer” with both my nephew and wife. I was working home-office as sysadmin, my nephew was taking classes remotely and my wife was also working/studying. We had 3 machines: my 4th gen i5 notebook running openSUSE Leap (with SSD, 8GB Ram and a GTX 850M), a slow Centrino notebook and a Raspberry Pi 2. VNC was not enough because it had no sound (I think that it has workarounds, but never tried) and wifi signal some times was weak enough to give us responsiveness problems and poor graphic quality. So, I’ve found ThinLinc, that is a Remote Desktop solution for Linux based on FOSS. It is not FOSS itself, but it is built on top of TigerVNC and noVNC by a company named Cendio (maintainers of both TigerVNC and noVNC). ThinLinc had the improvements needed for me and my family because we could share one computer for our daily activities and no one had to have a bad experience using one of the slower machines (such as the Raspberry Pi 2 as a desktop). ThinLinc is free for up to 5 simultaneously connected users, so it also saved me some money. If you need more users connected at same time, their pricing is very competitive and you get support included. Check at cendio.com
It was very simple to install ThinLinc Server on Leap. And then after some lockdown time we were allowed to phisically access our office one person at a time. And I had an openSUSE Tumbleweed machine there that was shut down and could also be used for my home office days by using ThinLinc. And then some struggles came and it took me some time to figure out what was different that prevented ThinLinc Server to be installed on the Tumbleweed machine. It was easy but undocumented, that’s the first motivation for this guide.
Second motivation is: One day my nephew at home tried to start some game remotely and it simply didn’t open. Another game had a sluggish FPS that he couldn’t play it. Some other video editing software refused to open because it claimed that it couldn’t run without the GPU… Well, Steam Link could be enough for us, but I was working and Steam would just stream the local screen to Steam Link and you are not able to use the computer locally.
And that’s when I learned about VirtualGL, a FOSS application that let the machine process hardware accelerated graphics on the host GPU and forward it to another machine… And it could be installed along ThinLinc Server and be configured to work together, so a ThinLinc client can benefit from hardware accelerated graphics for OpenGL applications: A remote desktop session with sound and GPU accelerated graphics sounds fantastic, but I’ll documment some tricks that I learned from try and miss trying to get both working. In the end, the answer for my problems were simple. About VirtualGL, it is in openSUSE OSS repo and also can be downloaded at virtualgl.org (the most recent version is not on OSS repo yet).
Third motivation is: I got a new machine at work and was in doubt if I should reinstall Tumbleweed from scratch or just clone my SSD and continue with the same installation that I have for several years. I had to test if my Remote Access solution would work (and know if I still could remember all the steps that I did in the past.
To make this guide, I based on the lovely openSUSE Tumbleweed KDE. I’m used to LXDE though, but KDE had some extra configuration steps that I didn’t know.
CONTINUE