Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Jul 1999 00:41:52 +0100 (BST)
From:      Andrew Gordon <arg@arg1.demon.co.uk>
To:        hackers@freebsd.org
Subject:   Linear buffers in VESA screen modes
Message-ID:  <Pine.BSF.3.96.990725002543.6533B-100000@server.arg.sj.co.uk>

next in thread | raw e-mail | index | archive | help
Is there a plan for how to access the linear framebuffer in VESA video
modes?  So far as I can tell, the current[1] VESA code doesn't support
enabling the linear framebuffer access at all, even though "vidcontrol -i
mode" is happy to tell you the details of the buffers that you can't get
access to!

[1] actually, I'm working in -stable, but at a quick glance the -current
code is the same in this area.


I have used the following hack to make it work for my purposes:

% cvs diff -c vesa.c
Index: vesa.c
===================================================================
RCS file: /repository/src/sys/i386/isa/vesa.c,v
retrieving revision 1.15.2.5
diff -c -r1.15.2.5 vesa.c
*** vesa.c      1999/04/16 15:58:21     1.15.2.5
--- vesa.c      1999/07/24 23:26:21
***************
*** 777,783 ****
        }
  #endif /* 0 */
  
!       if (vesa_bios_set_mode(mode))
                return 1;
  
  #if VESA_DEBUG > 0
--- 777,784 ----
        }
  #endif /* 0 */
  
!       /* If mode has a linear buffer, enable use of it                */
!       if (vesa_bios_set_mode(info.vi_buffer ? (mode | 0x4000) : mode))
                return 1;
  
  #if VESA_DEBUG > 0


This currently does the right thing (at least on my hardware) because all
the modes that syscons supports for character I/O don't have a linear
mapping and hence those modes get set for windowed access as before.
However, it's probably not the proper solution.


The application for which I need this is to support capture from the bktr
driver onto the screen (ie. so that you can watch TV without X).  With the
above hack and a small (100-line) program it works very nicely - far
tidier than installing X just for this purpose on some embedded systems
where I need this capability.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.990725002543.6533B-100000>