From owner-freebsd-hackers Sat Jul 24 16:42:27 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from arg1.demon.co.uk (arg1.demon.co.uk [194.222.34.166]) by hub.freebsd.org (Postfix) with ESMTP id C2A5C14D45 for ; Sat, 24 Jul 1999 16:42:23 -0700 (PDT) (envelope-from arg@arg1.demon.co.uk) Received: from localhost (arg@localhost) by arg1.demon.co.uk (8.8.8/8.8.8) with SMTP id AAA06726 for ; Sun, 25 Jul 1999 00:41:53 +0100 (BST) (envelope-from arg@arg1.demon.co.uk) Date: Sun, 25 Jul 1999 00:41:52 +0100 (BST) From: Andrew Gordon X-Sender: arg@server.arg.sj.co.uk To: hackers@freebsd.org Subject: Linear buffers in VESA screen modes Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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