loader and ficl/Forth help

Garrett Cooper yanegomi at gmail.com
Fri Dec 7 20:33:18 UTC 2012


On Fri, Dec 7, 2012 at 12:07 PM, Devin Teske <devin.teske at fisglobal.com> wrote:

...

> I'll look into boot_multicons.
>
> However, w/respect to "boot -D", I believe that would be after the menu, so is past the point at which we need the functionality (in drawing frames from frames.4th).
>
> Also, you replied to an earlier e-mail in the thread, do note that there's an updated patch that centralizes the logic to "boot_serial?" function which returns boolean based on multiple conditions (currently takes $console and $boot_serial into consideration -- should be trivial to add a check for boot_multicons).

You're correct; boot -D is for after boot and this only affects loader(8):

                     -D    boot with the dual console configuration.  In the
                           single configuration, the console will be either
                           the internal display or the serial port, depending
                           on the state of the -h option below.  In the dual
                           console configuration, both the internal display
                           and the serial port will become the console at the
                           same time, regardless of the state of the -h
                           option.

Rereading loader(8)'s entry on multicons, it might be a non-issue as
well, given that it's only saying "kernel":

     boot_multicons
               Enables multiple console support in the kernel early on boot.
               In a running system, console configuration can be manipulated
               by the conscontrol(8) utility.

A grep of sys/boot suggests it's an alias for -D:

$ grep -r multicons .
./userboot/userboot/bootinfo.c:    {"boot_multicons",   RB_MULTIPLE},
./sparc64/loader/metadata.c:    {"boot_multicons",      RB_MULTIPLE},
./forth/loader.conf:#boot_multicons=""  # -D: Use multiple consoles
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
./powerpc/ofw/metadata.c:    {"boot_multicons", RB_MULTIPLE},
./powerpc/ps3/metadata.c:    {"boot_multicons", RB_MULTIPLE},
./i386/libi386/comconsole.c:        getenv("boot_multicons") != NULL) {
./i386/libi386/bootinfo.c:    {"boot_multicons",        RB_MULTIPLE},
./i386/efi/bootinfo.c:  { "boot_multicons",     RB_MULTIPLE},
./pc98/libpc98/comconsole.c:        getenv("boot_multicons") != NULL) {
./common/loader.8:.It Va boot_multicons
./common/help.common:# Tset Sboot_multicons DUse multiple consoles
./common/help.common:   set boot_multicons
./ia64/common/bootinfo.c:       { "boot_multicons",     RB_MULTIPLE},
./uboot/common/metadata.c:      {"boot_multicons",      RB_MULTIPLE},

However, sys/boot/i386/libi386/comconsole.c is doing some matching
based on the environment variable, so I'd need to look into the call
flow further to better understand what's being achieved.

Thanks,
-Garrett


More information about the freebsd-hackers mailing list