# [Solved] Can't start X in VirtualBox: no screens found

## solamour

I updated a Gentoo guest (i.e. "emerge -vDuN @world" and kernel) in VirtualBox, and now X doesn't start anymore.

Xorg.0.log: https://pastebin.com/N1FuiZjj

```
[    90.506] (EE) Failed to load module "vboxvideo" (module does not exist, 0)

[    90.506] (EE) No drivers available.

[    90.506] (EE) 

Fatal server error:

[    90.531] (EE) no screens found(EE) 

```

dmesg: https://pastebin.com/UnLzhqN9

Sure enough, "lsmod" doesn't show "vboxvideo".

```
$ lsmod

Module                  Size  Used by

snd_hda_intel          32768  0

vboxguest             290816  0

snd_hda_codec         110592  1 snd_hda_intel

snd_hwdep              16384  1 snd_hda_codec

snd_hda_core           69632  2 snd_hda_intel,snd_hda_codec
```

"modprobe vboxvideo" does load the module, but "no screens found" problem persists. I'd appreciate any suggestions.

__

solLast edited by solamour on Thu Jul 11, 2019 3:15 am; edited 1 time in total

----------

## Tony0945

Is the guest runni8ng systemd or OpenRC? If OpenRC, which version?

----------

## solamour

 *Tony0945 wrote:*   

> Is the guest runni8ng systemd or OpenRC? If OpenRC, which version?

 

It has OpenRC.

```
[I] sys-apps/openrc

     Available versions:  0.34.11 0.38.3 0.38.3-r1 0.41.2 **9999 {audit bash debug ncurses +netifrc newnet pam prefix selinux static-libs unicode KERNEL="FreeBSD linux"}

     Installed versions:  0.41.2(22:04:53 07/06/19)(ncurses netifrc pam unicode -audit -bash -debug -newnet -prefix -selinux -static-libs KERNEL="linux -FreeBSD")

     Homepage:            https://github.com/openrc/openrc/

     Description:         OpenRC manages the services, startup and shutdown of a host

```

```
$ rc-status

Runlevel: default

 hdparm                                                            [  started  ]

 consolefont                                                       [  started  ]

 metalog                                                           [  started  ]

 sshd                                                              [  started  ]

 dbus                                                              [  started  ]

 net.enp0s3                                                        [  started  ]

 netmount                                                          [  started  ]

 local                                                             [  started  ]

Dynamic Runlevel: hotplugged

Dynamic Runlevel: needed/wanted

Dynamic Runlevel: manual

```

__

sol

----------

## NeddySeagoon

solamour,

The vboxvideo module is the video driver for Xorg, not a kernel module.

What do you have in the guests VIDEO_CARDS in make.conf ?

----------

## Tony0945

two things:

1. try "rc-update add modules boot"  I'm not sure that's needed on late OpenRC, but try it.

2. Make sure vboxvideo is built as a module:

```
TUX ~ # zgrep VBOX /proc/config.gz

CONFIG_VBOXGUEST=m

CONFIG_DRM_VBOXVIDEO=m

```

----------

## solamour

 *NeddySeagoon wrote:*   

> 
> 
> What do you have in the guests VIDEO_CARDS in make.conf ?

 

I have the following.

```
VIDEO_CARDS="virtualbox"
```

```
[ebuild   R    ] x11-base/xorg-drivers-1.20::gentoo  INPUT_DEVICES="evdev -elographics -joystick -keyboard -libinput -mouse -synaptics -vmmouse -void -wacom" VIDEO_CARDS="virtualbox -amdgpu -ast -dummy -fbdev (-freedreno) (-geode) -glint -i915 -i965 -intel -mga -nouveau -nv -nvidia (-omap) -qxl -r128 -radeon -radeonsi -siliconmotion (-tegra) (-vc4) -vesa -via -vmware" 0 KiB
```

And I just verified both "CONFIG_VBOXGUEST" and "CONFIG_DRM_VBOXVIDEO" are built as modules.

__

sol

----------

## NeddySeagoon

solamour,

Don't use a /etc/X11/xorg.conf file. Let the automatics do their thing.

```
[    90.479] (==) Using config file: "/etc/X11/xorg.conf"

[    90.491] (==) Using config directory: "/etc/X11/xorg.conf.d"

[    90.506] (==) Using system config directory "/usr/share/X11/xorg.conf.d"

[    90.506] (==) ServerLayout "Default Layout"

[    90.506] (**) |-->Screen "Screen-vboxvideo" (0)

[    90.506] (**) |   |-->Monitor "<default monitor>"

[    90.506] (**) |   |-->Device "Device-vboxvideo"
```

