> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf
> Of Andrew Daugherity
> >
> > Hello
> > I was wondering if there is anything I could do to help figure this
> out.
> > I do not have the requisite knowledge to even begin to understand why
> the
> > kernel does not configure the vga output when boot.conf redirects to
> com0.
> 
> Look for a "redirection after boot" setting in your BIOS and try
> disabling that.  The behavior you've described of both physical and
> serial consoles working at the boot prompt _without_ 'set tty com0'
> seems to indicate the BIOS is still handling redirection from
> keyboard/video to serial, and my guess is that when OpenBSD
> initializes the port for a serial console, it causes something in the
> BIOS-linked local keyboard/vga to go wonky (wsdisplay at vga1 not
> configured).

Thanks for suggestion.  The BIOS does, in fact, redirect output to both the 
local console and a serial console at startup.  This makes the BIOS 
configuration available on the serial console and the local monitor.

After the BIOS screen, if "set tty com0" is _not_ included, then the boot dmesg 
is displayed on the local monitor, the serial goes silent, and at the end of 
openBSD boot, a login prompt is available on both serial console and local 
monitor.

If "set tty com0" is _set_, then, after the BIOS page shows on both the serial 
console and local monitor, the boot dmesg scrolls on the serial console, and 
then login prompt is available on the serial console.  The local monitor shows 
the openBSD boot "redirecting" message, and then nothing more.  At the end of 
boot, there is _no_ login prompt on the local monitor.

If I _disable_ the BIOS serial redirection feature, but keep "set tty com0" 
_set_, I see the following:
- the local monitor shows:  BIOS screen, openBSD start text ending with 
"redirecting to...", and that is all.  No login prompt at the end of boot
- the serial console shows:  _no_ BIOS screen, then the openBSD boot and dmesg 
information, and ends with a login prompt

The only change which, apparently, disables the configuration of ttyC0 
during/after boot is setting "set tty com0" in boot.conf.

However, the local monitor is alive, since it gets the BIOS information and the 
initial openBSD boot message, which suggests that the BIOS is correctly 
recognizing the monitor/output early in the boot, but then openBSD is unable to 
configure it later.

Again, the only change that seems to make a difference is setting "set tty 
com0" or not.  The console redirection option in the BIOS for the pre-boot/BIOS 
information does not affect this.


> 
> Note that in UEFI mode, "wsdisplay at vga1 not configured" would be
> expected, as efifb takes over:
> ====
> $ dmesg|egrep 'wsdisplay|fb|vga|com[0-9]'
> vga1 at pci7 dev 0 function 0 "Matrox MGA G200eR" rev 0x01
> wsdisplay at vga1 not configured
> com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
> com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
> com1: console
> efifb0 at mainbus0: 1280x1024, 32bpp
> wsdisplay0 at efifb0 mux 1
> wsdisplay0: screen 0-5 added (std, vt100 emulation)
> ====
> You might give UEFI mode a try, to see if efifb works better than the
> vga console.  Redirection after boot is probably the more important
> setting though.
> 

The system is installed on one full disk openBSD partition.  I believe (not 
100% sure) that changing to UEFI would require a small EFI partition (which 
would mean changing the fdisk partition and disklabel without destroying the 
software RAID), which is not a challenge I can take on right now.  But, I will 
keep it in mind.


> Note that the login prompt appearing on a console (spawning a getty as
> configured in /etc/ttys) and the bootloader/kernel console device are
> independent settings.
> 

Yes, which is my confusion.  Both the serial console (tty00) and the local 
terminal (ttyC0) are set in ttys:

head -n 20 /etc/ttys
#
#       $OpenBSD: ttys,v 1.2 2008/01/09 17:39:42 miod Exp $
#
# name  getty                           type    status          comments
#
console "/usr/libexec/getty std.9600"   vt220   off secure
ttyC0   "/usr/libexec/getty std.9600"   vt220   on  secure
ttyC1   "/usr/libexec/getty std.9600"   vt220   on  secure
...
ttyCb   "/usr/libexec/getty std.9600"   vt220   off secure
tty00   "/usr/libexec/getty autologin"  vt220    on secure
tty01   "/usr/libexec/getty std.9600"   unknown off

(Note, the "autologin" type for getty is an addition in my gettytab which 
allows getty to spawn a login prompt that does not require the long, complex 
password to login when at the serial console.)
 

> -Andrew

Thanks
Ted



Reply via email to