no screens detected

Adam Jackson ajax at nwnk.net
Thu Sep 10 20:18:16 UTC 2020


On Wed, 2020-09-09 at 16:56 +0000, Paul Kagan wrote:
> What do I do to get this to work?
>  
> x.org.log:
>  
> https://bsd.to/T3hR

The relevant bits of the log here are:

[ 53814.484] (--) PCI:*(0 at 0:2:0) 1013:00b8:1af4:1100 rev 0, Mem @ 0xfc000000/33554432, 0xfebd0000/4096, BIOS @ 0x????????/65536

This says your "video card" is the kind of Cirrus Logic GD-5446 that
qemu happens to have an emulator for. Which was not a great card even
when it was new, which was 1995. Then:

[ 53814.487] (II) Loading /usr/local/lib/xorg/modules/drivers/vesa_drv.so
[ 53814.487] (II) Module vesa: vendor="X.Org Foundation"
[ 53814.487] compiled for 1.20.8, module version = 2.4.0

Version 2.4.0 of the vesa driver is fairly old, but there isn't a new
version released yet. That's my fault, and here it would have saved you
some pain, because there's a bugfix since 2.4 that avoids the next
problem:

[ 53814.496] (EE) VESA(0): Specified fbbpp (24) is not a permitted value

The vesa driver tries to use a depth-24 framebuffer if possible.
However, the pathetic cirrus card that qemu emulates only supports
depth 24 at 24 bits per pixel, instead of the much more common and
performant 32 bits per pixel. Starting with xserver 1.20 the software
renderer no longer supports drawing to a 24bpp framebuffer, so when
vesa says "please use 24bpp it's all I have" the server says "nope" and
you crash.

I'll push out a new vesa driver release, since the current code in git
has a fix for this situation where it will use 16bpp instead. But I
strongly suggest you use literally any other emulated video card, and
not wait for the new driver release, because - again - the cirrus card
being emulated here is Not Good. If you're using qemu directly, saying
'-vga std' instead of cirrus will get you a much nicer basic graphics
experience than '-vga cirrus'. If you're using virt-manager or similar
you can configure this through the UI.

- ajax



More information about the xorg mailing list