Restoring sc console look and feel with vt

Ian Smith smithi at
Sat Sep 9 14:26:45 UTC 2017

In freebsd-questions Digest, Vol 692, Issue 7, Message: 13
On Sat, 9 Sep 2017 02:44:32 +0200 Polytropon <freebsd at> wrote:
 > On Fri, 8 Sep 2017 11:43:57 -0600 (MDT), Warren Block wrote:
 > > On Tue, 5 Sep 2017, Polytropon wrote:
 > > 
 > > >> For the former, removing the previous advice from loader.conf would be the
 > > >> first step.  Then you should be able to find an acceptable setting
 > > >> experimenting with vidcontrol eg resolution/fonts.
 > > >
 > > > With vidcontrol, I only get error messages. I think it ie tied
 > > > to sc? I also have no idea what font names to try...
 > > 
 > > Yes, it depends on VESA support by the video card.
 > > 
 > > Instead, try the "gop" command in the loader to list and set modes.
 > My 10.3 loader doesn't seem to know that command. Do I need to
 > upgrade to 11?

For another reason I svnup'd HEAD sources yesterday to a (rapidly 
bitrotting) 9.3 system, so went on the hunt for mentions of 'gop'.  I 
checked all man pages to do with booting, loader, etc.  Nothing.  
Finally I ran case-insensitive grep over the whole tree, eventually 
digging _one_ out of a much bigger pile of irrelevant alphabet soup:

root at x200:/usr/head/src/sys/boot/efi/loader # find . -type f -exec grep -Hi gop {} +
./arch/amd64/framebuffer.c:static EFI_GUID gop_guid = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID;
./arch/amd64/framebuffer.c:efifb_from_gop(struct efi_fb *efifb, EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *mode,
./arch/amd64/framebuffer.c:     EFI_GRAPHICS_OUTPUT *gop;
./arch/amd64/framebuffer.c:     status = BS->LocateProtocol(&gop_guid, NULL, (VOID **)&gop);
./arch/amd64/framebuffer.c:             return (efifb_from_gop(efifb, gop->Mode, gop->Mode->Info));
./arch/amd64/framebuffer.c:COMMAND_SET(gop, "gop", "graphics output protocol", command_gop);
./arch/amd64/framebuffer.c:command_gop(int argc, char *argv[])
./arch/amd64/framebuffer.c:     EFI_GRAPHICS_OUTPUT *gop;
./arch/amd64/framebuffer.c:     status = BS->LocateProtocol(&gop_guid, NULL, (VOID **)&gop);
./arch/amd64/framebuffer.c:             status = gop->SetMode(gop, mode);
./arch/amd64/framebuffer.c:             efifb_from_gop(&efifb, gop->Mode, gop->Mode->Info);
./arch/amd64/framebuffer.c:             print_efifb(gop->Mode->Mode, &efifb, 1);
./arch/amd64/framebuffer.c:             for (mode = 0; mode < gop->Mode->MaxMode; mode++) {
./arch/amd64/framebuffer.c:                     status = gop->QueryMode(gop, mode, &infosz, &info);
./arch/amd64/framebuffer.c:                     efifb_from_gop(&efifb, gop->Mode, info);

That's all I can find without resort to google.  See if it's on 10.3?

Warren, are there any docs on this at all, even if only commit messages? 
and does this code imply that it's only useful for EFI boot?

Poly, as someone else with 'senior' eyesight and a long memory, I feel 
your pain.  I've been working in (lots of) 120 x 50 konsoles in old KDE 
on 14" LCD for years, but that's only easy on good days now, and I keep 
a magnifying glass handy - but that uses up one hand :)

I wonder if a big LCD screen might fare better than a big CRT with this?

cheers, Ian

More information about the freebsd-questions mailing list