Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jun 2019 20:41:12 +0200
From:      Polytropon <freebsd@edvax.de>
To:        tech-lists <tech-lists@zyxst.net>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: non-blocky console font
Message-ID:  <20190603204112.e750bc75.freebsd@edvax.de>
In-Reply-To: <20190603134759.GA52553@rpi3.zyxst.net>
References:  <20190603134759.GA52553@rpi3.zyxst.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 3 Jun 2019 14:47:59 +0100, tech-lists wrote:
> Thing is, there aren't any (it seems - I can't find them) *recent*
> complete instructions how to do this on *recent* FreeBSD12. Confusingly, 
> both sc and vt are in the default kernel. What is best to use? 

The decision is simple:

If you want to be able to use X on that system, you will have
to use vt.

If you only want to use traditional text mode, and you don't
have a requirement for UTF-8 (maybe you're using ISO-8859-1
or something like that - that's okay), you can use sc.

Keep in mind that vt's functionality hasn't arrived yet at
where sc has been for decades. Many things don't work as
good as they do in sc. Especially the documentation isn't
fully up to date. You can find several threads about how to
set a readable font in vt in the mailing list's archives.

My individual opinion: I've given up on text mode (which.
in vt, isn't even a text mode anymore, it's a graphical
mode), and use X with much better font support (in xterm
and others).



> This is a desktop system, and it runs X fine.

This means you're already using vt, which is the default in
FreeBSD 12 anyway.



> It has an nvidia graphics 
> card, and is using the latest drm-kmod for FreeBSD12. I don't want the 
> console configuration interfering with the working X setup. But I'd like 
> a fon't that isn't huge for the times I don't want to start X.

This attitude is no longer supported. ;-)



> If I follow the console section in the handbook and for instance try
> 
> # kldload vesa
> 
> I get this error:
> module_register_init: MOD_LOAD (vesa, 0xffffffff836c6000, 0) error 19       
> sysctl_unregister_oid: failed(22) to unregister sysctl(vesa)
> 
> or
> 
> # vidcontrol -i mode
> (no modes displayed)

That is correct. VESA is an "extension" to sc which allows you
to use "graphical fonts". With vt, "graphical fonts" are the
norm already, so no need to deal with VESA.



> Basically all that I'm looking for are instructions about:
> 1. whether to use sc or vt

Use vt. You're already using it. :-)



> 2. how to change resolution

That's complicated. :-)



> 3. how to change console font

That's easy. However, the font doesn't always look as you would
expect it to look, because there is no real interface to tell
the system "I want a screen of 80x25" or something like that
in terms of columns x rows. What you need to find is a combination
of screen size ("resolution") and font that works for you.

First, make sure that you have /boot/loader.conf with the
following settings:

	kern.vty=vt
	kern.vt.fb.default_mode="1280x1024"

The 1st line is optional, but it's a good reminder that we
are in "vt land" now. The 2nd line should be the size of the
display you're using.

In /etc/rc.conf, you can define the font you want to use. For
example:

	allscreens_flags="-f vgarom-8x16"

But before you do so, experiment with the following command:

	vidcontrol -f vgarom-16x32

You can use font names from the /usr/share/vt/fonts directory;
names without ".fnt" appended will work, like:

	vidcontrol -f gallant

The choice of fonts is limited at the moment. Maybe you can use
font files from an OpenBSD installation?

Sidenote: You can use the loader ("Ok") prompt to issue the command

	gop list

as well as

	gop set <value>

to tell the kernel about the screen mode. This will affect how
the kernel will display messages, before a user font is loaded.

Further sidenote: The _resolution_ of your screen is fixed, as it
has one physical size (pixels horizontally x pixels vertically),
which cannot be changed (leaving "software scaling" aside). While
the display size is often provided in pixels, the resolution is
a value of "pixels (or dots) per inch" and can be provided for
X and Y separately, like "75 dpi" or "600 x 300 dpi".

Additional sidenote: CRTs actually _can_ have more than one
resolution, as the logical size (in px) changes, while the
physical size (in inch or cm) stays the same. :-)



You can find more information here:

https://wiki.freebsd.org/Newcons

https://forums.freebsd.org/threads/kernel-boot-resolution.53150/

See "man vidcontrol" for details.

Also check the mailing list archives.


-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



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