Bug 105235

Summary: virtual terminals unavailable/blank with vesa driver?
Product: [Retired] Red Hat Linux Reporter: David Kaplan <dmkaplan>
Component: XFree86Assignee: Mike A. Harris <mharris>
Status: CLOSED NOTABUG QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 9   
Target Milestone: ---   
Target Release: ---   
Hardware: athlon   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-09-26 00:16:57 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description David Kaplan 2003-09-25 00:15:08 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225

Description of problem:
When I press ctrl-alt-F1 (or F2, F3, etc) from X (gnome), the monitor switches
to a blank screen.  ctrl-alt-F7 brings me back to X as it should, but the
virtual terminals are useless.

I think this bug has something to do with the vesa X11 driver, as I have seen it
with two machines that use this driver, but none that don't.


Version-Release number of selected component (if applicable):
XFree86-4.3.0-2

How reproducible:
Always

Steps to Reproduce:
1.perhaps need to use vesa driver for X
2.press ctrl-alt-F1 to switch to a virtual terminal
3.
    

Actual Results:  completely blank screen

Expected Results:  login for virtual terminal should appear

Additional info:

Comment 1 Mike A. Harris 2003-09-25 12:21:06 UTC
The "vesa" driver technically does not really "do" anything.  It uses the
video card's BIOS and is completely reliant on the BIOS working properly.
If the BIOS is broken or nonfunctional/buggy, then the results of using
the vesa driver will reflect that.  The only way to fix this is to update
the video BIOS with a non-buggy one from your video hardware manufacturer.
It's rare however that manufacturers provide BIOS updates or fix these types
of problems.  As such, you're more likely out of luck if it doesn't work.

What video card are you using?

Comment 2 David Kaplan 2003-09-25 19:47:45 UTC
My video card is the GeoForce4 Ti 4200 AGP 8x.

I don't know very much about video drivers, but I am not convinced it has to do
with the BIOS.  The virtual terminals used to work with the NVIDIA closed source
drivers and with the nv driver, which makes me think that it is not a BIOS
problem.  I also saw this problem on a laptop with another NVIDIA card (not sure
which one).  

Thanks.

Comment 3 Mike A. Harris 2003-09-26 00:16:57 UTC
I do know very much about video drivers, and I am convinced that it _is_
the BIOS.  Also, the "vesa" driver is provided _only_ for hardware that
is _not_ supported by existing proper native video drivers in XFree86,
it isn't a supported driver, and that is mainly because 99.9% of all
problems experienced while using the vesa driver are because the BIOS
is buggy.  Video vendors don't really care very much about their VESA
BIOS because practically nothing out there even uses it at all.  They
provide full working drivers for Windows, and Mac, and many even for
Linux, and so having a working VESA VBE BIOS doesn't matter very much
for them.  About the only thing VESA VBE is good for, is for MSDOS 6.x
and old video games.  XFree86's "vesa" driver is probably one of the
only other few things that even have the option to use it.  Historically,
most video BIOSes are very buggy, and to get working VESA VBE support,
one would have to use Scitech UNIVBE video drivers in MSDOS.  Essentially,
the UNIVBE driver from Scitech was a complete video BIOS replacement done
in RAM as a loadable driver which took over the whole video BIOS more or
less.  They wrote their drivers for correctness, and tested them very
well, and as such, people using UNIVBE in DOS generally never experienced
problems while using their VBE support.  However, if you used the card's
native BIOS, then you had all kinds of untold horrors.  That situation
has gotten worse year by year ever since, because basically nothing out
there "requires" VESA VBE support, so vendors care very little about it
and their implementations are quite broken.  Scitech has test software
on their website which is pretty ancient and for MSDOS, and possibly
for windows, with which you can actually test your entire VESA BIOS, and
determine how compliant the BIOS is.  I believe it was called "unitest" or
something like that and was included in Scitech Display Doctor, of which
they might still have in a legacy section of their website.  More likely
than not if you run those tests, your computer will lock up with a very
broken display with flashing colours - indicating a very broken BIOS.  That
is my experience with VESA VBE for 8+ years.

It works with Nvidia binary drivers, because those drivers are native video
drivers that program the hardware directly, written by Nvidia engineers who
have total knowledge of the hardware operation, and the drivers save and
restore the video state _in_ the driver, NOT by using the VESA BIOS.

The BIOS is irrelevant for Nvidia's binary drivers or any other XFree86
native video driver.  (Technically there are a couple older drivers that
are native, but use the video BIOS for a few operations, but that is another
story.)

The XFree86 "vesa" driver, uses VESA VBE (Video BIOS Extensions) for
everything including video mode setup/restore, etc.  If the video BIOS is
broken, like many are, then things using the VESA BIOS will not work properly.

A video driver that is for specific hardware, by its very nature programs
that hardware directly, not through the possibly broken video BIOS, and so
a proper full video driver wont have this problem, or if it does then it
is a problem in that video driver.

We are unable to fix broken video BIOS's, and thus unable to fix this problem
for you with the unsupported "vesa" driver.  If you're using a GeForce 4, you
should be using the "nv" driver, not the "vesa" driver, as the "nv" driver
supports that card.  If you are having a problem with the "nv" driver also,
then that problem should be reported to XFree86.org via their bugzilla located
at http://bugs.xfree86.org where the "nv" driver maintainer Mark Vojkovich
from Nvidia can investigate the issue as he is the only person who has Nvidia's
hardware specifications, and as such he's the only one who can investigate
and fix problems int he "nv" driver. 

Sorry I am unable to provide any further assistance, but I hope this helps
to explain how the VESA BIOS is the problem here, and why it can't be fixed
unless one is an Nvidia BIOS engineer.

Closing report as NOTABUG, as this is a BIOS, and not XFree86 problem, and
also the "vesa" driver is unsupported (due to the reasons cited above).



Comment 4 David Kaplan 2003-09-26 02:04:57 UTC
OK.  I guess I don't know much about X drivers.  I thought that vesa was the
driver I was supposed to use since it seemed to be the only thing that worked
with certain NVIDIA cards and redhat-config-xfree86 directed me towards it at
some point (although now it indicates that nv is the correct driver).

Thanks


Comment 5 Mike A. Harris 2003-09-26 02:54:59 UTC
Correct..  Since XFree86 does not always contain support for all of the
current video hardware, if a given chip is not supported, we assign it to
the "vesa" driver in hopes that the driver happens to work for people.  In
some cases where the BIOS isn't totally broken, the driver does work for
some people, even though it's very slow, so it turns out to be useful for
people some of the time.

However, nowadays the "vesa" driver is getting more and more bug reports
filed against it which is indicative that the quality of newer video BIOSs
is going way down, and so this driver will probably be disabled in some
future release of the OS as it's slowly becoming more trouble than it's
worth for people unfortunately.  ;o/