No VESA VBE DDC data on Linux / X / KDE boot --> bad DPI value --> font too big

Jeff B JeffBatHome at myLetters.US
Mon Dec 7 14:51:34 PST 2009


I originally posted this in and got a response that I 
should post this here, so I am.  See my original post below or at

I spent a fair amount of time poking around on the web looking for a 
solution to this.  There was a work-around, ie force X to use the right 
Dots Per Inch figure no matter what LIBVBE.SO says, but that's not a 
solution which can benefit anyone besides me.

One thing I did note were MANY references to X not recognizing this or 
that device which also contained the error message "VESA VBE DDC Level 
none", and I have to wonder if they are having the same problem which is 
just showing up a different way.  At the time I write this Google gets 
"about 21,600" hits on "VESA VBE DDC Level none", so it may be a bigger 
problem than just what I am seeing.

RSVP.  Thanks in advance.

Jeff B.



I've been having a problem booting Linux (Slackware 12.2) / X / KDE on 
two of my machines. The SYMPTOM is that the fonts are too big once 
everything is up.

More accurately, MOST of the time (NOT all of the time) when X / KDE 
starts after a Linux boot the characters on screen are too large. On the 
other hand, MOST of the time (but not all of the time) I can get the 
characters to be the right size by using Ctl-Alt-Backspace to restart X 
/ KDE.

Further, I see this problem on two different machines with two different 
motherboards, plus I did not have the problem until I installed 
Slackware 12.2, so I don't believe it's a hardware fault or a 
device-specific driver fault. Earlier versions of Slackware had run on 
both these machines for some time with no problem like this.

I did some investigating and found differences in the Xorg.0.log files 
between the times when the characters are too big and when they come out 
to be the right size. The differences are summarized as follows:

Xorg.0.log / Characters too big:
. . .
(II) VESA(0): VESA VBE DDC Level none
(II) VESA(0): VESA VBE DDC transfer in appr. 0 sec.
(II) VESA(0): VESA VBE DDC read failed
[No VBE DDC info]
. . .
(--) VESA(0): Virtual size is 1024x768 (pitch 1024)
. . .
(==) VESA(0): DPI set to (96, 96)

Xorg.0.log / Characters right size:
. . .
(II) VESA(0): VESA VBE DDC Level 2
(II) VESA(0): VESA VBE DDC transfer in appr. 1 sec.
(II) VESA(0): VESA VBE DDC read successfully
[Lots of VBE DDC info]
. . .
(II) VESA(0): My Monitor: Using maximum pixel clock of 140.00 MHz
(--) VESA(0): Virtual size is 1024x768 (pitch 1024)
. . .
(**) VESA(0): Display dimensions: (390, 290) mm
(**) VESA(0): DPI set to (66, 67)

When KDE is given an incorrect (higher) pixel DPI (96,96) value, then it 
is going to use more X and Y pixels to form characters, and when those 
characters rendered on a screen with an actual DPI of (66,67) the 
characters will be too large.

Obviously the problem is in obtaining the VESA VBE DDC data in the first 
place, leading to incorrect pixel DPI values. Fetching VESA VBE DDC data 
is done in /usr/lib/xorg/modules/, or at least that is where 
the VESA VBE DDC <whatever> messages exist.


X.Org X Server 1.4.2
Release Date: 11 June 2008
X Protocol Version 11, Revision 0
Build Operating System: Slackware 12.1 Slackware Linux Project

Slackware: 12.2.0 patched up to date (Note xorg built for Slackware 12.1)

Linux: is in the Slackware package "xorg-server-1.4.2-i486-1"

KDE version: 3.5.10

This whole thing feels like a race condition in or around such 
that sometimes it works and sometimes it doesn't. Anyone know of a real 
fix for this, ie not a work-around forcing the DPI to the correct value 
in some X parameter file.?

Thanks in advance.

Jeff B.

More information about the xorg mailing list