Re: Changing an app to use linux framebuffer

Stas Sergeev
2002-12-01T12:21:05Z

Hello.

Simon Bridger wrote:
> I want to use it in a console window. Unfortunately I get a message
> telling me there is no vesa driver.
Known problem:(
This largely depends on your video
card however.
Get a card where the extended registers
are accessable via the VGA registers -
and you have VESA. Old S3 and SiS cards
will do.
With a modern cards you are in troubles.

> Autotrax uses plug-in graphic drivers, and we have the source for
> these, and can easily change them.
Will not help.

> Is there any way of changing them to write directly into the linux
> kernel frame buffer?
There was a patch somewhere in the net
which does this using SDL, but this patch
seems to be dropped by its author:(
This was also an emulation however, so,
while being full-screen, it is still slow.

> Or indirectly through some calls in the DOSEMU system?
None currently available to deal with
a frame buffer AFAIK.

> Or to get the VESA drivers working?
That was my goal during the 4 month
recently. I've got VESA working, but,
as the kernel have only 128 bit for
the IO bitmap, you can't use an ioperm()
syscall to open all the necessary extended
registers of the card. So the
trap/iopl()/decode_instr technique was
used. This turned out to be even *much*
slower than an xdos:(
Fortunately the 2.5 kernels have a lazy
IO bitmap allocation scheme, so that the
size can be increased without any overhead.
I haven't played with 2.5 kernels yet.
If you really need to get VESA a go, you
have to enlarge an IO bitmap to 8K there
and I'll give you a code that enables
VESA under dosemu.
This work must be done sooner or later
by someone anyway. I don't have time to
play with a 2.5 kernel currently.