Closed ddavidebor closed 7 years ago
Thanks for sharing your configuration, but it is extremely specific. If you're asking whether I could provide such an example in the User's Guide, then the answer is no, because there is a high likelihood that such an example wouldn't work on any system other than yours. I would be willing to provide a wiki page on VirtualGL.org describing how to configure your specific GPU for headless VGL operation, but such a wiki page would need to act as a supplement to the User's Guide. See http://www.virtualgl.org/Documentation/HeadlessNV for an example.
If you want the User's Guides to be improved, then please approach the problem from the following angle:
For instance, I could certainly write some general guidelines for headless configuration, but in terms of xorg.conf, it would be much better to discuss how a headless xorg.conf file differs from a "normal" xorg.conf file rather than providing a complete example, since not all parts of the example would apply to all systems.
TurboVNC should be simple to install. You should be able to just install the packages and run /opt/TurboVNC/bin/vncserver
to start a session. If that procedure fails on a specific Ubuntu release, then that is a bug that needs to be fixed. Please provide details of the failure. It should work properly on Ubuntu 16.04 without MATE, but you need to have the GNOME Flashback package installed if you aren't using MATE. If GNOME Flashback isn't installed by default, then perhaps I need to make that more clear, or provide a link in the documentation to the window manager compatibility guide.
VirtualGL is a bit more complex to install. Generally the installation assumes that you already have a working X server running with GPU acceleration on the VGL server machine, and that seems to be where you ran into problems. I've added a brief section to the User's Guide that clarifies those prerequisite steps, but unfortunately the specifics of those steps are going to vary wildly from system to system, so it would be impossible for me to document all of them. The vast majority of VirtualGL installations use either nVidia or AMD GPUs. Intel GPUs have historically not provided anywhere near the same level of performance, stability, or ease of configuration, which is why I cannot recommend their use with VirtualGL. As I said above, however, I am willing to provide wiki instructions regarding how to configure specific GPUs for headless operation, if those instructions can be expressed in the most general way possible.
Yes of course my configuration is very specific and it would be pointless to include, but it's a nice point to start the discussion. I think the procedure may be more helpful.
A similar small tutorial like the one for a headless nvidia, but with the intel integrated graphics would be extremely helpful. I've banged my head on it quite a bit, but configuring xorg for the intel is more or less the same. i'm not sure if X supports --use-display-device=None
lspci:
00:00.0 Host bridge: Intel Corporation Sky Lake Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Sky Lake PCIe Controller (x16) (rev 07)
00:02.0 Display controller: Intel Corporation Device 191d (rev 06)
00:13.0 Non-VGA unclassified device: Intel Corporation Sunrise Point-H Integrated Sensor Hub (rev 31)
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)
00:16.1 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #2 (rev 31)
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] (rev 31)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)
00:1d.5 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #14 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
01:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
01:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.0 PCI bridge: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge (rev 03)
04:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30)
What specific problems did you encounter while following the User's Guide instructions?
One problem was the fact that the supported desktop environments were described in a separated document. There was no "if you want to get it to work effortlessly, use mate. Gnome 2 works also. For other refer to document XXX"
That is, what additional information would make TurboVNC and VirtualGL easier to configure?
Well, a getting started guide. One that takes an opinionated position on the system (possibly a widespread OS, such as Ubuntu 16.04 LTS or CentOS). It's hard to configure a system from scratch, especially it may be hard to understand how the pieces fit together. It's also hard to start without knowing what should work straight away and what requires fiddling with.
Now many cloud providers are offering GPUs (I, for example, know Google cloud and Exoscale) and starting from a bare server OS and going to a OpenGL remote virtual workstation is something that's getting traction.
[..] but you need to have the GNOME Flashback package installed if you aren't using MATE. If GNOME Flashback isn't installed by default, then perhaps I need to make that more clear, or provide a link in the documentation to the window manager compatibility guide.
I sincerely do not know if it was installed or no, but i can check.
I've added a brief section to the User's Guide that clarifies those prerequisite steps, but unfortunately the specifics of those steps are going to vary wildly from system to system, so it would be impossible for me to document all of them.
Thanks, it helps.
VirtualGL is a bit more complex to install. Generally the installation assumes that you already have a working X server running with GPU acceleration on the VGL server machine, and that seems to be where you ran into problems.
Yep. I ran around like a headless chicken trying to understand why it was not using the GPU. answer: like any well configured system the cheap super-legacy vga gpu takes precedence.
The vast majority of VirtualGL installations use either nVidia or AMD GPUs. Intel GPUs have historically not provided anywhere near the same level of performance, stability, or ease of configuration, which is why I cannot recommend their use with VirtualGL.
Yes i know Nvidia is the boss of this market. intel recently is fighting back with their auxiliary processing units, but i've yet to see any serious adoption. Intel graphics now are extremely easy to use: their drivers are included in the linux kernel. full complete drivers. The new series of xeon E3 processor has them in many models, and is being widely adopted.
I'll see what I can do vis-a-vis discussing supported WM configurations in the TurboVNC User's Guide. I unfortunately couldn't write a headless Intel wiki page myself, since I don't have access to any of those GPUs for testing.
I might have an inte i7 4770 server in germany with a week of rent to spare if you need it.
After a week on the intel integrated graphics: everything is running smoothly
I've spent a riddiculous amount of time getting virtualgl and turbovnc to work on ubuntu with mate with an integrated intel graphics on a completely headless system.
Mostly because i'm really pissed of by the fact that apparently a remote workstation is a thing only on windows.
My user case: I Work in 6 different location, all of them with a good internet connection and want a remote workstation with a complete OS to do CAD (in vmware) with 3d acceleration, software development etc etc.
I think the documentation really lacks an immediately implementable tutorial.
The following procedure works for ubuntu 16.04 server on a Xeon E3 1245 v5 https://www.supermicro.com/products/system/3U/5039/SYS-5039MS-H12TRF.cfm?parts=SHOW
The system is for trusted users only and i've yet to test it with multiple user at the same time.
I'd like to know what you think of the following procedure. I was not able to get gnome to work. I had to cherrypick some parts from the TightVNC docs.
The xorg config is necessary otherwise VirtuaGL will try to use one of those crappy server graphics, which of course does not support opengl, and will fallback to software rendering.
Example instructions
example turbovnc security conf
Example sysconfig
Example xorg.conf
testing