Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Aug 2007 11:53:21 -0400
From:      shannon@widomaker.com (Charles Shannon Hendrix)
To:        stable@freebsd.org
Subject:   boot logo/menu corruption
Message-ID:  <20070810155321.GA20708@widomaker.com>

next in thread | raw e-mail | index | archive | help

I am creating boot menus for an embedded project, and appliance machine
that runs FreeBSD and some custom software.

The machine has a serial-video BIOS so we can run the machine headless.

Serial console support works great, but for one problem:

When the second stage boot loader starts, the text output to the serial
console is corrupted.

Characters are doubled, control characters frequently don't work or get
turned into null, etc.

For example, here is the basic FreeBSD menu and how it looks when I boot
using the serial console:


 +-----------------------------------------++=EF=BF=BD22;3
 ||=EF=BF=BD                                       ||=EF=BF=BD
 ||=EF=BF=BD                                       ||=EF=BF=BD
 ||=EF=BF=BD                                       ||=EF=BF=BD
 ||=EF=BF=BD        Welcome to FreeBSD!oo  FFrreeee|BSSDD!!
 ||=EF=BF=BD                                       ||=EF=BF=BD
 ||=EF=BF=BD                                       ||=EF=BF=BD
 ||=EF=BF=BD1. Boot FreeBSD [default]BSSDD  [[ddeef|aauulltt]]
 ||=EF=BF=BD2. Boot FreeBSD with ACPI disablediitth|  AACCPPII  ddiissaab=
blleedd
 ||=EF=BF=BD3. Boot FreeBSD in Safe ModeDD  iinn  S|aaffee  MMooddee
 ||=EF=BF=BD4. Boot FreeBSD in single user moden  s|iinnggllee  uusseerr =
 mmooddee
 ||=EF=BF=BD5. Boot FreeBSD with verbose loggingtth|  vveerrbboossee  llo=
oggggiinngg
 ||=EF=BF=BD6. Escape to loader promptllooaaddeerr |pprroommpptt
 ||=EF=BF=BD7. Rebootebboooott                     ||=EF=BF=BD
 ||=EF=BF=BD                                       ||=EF=BF=BD
 ||=EF=BF=BD                                       ||=EF=BF=BD
 ||=EF=BF=BD                                       ||=EF=BF=BD
 ||=EF=BF=BD                                       ||=EF=BF=BD
 ||=EF=BF=BDSelect option, [Enter] for defaultEnntt|err]]  ffoorr  ddeeff=
aauulltt
 ||=EF=BF=BDor [Space] to pause timer  H00    ussee| ttiimmeerr       =20
 +-----------------------------------------++=EF=BF=BD[6;13

Some strings come out normaly, others are doubled, and some just don't
come out at all or come out as nulls or something else.

When the boot loader starts the spinner is doubled.  Especially before
the menu goes up, I get doubled strings, kind of line this:

	FFrreeBBSSDD    66..22

...just as an example.

>From this menu I picked the option I want, and then everything is fine.
It seems that once the kernel gets control of the console, everything
works as I expect.

Does anyone have any idea why the second/third stage has trouble?

Is it possible this is because the loader is writing to the console and
the video BIOS is doing it also?

Thanks.



--=20
shannon / Asus A8N5X - Opteron 170@2.5GHz | But you know, a little Sun Ul=
tra 1
-------'  2GB RAM - nVidia 7900GS         | is doing all the hard work...



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