Hey everyone,
i think i need a little bit of help configuring virtualGl and xorg.
In my Setup i have a PC with a Nvidia-GPU. On The Debian9 Hostsystem i have
installed docker, nvidia-docker and the latest nvidia-driver.
I have build a docker-container that should later run a TurboVNC-server using
VirtualGL in split-rendering-mode with the GPU.
The GPU is shown in the container. This is the Output of lspci:
root@d4e2e94fa0b7:/# lspci
00:00.0 Host bridge: Intel Corporation 82Q33 Express DRAM Controller (rev 02)
00:01.0 PCI bridge: Intel Corporation 82Q33 Express PCI Express Root Port (rev
02)
00:03.0 Communication controller: Intel Corporation 82Q33 Express MEI
Controller (rev 02)
00:19.0 Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network
Connection (rev 02)
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #4 (rev 02)
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #5 (rev 02)
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #6 (rev 02)
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI
Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio
Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1
(rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2
(rev 02)
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #3 (rev 02)
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI
Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller
(rev 02)
00:1f.2 IDE interface: Intel Corporation 82801IB (ICH9) 2 port SATA Controller
[IDE mode] (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801I (ICH9 Family) 2 port SATA
Controller [IDE mode] (rev 02)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 128b (rev a1)
01:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)
And this is the Output of nvidia-smi:
root@d4e2e94fa0b7:/# nvidia-smi
Fri Nov 10 14:02:45 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.90 Driver Version: 384.90 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 710 Off | 00000000:01:00.0 N/A | N/A |
| 50% 42C P8 N/A / N/A | 62MiB / 980MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
I can start up the VNC-server with "/opt/Turbovnc/bin/vncserver :1" This works
and i con connect to it. Running "vglrun glxgears within the VNC-session
unfortunatly returns:
[VGL] ERROR: could not open display :0.
To configure xorg i used nvidia-xconfig and vglserver_config. My xorg.conf now
looks like this:
(unfortunatly i was not able to get nvidia-xconfig inside of the container so i
ran it on the host-system and copyed it into the container after changing the
BusID.)
root@d4e2e94fa0b7:/# cat /etc/X11/xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 384.90 (buildmeister@swio-display-x86-rhel47-05)
Tue Sep 19 18:13:03 PDT 2017
Section "DRI"
Mode 0666
EndSection
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 710"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "UseDisplayDevice" "None"
SubSection "Display"
Virtual 1920 1080
Depth 24
EndSubSection
EndSection
I have to admit. I am kind of clueless.
This [Page](https://virtualgl.org/Documentation/HeadlessNV) suggests installing
virtualGL after the fact. I am trying this now but i will have to rebuild the
docker-image for that, which can take a while.
I hope you can point my in the right direction.
Best Regards
joscha Knobloch
________________________________
Von: [email protected] <[email protected]> im
Auftrag von DRC <[email protected]>
Gesendet: Freitag, 3. November 2017 19:43:14
An: [email protected]
Betreff: Re: AW: [VirtualGL-Users] Turbovnc and VirtualGL inside of a
nvidia-docker-container
Headless operation should be possible as long as the drivers are working
correctly. The first thing I would check is the output of 'lspci'.
That will tell you whether you can see the GPU inside of the Docker
container. For instance, this is how my nVidia GPU appears in the lspci
output:
02:00.0 VGA compatible controller: NVIDIA Corporation GK104GL [Quadro
K5000] (rev a1)
If you aren't seeing the GPU inside of the Docker container, then you're
dead in the water until you can fix that issue. Unfortunately I have no
advice regarding how to access a GPU from within a Docker container, as
I wasn't even aware that that was possible.
If and when you can see the GPU, then follow the instructions here:
https://virtualgl.org/Documentation/HeadlessNV
to create xorg.conf and enable it for headless operation.
On 11/3/17 1:16 PM, Joscha Knobloch wrote:
> Hey DRC,
>
>
> thank you for your help. I think you are right.
>
> The Problem (i guess) is that i am running headless inside of docker.
>
> I don't have a xorg.conf yet but i also don't know what i should write
> in there because i don't have a display connected to the machine.
>
>
> The Nvidia-readme file is HUGE.
> Can you tell me where i should take a look, to find out if i have access
> to the GPU inside my container and what i need to setup to let VirtualGL
> use the GPU?
>
>
>
> Best Regards
> Joscha Knobloch
>
> ------------------------------------------------------------------------
> *Von:* [email protected]
> <[email protected]> im Auftrag von DRC <[email protected]>
> *Gesendet:* Freitag, 3. November 2017 17:31:05
> *An:* [email protected]
> *Betreff:* Re: [VirtualGL-Users] Turbovnc and VirtualGL inside of a
> nvidia-docker-container
>
> It sounds as if the 3D X server is not using the nVidia drivers.
>
> /opt/VirtualGL/bin/glxinfo -display :0 -c
>
> should show "NVIDIA Corporation" as the client and server GLX vendor, as
> well as the OpenGL vendor. Double check /etc/X11/xorg.conf and make
> sure that "Driver" is set to "nvidia" (in the "Device" section.) If
> not, or if xorg.conf doesn't exist, then refer to nVidia's instructions
> (/usr/share/doc/NVIDIA_GLX-1.0/README.txt) for more info on how to
> configure it. If xorg.conf is configured properly, then check
> /var/log/Xorg.0.log for any error messages from the nVidia driver that
> may indicate why the GLX extension isn't being initialized.
>
> In short, this isn't a VirtualGL issue. It's a problem with the nVidia
> driver configuration. Once that is working properly, VirtualGL should
> work. In general, you should always verify that OpenGL is working
> properly (and is accelerated) on the 3D X server before attempting to
> use VirtualGL.
>
>
> On 11/3/17 8:30 AM, Joscha Knobloch wrote:
>> Hey,
>>
>> we need to run a Webbrowser inside of a Nvidia-docker container.
>> Therefore GL is needed (or it is going to be very slow).
>>
>> The Solution with VirtualGL looks like it could work but I was not yet
>> able to get GL-support inside of the docker-container.
>>
>> The newest Nvidia-driver is installed on the host-system. A "nvidia-smi"
>> tells me the docker-container has also recognized the GPU and has the
>> newest driver installed.
>> Inside of the container I installed the mate-desktop-environment,
>> virtualGL and Turbovnc. I can connect to the container via VNC and use
>> it, but GL is missing. Typing "vglrun glxgears" returns:
>> |Xlib: Extension "GLX" is mission on display ":0". Error: couldn't´t get
>> a RGB, Double-buffered visual
>> |
>> "vglrun glxinfo" does kind of tell the same story besides printing the
>> same message ~10 times.
>>
>> After finding your opengl-branch I build my setup on top of it, but I
>> still can´t get it to work.
>>
>> Do I need to setup VirtualGl somehow?
>> Do I maybe need to install Xvfb? (I read about that somewhere but I
>> didn't´t understand why it was necessary and how it would be used.)
>>
>> I hope you can help me with this.
>>
>> Best Regards
>> Joscha Knobloch
>
> --
> You received this message because you are subscribed to the Google
> Groups "VirtualGL User Discussion/Support" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/virtualgl-users/5ce9d881-d595-09e9-6883-f96f1943ae49%40virtualgl.org.
> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google
> Groups "VirtualGL User Discussion/Support" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected]
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/virtualgl-users/5c2ffe6e46b3494686e19d24e15636f7%40brm.de
> <https://groups.google.com/d/msgid/virtualgl-users/5c2ffe6e46b3494686e19d24e15636f7%40brm.de?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"VirtualGL User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/virtualgl-users/0f0c09b0-1e5f-618f-1a8c-0539c50721b2%40virtualgl.org.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"VirtualGL User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/virtualgl-users/cf7aff4ce7924c0eae52f6678e6309db%40brm.de.
For more options, visit https://groups.google.com/d/optout.