The autodetect is missing from your Xorg.0.log. 

What does 

```
emerge -1pv x11-drivers/xf86-video-vboxvideo
```

show. Is it N for New or R for rebuild.

If its N, emerge it because you need it.

----------

## solamour

[Update Dec 2020]

VirtualBox 6.x now recommends VMSVGA ("VMware SVGA II Adapter") for Linux guests. Perhaps it's related, but now "x11-libs/libdrm" and "media-libs/mesa" don't have "virtualbox" USE flag anymore.

```
[?] x11-libs/libdrm

     Available versions:  2.4.82^t 2.4.88^t ~2.4.89^t **9999^t {libkms static-libs valgrind ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32" VIDEO_CARDS="amdgpu exynos freedreno intel nouveau omap radeon tegra vc4 vivante vmware"}

     Installed versions:  2.4.102^t(10:13:11 AM 12/07/2020)(libkms -valgrind ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="64 -32 -x32" VIDEO_CARDS="vmware -amdgpu -exynos -freedreno -intel -nouveau -omap -radeon -tegra -vc4 -vivante")

[?] media-libs/mesa

     Available versions:  17.1.10^d 17.2.8^d ~17.3.3^d ~18.0.0_rc2^d **9999^d {bindist +classic d3d9 debug +dri3 +egl +gallium +gbm gles1 gles2 +llvm +nptl opencl openmax osmesa pax_kernel pic selinux unwind vaapi valgrind vdpau vulkan wayland xa xvmc ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32" VIDEO_CARDS="freedreno i915 i965 imx intel nouveau r100 r200 r300 r600 radeon radeonsi vc4 virgl vivante vmware"}

     Installed versions:  20.1.10^t(10:18:35 AM 12/07/2020)(X classic dri3 egl gallium gbm gles2 llvm xa zstd -d3d9 -debug -gles1 -lm-sensors -opencl -osmesa -selinux -test -unwind -vaapi -valgrind -vdpau -vulkan -vulkan-overlay -wayland -xvmc ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="64 -32 -x32" KERNEL="linux" VIDEO_CARDS="vmware -freedreno -i915 -i965 -intel -iris -lima -nouveau -panfrost -r100 -r200 -r300 -r600 -radeon -radeonsi -vc4 -virgl -vivante")

```

So now I switched to VMSVGA and updated the kernel accordingly.

```
/etc/portage/make.conf

    VIDEO_CARDS="vmware"

Device Drivers

    Graphics support

        DRM driver for VMware Virtual GPU (CONFIG_DRM_VMWGFX)

            Enable framebuffer console under vmwgfx by default (DRM_VMWGFX_FBCON)

        Virtual Box Graphics Card (CONFIG_DRM_VBOXVIDEO)

```

Oddly, checking "Enable 3D Acceleration" in the guest's Display setting degraded the 3D performance.

[Original Post]

Here is something I didn't know before.

VirtualBox provides 3 different video settings: VBoxVGA, VMSVGA, and VBoxSVGA (https://docs.oracle.com/cd/E97728_01/F12470/html/gui-changes.html). VBoxVGA and VBoxSVGA are recognized as "InnoTek Systemberatung GmbH VirtualBox Graphics Adapter", while VMSVGA as "VMware SVGA II Adapter".

VMSVGA: This is the default setting for Linux guest, and there isn't much to add in the kernel configuration. "VIDEO_CARDS" should have the right value, though.

```
/etc/portage/make.conf

VIDEO_CARDS="vmware"

```

If you change "VIDEO_CARDS", you might as well do "emerge -v libdrm mesa xorg-drivers", just for the good measure.

VBoxSVGA: This is the default setting for Windows guest, but it works in Linux as well if you include the following setting.

```
Device Drivers

    Staging drivers (STAGING)

        Virtual Box Graphics Card (DRM_VBOXVIDEO)

/etc/portage/make.conf

VIDEO_CARDS="virtualbox"

```

Again, if you change "VIDEO_CARDS", it might be a good idea to rebuild "libdrm mesa xorg-drivers".

Also, unlike what "app-emulation/virtualbox-guest-additions" says at the end of emerge, remove "/etc/X11/xorg.conf" in both cases and let X do its thing, as @NeddySeagoon mentioned. Thank you everyone for taking time to share your thoughts.

__

sol

----------

