[PATCH TO TEST] VESA [1024x768] mode support for FreeBSD-CURRENT

Jay O'Brien jayobrien at att.net
Sun Apr 10 15:21:33 PDT 2005


Michal Mertl wrote:
> There's no standard VGA 132 character text mode. It's either provided by
> VESA or emulated using some graphics mode. Newer graphics hardware
> stopped supporting extended text modes. If you want such modes you need
> to emulate them (render the characters using lots of small dots instead
> of just writing characters to the adapter which renders them for you).
> Support for this functionality is included in syscons/vga driver when
> you define options SC_PIXEL_MODE. Standard FreeBSD supports only planar
> graphics mode 800x600 dots with 4 bits (16) of color information per
> pixel which can be run on old plain VGA with 256KB of memory.
> 
> The patches we are talking about add support for rendering the
> characters in any graphics mode your card supports (through VESA) with
> >= 15 bits per pixel. You could then run say 1600x1200x32 bpp (16milions
> of colours) for a text mode console. You can't use any graphics there
> but the textual resolution will be bigger. There also isn't support for
> using simultaneously more than 16 (or is it 15?) different colors for
> characters even when milions are technically possible.
> 

Thanks for the explanation, it is appreciated. I tried the process and 
encountered errors. Here's what happened: 

patch </tmp/syscons.diff.20050215  this went fine.
patch </tmp/vidcontrol.diff.20050215  returned errors as shown below:

////////////////////////////////////////////////////////////

# patch </tmp/vidcontrol.diff.20050215 Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|Index: vidcontrol.1
|===================================================================
|RCS file: /home/ncvs/src/usr.sbin/vidcontrol/vidcontrol.1,v
|retrieving revision 1.55
|diff -u -r1.55 vidcontrol.1
|--- vidcontrol.1	2 Mar 2003 21:04:21 -0000	1.55
|+++ vidcontrol.1	17 Jan 2005 05:27:25 -0000
--------------------------
Patching file vidcontrol.1 using Plan A...
Hunk #1 succeeded at 11.
Hunk #2 succeeded at 88.
Hunk #3 succeeded at 297.
Hunk #4 succeeded at 532.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|Index: vidcontrol.c
|===================================================================
|RCS file: /home/ncvs/src/usr.sbin/vidcontrol/vidcontrol.c,v
|retrieving revision 1.48
|diff -u -r1.48 vidcontrol.c
|--- vidcontrol.c	13 Jan 2005 03:59:44 -0000	1.48
|+++ vidcontrol.c	17 Jan 2005 05:27:25 -0000
--------------------------
Patching file vidcontrol.c using Plan A...
Hunk #1 succeeded at 24.
Hunk #2 succeeded at 48.
Hunk #3 succeeded at 66 with fuzz 1.
Hunk #4 failed at 187.
Hunk #5 succeeded at 223.
Hunk #6 failed at 239.
Hunk #7 failed at 257.
Hunk #8 failed at 297.
Hunk #9 failed at 332.
Hunk #10 succeeded at 348 with fuzz 2.
Hunk #11 failed at 377.
Hunk #12 failed at 419.
Hunk #13 failed at 507.
Hunk #14 failed at 572.
Hunk #15 failed at 669.
Hunk #16 failed at 722.
Hunk #17 failed at 743.
Hunk #18 failed at 806.
Hunk #19 succeeded at 891.
Hunk #20 failed at 900.
Hunk #21 failed at 933.
Hunk #22 succeeded at 950 with fuzz 2.
Hunk #23 failed at 962.
Hunk #24 failed at 985.
Hunk #25 failed at 1035.
Hunk #26 failed at 1050.
Hunk #27 succeeded at 1148.
Hunk #28 succeeded at 1173.
Hunk #29 succeeded at 1217.
Hunk #30 succeeded at 1234.
19 out of 30 hunks failed--saving rejects to vidcontrol.c.rej
done

////////////////////////////////////////////////////////////

Not being a c programmer, I can't understand what the 
vidcontrol.c.rej file is trying to tell me. It is a 29K file.

As I recalled a previous email telling someone to go ahead 
anyway, I went ahead with make clean and that went ok. Then I 
did make all and here's the results:

////////////////////////////////////////////////////////////

make all cc -O -pipe   -c /usr/src/usr.sbin/vidcontrol/vidcontrol.c
/usr/src/usr.sbin/vidcontrol/vidcontrol.c: In function `video_mode':
/usr/src/usr.sbin/vidcontrol/vidcontrol.c:500: error: `_VESA_800x600_DFL_COLS' undeclared (first use in this function)
/usr/src/usr.sbin/vidcontrol/vidcontrol.c:500: error: (Each undeclared identifier is reported only once
/usr/src/usr.sbin/vidcontrol/vidcontrol.c:500: error: for each function it appears in.)
/usr/src/usr.sbin/vidcontrol/vidcontrol.c:505: error: `_VESA_800x600_DFL_FNSZ' undeclared (first use in this function)
/usr/src/usr.sbin/vidcontrol/vidcontrol.c:509: error: `_VESA_800x600_DFL_ROWS' undeclared (first use in this function)
*** Error code 1

Stop in /usr/src/usr.sbin/vidcontrol.

////////////////////////////////////////////////////////////

I did not do a make install.

Guidance will be appreciated. Thanks!

Jay O'Brien
Rio Linda, California, USA



More information about the freebsd-questions mailing list