Beta Testers required to test generic i386 graphics framebuffer device

Ian Collier (imc@comlab.ox.ac.uk)
Thu, 2 Apr 1998 17:46:55 +0100 (BST)


Beta Testers required to test generic i386 graphics framebuffer device
(Subtitled: 16-bit full screen graphics on my NeoMagic laptop?)

Note - this announcement has been posted to the following lists:
linux-laptop (to inform NeoMagic owners)
linux-kernel (because it is a kernel device driver)
linux-x11 (since it has to do with graphics)

Description

Currently, graphical support for i386 Linux (whether via X, svgalib
or GGI) requires a low-level hardware driver to be written for each
different video chipset. This means that whenever a new chipset is
released there will be an inevitable delay before support is available.
Worse, it means that support is poor or entirely lacking for chipsets
made by uncooperative manufacturers (see NeoMagic). This is a particular
problem on laptop machines which are ever evolving and do not offer the
possibility of a video card switch when you get the machine home and
discover that its video chipset is unsupported in XFree86.

VBE 2.0 is a standard set of BIOS extensions, the specification for which
was published in November 1994 by VESA. If the manufacturers of a machine
or its video card provided a BIOS conforming to this specification then it
should be possible to use BIOS calls to support graphics on that machine
under Linux. The driver which this announcement describes is an attempt
to allow just that using ioctl calls on a device file. I do not know
how widespread VBE 2.0 is, but my machine has it and it wasn't specially
selected for its BIOS.

The VBE driver has both an obvious advantage and an obvious disadvantage.
The advantage is that it will work straight away on new chipsets even
without any information on how the hardware should be programmed.
The disadvantage is that it cannot provide hardware acceleration: all
it can provide is a frame buffer which can be mapped into a process's
address space. The driver also has restrictions: the BIOS must support
VBE 2.0, and it will not work if Linux is booted via DOS or Windows
(although in the latter case it is possible that individual users could
hack in an appropriate customisation). It is also untested on SMP kernels.

Details

The driver is provided in the form of source patches for a clean 2.0.33
kernel source tree. It is likely to work on other 2.0 kernels but has
not been tested on 2.1 kernels and is unlikely to work unaltered. The
driver comes with a section 4 man page and also a demo program which can
be used to test the driver. This has been tested on precisely one
machine, namely my IBM ThinkPad 380D (with NeoMagic NM2093 chipset).

Who can help

Anyone with an Intel-based machine and a 2.0.x kernel who knows how to
patch and compile a kernel can help by reporting whether the driver does
or does not work. I'd like to get some sort of idea as to how common
VBE 2.0 is as well as how stable the driver is. (Standard disclaimer:
I would like to think this will not crash your machine even if you don't
have a compliant BIOS and that it should just output a helpful message
explaining what's wrong. As ever, however, this is free software and
comes with no warranty.)

Kernel hackers can also help in more specialised ways, as follows.

SMP hackers

I ignored all the SMP stuff in the kernel (sorry) so don't know how
it will work. Perhaps have a look at the code before finding that
it halts your machine...

Intel architecture hackers

Pick holes in the source code. Finding a way of making it a bit less
of a hack might be an admirable, if perhaps impossible, goal.

X hackers

Having an X server to work on this driver would be a big help.

Non-Intel hackers

Some architectures already have frame buffer devices, and this one
is probably completely incompatible with them (so far I haven't seen
any docs for those devices). Are there any simple changes which could
be made to the interface to make it a bit more similar?

Obtaining the driver

Download the package from
<http://www.comlab.ox.ac.uk/oucl/users/ian.collier/vbe-0.1.tar.gz>
and unpack. The file INSTALL contains brief instructions on
what to do and the ANNOUNCE file contains this announcement.
Please send the results to...

Ian Collier
imc@comlab.ox.ac.uk

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu