Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2005 21:42:18 -0500
From:      Nikolas Britton <nikolas.britton@gmail.com>
To:        Jared Evans <jnevans@gmail.com>
Cc:        Ask FreeBSD <freebsd-questions@freebsd.org>
Subject:   Re: How to get a high resolution console for FreeBSD inside a VMWare image?
Message-ID:  <ef10de9a0510141942i697a86c7ye436fb92b530a526@mail.gmail.com>
In-Reply-To: <2cbc9d820510141024i80098bdpee425dd4d0eb19b6@mail.gmail.com>
References:  <2cbc9d820510141024i80098bdpee425dd4d0eb19b6@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 10/14/05, Jared Evans <jnevans@gmail.com> wrote:
> I know that this isn't exactly a standard configuration (VMWare as oppose=
d
> to native installation) for FreeBSD so most of the answers I found online
> weren't really applicable for me.
>
> I simply wanted a high resolution FreeBSD console PTYs running under VMWa=
re.
> It was surprisingly more complex than I expected:
>
> When attempting to change screen resolution for a console in FreeBSD runn=
ing
> under VMWare, I ran across this error message:
>
> > vidcontrol -g 100x37 VESA_800x600
>
> vidcontrol: cannot set videomode inappropriate ioctl for device
>
> It seemed to me that VMWare was unable to init VESA correctly in console =
but
> strangely enough Xorg is capable of changing to a higher resolution witho=
ut
> any problems.
>
> After some googling:
>
> VESA driver in current source tree checks the NONVGA flag of VESA
> information block when loading. If this flag is set it will refuse to
> initialize. Most VESA adapters do not set this flag, but the virtual disp=
lay
> adapter in VMWare does.
>
> in src/sys/i386/isa/vesa.c, there is a check for the flag V_NONVGA in lin=
e
> 655. If you comment it out, flag check will be bypassed. After all, if Xo=
rg
> can use higher resolution, there shouldn't be a problem using VESA on the
> console!
>
> Re-compiling my kernel to include the below as suggested by several more =
web
> searches:
>
> options VESA
> options SC_PIXEL_MODE
> options VGA_WIDTH90
>
> rebooting then:
>
> > vidcontrol -g 100x37 VESA_800x600
>
> vidcontrol: operation not supported by device
>
> Any more tips for me?

You computer (VMware) doesn't have a "proper" VESA BIOS and that is
why 800x600 raster text mode won't work etc. FreeBSD 6 has this all
worked just put 'allscreens_flags=3D"MODE_279"' in rc.conf for
1024x768... you can get a list of other modes supported by typing in
vidcontrol -i MODE (I think, can never remember :-)). if you want this
for FreeBSD 5.x then your going to have to manually patch your system,
but I have a simple script that will do it for you. somewhere around
here...... check for patch errors after you run the script.
--------------------------------------------------
cd /tmp
rm current-vesa_patch.tar.gz
fetch http://www.nbritton.org/uploads/current-vesa_patch.tar.gz
rm -r current-vesa_patch
tar -zxf current-vesa_patch.tar.gz
cd /usr/src/sys/dev/syscons
patch </tmp/current-vesa_patch/current-syscons.diff
cd /usr/src/usr.sbin/vidcontrol
cp /tmp/current-vesa_patch/current-vidcontrol.1 ./vidcontrol.1
cp /tmp/current-vesa_patch/current-vidcontrol.c ./vidcontrol.c
make && make install && make clean
-----------------------------------------------------
You still need to put in your kernel (both FreeBSD 5 and 6):
options VESA
options SC_PIXEL_MODE

and when you cvsup your src in FreeBSD 5 you will need to reapply the
patch, cvsup will overwrite the files becouse the cvs revision tags
don't match up.

Anyways....



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