Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Apr 2007 19:30:39 -0500
From:      Craig Boston <craig@feniz.gank.org>
To:        freebsd-stable@FreeBSD.ORG
Subject:   Re: Changing Console Resolution - Vidcontrol
Message-ID:  <20070407003039.GA46860@nowhere>
In-Reply-To: <200704051427.l35ERkX4008931@lurza.secnetix.de>
References:  <20070405133858.GB72219@nowhere> <200704051427.l35ERkX4008931@lurza.secnetix.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 05, 2007 at 04:27:46PM +0200, Oliver Fromme wrote:
> I think 800x600x4 would be even quicker, because no VESA
> calls are required at all for screen output.

Oops, I was mistaken.  800x600x4 (MODE_258) is what I'm using.
800x600x8 returns "Operation not supported" when trying to switch to it,
as do both 4 and 8 bit 1024x768 modes.  16-bit and 32-bit modes work at
the higher resolution but they're slow as molasses so I don't use
them(1).

I'd rather use 4-bit anyway as IMO there's very few reasons to have more
than 16 colors in console mode.  elinks is the only program I know of
that claims to be able to use more and syscons may not even support the
control codes it's using.

> (All x4 modes use a planar layout.  If such a bitplane is
> larger than 64K, so-called bank switching is required to
> access all of the video memory, because the VGA address
> space allows only a 64K window for access at once.  VESA
> calls are required to perform the bank switching.

As yes, I'm having flashbacks to the "good ol' days" right now :)  I
mostly stuck to tweaking the VGA registers at the lower resolution modes
as VESA support was pretty spotty on most hardware at the time.  I do
remember using bank switching on occasion though.

> I think FreeBSD's syscons supports it via "flags 0x80"
> for the sc device in the kernel config file.  See the
> section "Driver Flags" in the sc(4) manual page.

Thanks for the tip, but this doesn't work for me.  Setting that flag in
device.hints results in a blank screen and only a single virtual
terminal (ALT+F? just beep).  I _am_ able to log in blind and issue
commands however.  Checking dmesg over ssh didn't show any errors or
clues.

In any case, allscreens_flags works acceptably for my needs.  Strange
that it works but the 0x80 flag doesn't.

(1) Interesting data point, syscons apparently doesn't use VESA very
efficiently.  1024x768x16 mode is very slow -- I can see the screen
redrawing line by line in something like top.

However, I'm currently using the VESA driver for X at the moment as the
trident driver has some problems with the chip in this laptop.
1024x768x16 mode using VESA is fast in X, almost as fast as the
accelerated driver.  So I know the hardware is capable of it.

Unfortunately X has some other issues on this machine, like a weird
kkeybooardd ssstutteringg problem when Xkb is enabled, so I tend to use
the console a lot.

Craig



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070407003039.GA46860>