* Finding Aki M Laukkanen's VESAFBD project?
@ 2003-03-14 18:37 Kendall Bennett
2003-03-14 18:56 ` Jon Smirl
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Kendall Bennett @ 2003-03-14 18:37 UTC (permalink / raw)
To: linux-fbdev-devel
Hi Guys,
A long time ago in early 2000, Aki M Laukkanen was a guy working on a
VESA framebuffer console daemon for Linux. This driver was structured as
a as a user land daemon that the kernel vesafb console driver would call
back into once the system was up, allowing the userland VESA driver to
use the vm86() service to change modes, program the palette and other
useful things that can't be done by the basic VESA driver that uses a
mode set previously by LILO or GRUB.
After some research I discovered that unfortunately Aki was killed in an
accident in January 2001, and hence this project was forgotten about. I
would very much like to resurrect this project and complete it on Aki's
behalf. Below is the original announcement email from Aki in January
2000, but none of the links work anymore. If anyone downloaded this code
at the time or knows where to find the code that Aki was working on,
please let me know.
--- cut here ----
Subject: [ANNOUNCE] vesafb full VBE 2.0 support
From: Aki M Laukkanen (amlaukka@cc.helsinki.fi)
Date: Sat Jan 22 2000 - 09:21:48 EST
Patch to vesafb adds support for communicating with a user-space daemon.
This user-space daemon uses the LRMI library by Josh Vanderhoof (need his
e-mail) to call real-mode VBE 2.0 functions to set the mode, pan the
display and perform other framebuffer functions. Thanks to Alan Cox for
the idea and mailing the LRMI library.
This is a very preliminary version and released because it works for me.
Your mileage may vary. The communication between kernel/user-space is
achieved via a special character device file (/dev/vesafb).
~$ file /dev/vesafb
/dev/vesafb: character special (10/180)
When vesafbd successfully opens the vesafb device, the `dummy' functions
in the vesafb driver are overrided with the ones capable of communicating
with the daemon. Issued FB ioctls are then added to a request/reply queue
which is processed by the device read/write functions. A queue is needed
because console switching is done from an interrupt context.
In practice this seems to work quite well. Even panning (for example in
X) is completely smooth on my Pentium/133. By default the patch writes a
lot of debug info but this may be omitted by commenting out the DEBUG
define in the code. The patch itself is against 2.3.x (I doubt there has
been any changes during that time) but needs only small changes to work
with 2.2.x.
Download from:
http://www.cs.helsinki.fi/u/amlaukka/vesafb/
I've also setting up a web page at:
http://www.cs.helsinki.fi/u/amlaukka/vesafb.html
---- cut here ----
Regards,
---
Kendall Bennett
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
http://www.scitechsoft.com
~ SciTech SNAP - The future of device driver technology! ~
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-14 18:37 Finding Aki M Laukkanen's VESAFBD project? Kendall Bennett
@ 2003-03-14 18:56 ` Jon Smirl
2003-03-14 19:42 ` Kendall Bennett
2003-03-15 9:52 ` Geert Uytterhoeven
2003-03-16 23:00 ` Antonino Daplas
2 siblings, 1 reply; 11+ messages in thread
From: Jon Smirl @ 2003-03-14 18:56 UTC (permalink / raw)
To: Kendall Bennett, linux-fbdev-devel
Most of the code your need is located in the x86emu-XX
files on the ftp.scitechsoft.com server. x86emu has
all of the VBIOS support for calling the INT
functions. You would just need to hook it up so that
the fb drivers can call it.
But wouldn't the time be better spent on getting the
info out of the board manufacturers that would allow
protected mode versions of these routines to be
implemented? With that info we could eliminate the
need for this VM86 stuff forever.
=====
Jon Smirl
jonsmirl@yahoo.com
__________________________________________________
Do you Yahoo!?
Yahoo! Web Hosting - establish your business online
http://webhosting.yahoo.com
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-14 18:56 ` Jon Smirl
@ 2003-03-14 19:42 ` Kendall Bennett
2003-03-14 20:11 ` Jon Smirl
0 siblings, 1 reply; 11+ messages in thread
From: Kendall Bennett @ 2003-03-14 19:42 UTC (permalink / raw)
To: linux-fbdev-devel
Jon Smirl <jonsmirl@yahoo.com> wrote:
> Most of the code your need is located in the x86emu-XX files on the
> ftp.scitechsoft.com server.
Er, did you check my email address? I am the maintainer of the x86emu
project on our site ;-)
> x86emu has all of the VBIOS support for calling the INT functions.
> You would just need to hook it up so that the fb drivers can call
> it.
Yes, but it is a BIOS emulator only. What I am looking for is the code
that Aki did that allowed the kernel mode VESA fbdev driver call out into
a userland daemon to do the actual calls to the BIOS. Whether the calls
are made using the x86emu emulator (for non-x86 platforms) or via the
real BIOS is irrelevant. What is important is the userland daemon hookup;
that is what I am looking for.
Regards,
---
Kendall Bennett
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
http://www.scitechsoft.com
~ SciTech SNAP - The future of device driver technology! ~
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-14 19:42 ` Kendall Bennett
@ 2003-03-14 20:11 ` Jon Smirl
2003-03-14 22:57 ` Kendall Bennett
0 siblings, 1 reply; 11+ messages in thread
From: Jon Smirl @ 2003-03-14 20:11 UTC (permalink / raw)
To: Kendall Bennett, linux-fbdev-devel
I noticed the email but I wasn't sure if you knew
about the code from the way your mail was worded.
I used fasync and poll to implement user space
communications in a driver I just finished. Use
kill_fasync(&fasync, SIGIO) from the device driver to
signal the user app. The signal causes the app to poll
which the driver replies POLLIN to. Polling identifies
which device caused the signal. Now the user app knows
it needs to IOCTL the handle to do whatever the driver
needs it to. It only takes about 100 lines of code to
implement the communication.
google for: fasync sigio user
=====
Jon Smirl
jonsmirl@yahoo.com
__________________________________________________
Do you Yahoo!?
Yahoo! Web Hosting - establish your business online
http://webhosting.yahoo.com
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-14 20:11 ` Jon Smirl
@ 2003-03-14 22:57 ` Kendall Bennett
2003-03-14 23:22 ` Jon Smirl
0 siblings, 1 reply; 11+ messages in thread
From: Kendall Bennett @ 2003-03-14 22:57 UTC (permalink / raw)
To: linux-fbdev-devel
Jon Smirl <jonsmirl@yahoo.com> wrote:
> I noticed the email but I wasn't sure if you knew about the code
> from the way your mail was worded.
;-)
> I used fasync and poll to implement user space communications in a
> driver I just finished. Use kill_fasync(&fasync, SIGIO) from the
> device driver to signal the user app. The signal causes the app to
> poll which the driver replies POLLIN to. Polling identifies which
> device caused the signal. Now the user app knows it needs to IOCTL
> the handle to do whatever the driver needs it to. It only takes
> about 100 lines of code to implement the communication.
Does the user space daemon block waiting to be woken up from the kernel
module? I think the way Aki had it done initially was to have the user
space daemon call into the kernel via an ioctl() or something, and the
kernel would block on that thread and when something needed to be done,
it would fill in the return structure for the ioctl() and then unblock
the thread. The user space daemon would process the ioctl() and and then
call it agin once the service was completed.
Does that system make sense at all?
Thanks!
---
Kendall Bennett
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
http://www.scitechsoft.com
~ SciTech SNAP - The future of device driver technology! ~
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-14 22:57 ` Kendall Bennett
@ 2003-03-14 23:22 ` Jon Smirl
0 siblings, 0 replies; 11+ messages in thread
From: Jon Smirl @ 2003-03-14 23:22 UTC (permalink / raw)
To: Kendall Bennett, linux-fbdev-devel
You can do it either way. With blocking IO you would
need one thread per adapter. With the signal method
you can be single threaded and sleep waiting for a
signal. Both styles will work.
With single threaded you make an array of handles for
the framebuffers. When you get a signal you do poll()
on the array. For each active poll you will need to do
the IOCTL. Keep looping on poll/IOCTL until the poll
goes inactive, then sleep waiting for a SIGIO.
--- Kendall Bennett <KendallB@scitechsoft.com> wrote:
> Jon Smirl <jonsmirl@yahoo.com> wrote:
>
> > I noticed the email but I wasn't sure if you knew
> about the code
> > from the way your mail was worded.
>
> ;-)
>
> > I used fasync and poll to implement user space
> communications in a
> > driver I just finished. Use kill_fasync(&fasync,
> SIGIO) from the
> > device driver to signal the user app. The signal
> causes the app to
> > poll which the driver replies POLLIN to. Polling
> identifies which
> > device caused the signal. Now the user app knows
> it needs to IOCTL
> > the handle to do whatever the driver needs it to.
> It only takes
> > about 100 lines of code to implement the
> communication.
>
> Does the user space daemon block waiting to be woken
> up from the kernel
> module? I think the way Aki had it done initially
> was to have the user
> space daemon call into the kernel via an ioctl() or
> something, and the
> kernel would block on that thread and when something
> needed to be done,
> it would fill in the return structure for the
> ioctl() and then unblock
> the thread. The user space daemon would process the
> ioctl() and and then
> call it agin once the service was completed.
>
> Does that system make sense at all?
>
> Thanks!
>
> ---
> Kendall Bennett
> Chief Executive Officer
> SciTech Software, Inc.
> Phone: (530) 894 8400
> http://www.scitechsoft.com
>
> ~ SciTech SNAP - The future of device driver
> technology! ~
>
>
>
>
-------------------------------------------------------
> This SF.net email is sponsored by:Crypto Challenge
> is now open!
> Get cracking and register here for some mind
> boggling fun and
> the chance of winning an Apple iPod:
>
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
> _______________________________________________
> Linux-fbdev-devel mailing list
> Linux-fbdev-devel@lists.sourceforge.net
>
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel
=====
Jon Smirl
jonsmirl@yahoo.com
__________________________________________________
Do you Yahoo!?
Yahoo! Web Hosting - establish your business online
http://webhosting.yahoo.com
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-14 18:37 Finding Aki M Laukkanen's VESAFBD project? Kendall Bennett
2003-03-14 18:56 ` Jon Smirl
@ 2003-03-15 9:52 ` Geert Uytterhoeven
2003-03-17 18:22 ` Kendall Bennett
2003-03-16 23:00 ` Antonino Daplas
2 siblings, 1 reply; 11+ messages in thread
From: Geert Uytterhoeven @ 2003-03-15 9:52 UTC (permalink / raw)
To: Kendall Bennett; +Cc: Linux Frame Buffer Device Development
On Fri, 14 Mar 2003, Kendall Bennett wrote:
> After some research I discovered that unfortunately Aki was killed in an
> accident in January 2001, and hence this project was forgotten about. I
Oops...
> would very much like to resurrect this project and complete it on Aki's
> behalf. Below is the original announcement email from Aki in January
> 2000, but none of the links work anymore. If anyone downloaded this code
> at the time or knows where to find the code that Aki was working on,
> please let me know.
> Download from:
> http://www.cs.helsinki.fi/u/amlaukka/vesafb/
Since the code used to be at a university webserver, you may want to ask the
sysadmin team of cs.helsinki.fi whether they have a backup.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-14 18:37 Finding Aki M Laukkanen's VESAFBD project? Kendall Bennett
2003-03-14 18:56 ` Jon Smirl
2003-03-15 9:52 ` Geert Uytterhoeven
@ 2003-03-16 23:00 ` Antonino Daplas
2003-03-17 18:22 ` Kendall Bennett
2 siblings, 1 reply; 11+ messages in thread
From: Antonino Daplas @ 2003-03-16 23:00 UTC (permalink / raw)
To: Kendall Bennett; +Cc: Linux Fbdev development list
On Sat, 2003-03-15 at 02:37, Kendall Bennett wrote:
> Hi Guys,
>
> A long time ago in early 2000, Aki M Laukkanen was a guy working on a
> VESA framebuffer console daemon for Linux. This driver was structured as
> a as a user land daemon that the kernel vesafb console driver would call
> back into once the system was up, allowing the userland VESA driver to
> use the vm86() service to change modes, program the palette and other
> useful things that can't be done by the basic VESA driver that uses a
> mode set previously by LILO or GRUB.
That is a very neat project :-) It can also be expanded to something
not just the VESA driver will use, but as a general interface whenever
the BIOS services are to be needed. I can already think several uses
for it (warmboot secondary cards, save/restore current video state,
disable/enable the display, DDC/EDID, etc). I will be very interested if
that project is revived.
BTW: I want to initialize multiple VGA adapters during the early boot
sequence. The machine will be in real mode, so there's no such thing as
copy-on-write. I'm pretty sure it's not possible, but do you know of a
way to disable the BIOS write protection of the C000:0000 segment?
Tony
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-16 23:00 ` Antonino Daplas
@ 2003-03-17 18:22 ` Kendall Bennett
2003-03-17 21:39 ` Antonino Daplas
0 siblings, 1 reply; 11+ messages in thread
From: Kendall Bennett @ 2003-03-17 18:22 UTC (permalink / raw)
To: Linux Fbdev development list
Antonino Daplas <adaplas@pol.net> wrote:
> > A long time ago in early 2000, Aki M Laukkanen was a guy working on a
> > VESA framebuffer console daemon for Linux. This driver was structured as
> > a as a user land daemon that the kernel vesafb console driver would call
> > back into once the system was up, allowing the userland VESA driver to
> > use the vm86() service to change modes, program the palette and other
> > useful things that can't be done by the basic VESA driver that uses a
> > mode set previously by LILO or GRUB.
>
> That is a very neat project :-) It can also be expanded to
> something not just the VESA driver will use, but as a general
> interface whenever the BIOS services are to be needed.
Yes, it could. It also doesn't need to be used just for VESA/BIOS
services, but could be used to implement real mode fbconsole drivers
using existing driver modules from XFree86 if desired.
> BTW: I want to initialize multiple VGA adapters during the early
> boot sequence. The machine will be in real mode, so there's no
> such thing as copy-on-write. I'm pretty sure it's not possible,
> but do you know of a way to disable the BIOS write protection of
> the C000:0000 segment?
I don't think it is possible to do this because the BIOS is in ROM on the
graphics card. If the system BIOS is shadowing it (quite likely) then it
would be possible, but you would need to know how to disable the write
protection in the system chipset which is probably different for each
motherboard.
The other option is to use the x86emu BIOS emulator project. Then you
don't need to do any of this stuff and instead can warm boot all the
graphics controllers using the BIOS from the card (see the sample
'warmboot' program included in the source code archives). The code is
presently 32-bit specific I believe, so you would have two choices for
running this from real mode - port the code to a 16-bit C compiler or
port it to run in 32-bit real mode. I assume you are probably thinking of
during the boot phase of GRUB or LILO, so at that point you will have
full control and should be able to execute 32-bit real mode code. You may
even be able to put the machine into protected mode and run the code as
32-bit protected mode code also if needed (but you would need to then
write your own protected mode kernel).
The BIOS emulator code is available from:
ftp://ftp.scitechsoft.com/devel/x86emu
I think...
Regards,
---
Kendall Bennett
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
http://www.scitechsoft.com
~ SciTech SNAP - The future of device driver technology! ~
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-15 9:52 ` Geert Uytterhoeven
@ 2003-03-17 18:22 ` Kendall Bennett
0 siblings, 0 replies; 11+ messages in thread
From: Kendall Bennett @ 2003-03-17 18:22 UTC (permalink / raw)
To: Linux Frame Buffer Device Development
Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > Download from:
> > http://www.cs.helsinki.fi/u/amlaukka/vesafb/
>
> Since the code used to be at a university webserver, you may want
> to ask the sysadmin team of cs.helsinki.fi whether they have a
> backup.
Good point. Do you have an email contact there or should I just email
them at postmaster or something? I will go dig around and see if I can
find a contact.
Regards,
---
Kendall Bennett
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
http://www.scitechsoft.com
~ SciTech SNAP - The future of device driver technology! ~
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Finding Aki M Laukkanen's VESAFBD project?
2003-03-17 18:22 ` Kendall Bennett
@ 2003-03-17 21:39 ` Antonino Daplas
0 siblings, 0 replies; 11+ messages in thread
From: Antonino Daplas @ 2003-03-17 21:39 UTC (permalink / raw)
To: Kendall Bennett; +Cc: Linux Fbdev development list
On Tue, 2003-03-18 at 02:22, Kendall Bennett wrote:
> The other option is to use the x86emu BIOS emulator project. Then you
> don't need to do any of this stuff and instead can warm boot all the
> graphics controllers using the BIOS from the card (see the sample
> 'warmboot' program included in the source code archives). The code is
> presently 32-bit specific I believe, so you would have two choices for
> running this from real mode - port the code to a 16-bit C compiler or
> port it to run in 32-bit real mode. I assume you are probably thinking of
> during the boot phase of GRUB or LILO, so at that point you will have
> full control and should be able to execute 32-bit real mode code. You may
Interesting, an x86 emulator while in real mode... This is probably
worth a try. Thanks.
Tony
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2003-03-17 21:42 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-03-14 18:37 Finding Aki M Laukkanen's VESAFBD project? Kendall Bennett
2003-03-14 18:56 ` Jon Smirl
2003-03-14 19:42 ` Kendall Bennett
2003-03-14 20:11 ` Jon Smirl
2003-03-14 22:57 ` Kendall Bennett
2003-03-14 23:22 ` Jon Smirl
2003-03-15 9:52 ` Geert Uytterhoeven
2003-03-17 18:22 ` Kendall Bennett
2003-03-16 23:00 ` Antonino Daplas
2003-03-17 18:22 ` Kendall Bennett
2003-03-17 21:39 ` Antonino Daplas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).