[vbox-dev] 3d pass-through and gnome-shell ?

Hans de Goede hdegoede at redhat.com
Tue Jun 27 13:17:20 GMT 2017


Hi,

On 06/27/2017 01:46 PM, Michael Thayer wrote:
> Hello Hans,
> 
> 27.06.2017 11:38, Hans de Goede wrote:
>> Hi,
>>
>> On 27-06-17 11:34, Michael Thayer wrote:
>>> Hello Hans,
>>>
>>> 26.06.2017 18:12, Hans de Goede wrote:
>>> [Discussion of 3D problems in Fedora VirtualBox guests and ld.so.conf
>>> trickery used to put 3D libraries in place, but not completing in time
>>> for the display manager.]
>>>> Ok, I understand, this is easy to fix:
>>>>
>>>> 1) Split out the bits which do the ld.so.conf trickery from the rest of
>>>> the guest service, so that we've a binary or script which will run, do
>>>> the ld.so.conf stuff if necessary and then exit. The idea here is that
>>>> the exit of the process indicates the ld.so.conf stuff is done.
>>>>
>>>> 2) Give this its own systemd .service file with:
>>>>
>>>> [Unit]
>>>> Before=display-manager.service
>>>>
>>>> [Service]
>>>> Type=oneshot
>>>> RemainAfterExit=yes
>>>>
>>>> And then systemd will not start gdm until the ld.so.conf stuff has
>>>> finished
>>>>
>>>> 3) profit :)
>>>
>>> Or just add display-manager.service to the Before= line in
>>> vboxadd.service.
>>
>> But that service keeps running right ? Is it of the forking type ?
>> And does it do the ld.so setup before forking ? If not then things
>> will still be racing, because the service must not just have started,
>> it must also have done the ld.so setup.
> 
> The service is mislabled - it should actually be a oneshot, and it does
> not fork at all.  It is simply this way because systemd service files
> are generated at install time from our sysv init scripts and once they
> were working well enough I no longer found free time to polish them further.

Ah, ok, yes just making it oneshot and add the Before is fine then :)

>>> In fact, the other things in there are needed for the
>>> 3D support detection too.  I tested this and it lets me start both a
>>> Wayland session and an accelerated X11 one.
>>
>> Cool!
>>
>>>> Note we would still need to figure out a way to make gdm use X11 if
>>>> Wayland will not work with the 3d pass-through, but that is easy too,
>>>> simplest way is to edit:
>>>>
>>>> /etc/gdm/custom.conf
>>>>
>>>> And in the [daemon] Section set:
>>>> WaylandEnable=false
>>>
>>> I did think of this, though given the number of problems our 3D has on
>>> Linux guests I am still wondering whether it is worth it just now.
>>
>> Would it not be better to try and fix those issues ? I believe that 3D
>> pass through is an important feature to have.
> 
> It would probably be better, but as I mentioned previously, 3D for Linux
> guests is currently more or less on hold due to lack of time to develop
> it and other things with higher priority.  For when (I sometimes fear
> that is an "if") I do find the time, we are also considering other
> options which might be more result for less work.  One of these would be
> bolting on Dave Airlie's virtio-gpu pass-through to our device.

Hmm, interesting!

> He
> designed the 3D protocol in a nice modular way (host side too) which is
> not tightly tied to the Qemu device.  Another would be polishing up the
> VMWare graphics emulation which was contributed a couple of years back.
> 
>>> For example Fedora 26 Alpha hangs loading the session (or at boot with
>>> the
>>> Before= fix) when 3D is enabled.
>>
>> Yes this is what I'm seeing (I'm using Fedora 26 beta) note it does not
>> hang it just shows a black screen, you can do host-key + F3 (so send
>> ctrl+alt+F3) to get a text console. Looking at ps aux output it seems
>> that gnome-shell is not running, I've not yet dug any deeper.
> [...]
> 
> By the way, regarding Additions for RHEL, one reason you might want to
> do that is that VirtualBox is rather a nice tool for preparing images
> for use elsewhere.  Though of course the Additions are most useful if
> those images have a graphical desktop, which may often not be the case.

Back to 3d passthrough any idea why F26 is showing a black screen ?

Regards,

Hans



More information about the vbox-dev mailing list