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