Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DRM drivers are disabled by Kernel, GUI is slow, rebuilding HyperKit VM not possible #4581

Closed
ogryb opened this issue May 19, 2020 · 5 comments

Comments

@ogryb
Copy link

ogryb commented May 19, 2020

Description

While DRM drivers are included to HyperKit's modprobe.d/kms.conf file

options radeon modeset=1
options i915 modeset=1
options nouveau modeset=1

DRM itself is disabled at Kernel level:

/ # gunzip -c /proc/config.gz | grep DRM
# CONFIG_DRM is not set
# CONFIG_DRM_DP_CEC is not set
# CONFIG_DRM_XEN is not set

I've tried rebuilding HyperKit with custom updated Kernel using provided linuxkit.yml file, but it was not possible because desktop-host-tools image is private:

$ docker pull docker/desktop-host-tools:e881e43ded9958267f34ddc17c0bd3e2
Error response from daemon: pull access denied for docker/desktop-host-tools, repository does not exist or may require 'docker login': denied: requested access to the resource is denied


As a result, GUI apps like Chromium that require DRM drivers for fast rendering crash and the only way to run them is to disable GPU drivers all together, but that makes GUI extremely slow.

The best way of fixing it would be to allow re-building HyperKit VM from /etc/linuxkit.yml, but if 's not possible, please rebuild the VM with DRM enabled in Kernel.

  • [X ] I have tried with the latest version of my channel (Stable or Edge)
  • [X ] I have uploaded Diagnostics
  • Diagnostics ID: 0A890E52-9668-4B33-A3EE-F0C7CF027

Expected behavior

DRM drivers should be enabled and GUI apps requiring them should not crash

Actual behavior

DRM drivers are disabled at kernel level. GUI apps either crash or very slow.

Information

  • macOS Version: 10.15.4

Diagnostic logs

Docker for Mac: version 2.3.0.2

Steps to reproduce the behavior

  • Create a docker container with ArchLinux and LXDE enabled on Mac
  • Install XQuartz on Mac, make sure that it accept X11 connections in UI and through "xhost + 127.0.0.1"
  • Run lxsession inside the container
  • When LXDE becomes visible on Mac in XQuartz window, run chromium from a terminal to see the output:
$ chromium
[1203:1203:0516/185814.970352:ERROR:edid_parser.cc(102)] Too short EDID data: manufacturer id
[1203:1230:0516/185815.025320:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[1203:1230:0516/185815.025368:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[1203:1230:0516/185815.086814:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[1203:1230:0516/185815.086871:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[1203:1203:0516/185815.123042:ERROR:browser_switcher_service.cc(238)] XXX Init()
[1203:1277:0516/185815.232075:ERROR:object_proxy.cc(632)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[1203:1277:0516/185815.232668:ERROR:object_proxy.cc(632)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
....

Then disable GPU drivers and observe that Chromium works, but is very slow:

chromium --disable-gpu --disable-software-rasterizer --disable-dev-shm-usage
@docker-robott
Copy link
Collaborator

Issues go stale after 90 days of inactivity.
Mark the issue as fresh with /remove-lifecycle stale comment.
Stale issues will be closed after an additional 30 days of inactivity.

Prevent issues from auto-closing with an /lifecycle frozen comment.

If this issue is safe to close now please do so.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle stale

@brettwooldridge
Copy link

Bump. No comment from Docker, Inc?

@ogryb
Copy link
Author

ogryb commented Sep 1, 2020

That makes me think that HyperKit VM is poorly managed if at all. Since containers share the Kernel of that VM, and Kernel modules can not be added, the value of this solution is very limited. It's not Windows for God's sake, it's Linux, where recompiling Kernel or Kernel modules is a common thing.

@ogryb
Copy link
Author

ogryb commented Oct 1, 2020

/remove-lifecycle stale

@docker-robott
Copy link
Collaborator

Closed issues are locked after 30 days of inactivity.
This helps our team focus on active issues.

If you have found a problem that seems similar to this, please open a new issue.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle locked

@docker docker locked and limited conversation to collaborators Oct 31, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants