How to get a high resolution console for FreeBSD inside a VMWare image?

Jared Evans jnevans at gmail.com
Sat Oct 15 13:35:32 PDT 2005


Thanks for taking the time to reply. I shall try your patch and see if I can
get it to work.

Jared

On 10/14/05, Nikolas Britton <nikolas.britton at gmail.com> wrote:
>
> On 10/14/05, Jared Evans <jnevans at gmail.com> wrote:
> > I know that this isn't exactly a standard configuration (VMWare as
> opposed
> > 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
> VMWare.
> > It was surprisingly more complex than I expected:
> >
> > When attempting to change screen resolution for a console in FreeBSD
> running
> > 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
> without
> > 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
> display
> > adapter in VMWare does.
> >
> > in src/sys/i386/isa/vesa.c, there is a check for the flag V_NONVGA in
> line
> > 655. If you comment it out, flag check will be bypassed. After all, if
> Xorg
> > 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="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....
>
>


--
http://jarednevans.typepad.com


More information about the freebsd-questions mailing list