[gPXE-devel] [PATCH]: Making gPXE silent when CONSOLE_DIRECT_VGA is unset

Stefan Hajnoczi stefanha at gmail.com
Fri Jun 11 12:14:04 EDT 2010


On Mon, Jun 7, 2010 at 5:05 PM, Erwan Velu <erwanaliasr1 at gmail.com> wrote:
> Since I added gPXE instead of my original ROM, I disabled the VGA
> screen by using CONSOLE_DIRECT_VGA and enabled the serial line for
> debugging purposes.

I'm not sure what you mean by "using CONSOLE_DIRECT_VGA".  That config
option will write directly to screen in text mode instead of using the
BIOS interrupt.  To disable output you should #undef CONSOLE_PCBIOS
and not set CONSOLE_DIRECT_VGA at all.

> That works nicely except a last message is remaning "gpxe (pciid) -
> starting exec".
>
> While looking at the code I saw this message is printed
> uncondtionnaly. I wrote a stupid patch that ifdef that section.
>
> If this patch make sense for you too, can it be pulled upstream ?

The prefix code executes before most of the gPXE environment is set
up.  It is hardcoded to use the BIOS interrupt for displaying text and
doesn't honor the CONSOLE_* options, as you found.

#ifdef CONSOLE_DIRECT_VGA isn't the right thing here because
print_message will actually use INT 10h, not direct VGA access.

Proper support for CONSOLE_PCBIOS, CONSOLE_DIRECT_VGA, and
CONSOLE_SERIAL in the prefix would require an implementation of
libprefix.S:print_character and any other INT 10h user.  This
duplicates C code that gPXE already has once the environment is set
up.

You mentioned your BIOS is modified: have the messages simply been
removed or does your BIOS provide a dummy INT 10h which does not
display anything?  If your BIOS INT 10h can swallow any characters
thrown at it then that is the simplest solution (and it will continue
to work if you add other option ROMs or firmware later).

Stefan


More information about the gPXE-devel mailing list