Early kernel boot log?

John Baldwin jhb at FreeBSD.org
Thu Aug 9 16:13:02 UTC 2018


On 8/9/18 4:02 AM, Konstantin Belousov wrote:
> On Thu, Aug 09, 2018 at 10:26:06AM +0100, Johannes Lundberg wrote:
>> On Thu, Aug 9, 2018 at 9:29 AM Konstantin Belousov <kostikbel at gmail.com>
>> wrote:
>>
>>> On Thu, Aug 09, 2018 at 08:54:31AM +0100, Johannes Lundberg wrote:
>>>> Hi
>>>>
>>>> So I believe the reason I'm not seeing and printf output in dmesg is that
>>>> it is too early in some functions.
>>>> For example
>>>> machdep.s
>>>>  getmemsize()
>>>>  add_efi_map_entries()
>>>>  etc
>>>>
>>>> However, these functions do contain debug printf statements so if they're
>>>> logging to somewhere, where/how can I see this?
>>>>
>>>> I also tried booting in bhyve too see if I could get any output via
>>> serial
>>>> console but nothing there either.
>>> Disable efi console, only leaving comconsole around, then set
>>> debug.late_console=0
>>> in loader.
>>>
>>
>> Thanks for the tip. I found the comment in machdep.c that explains this
>> now.
>> However, running in bhyve with
>> console="comconsole" (not needed in bhyve I guess?)
>> debug.late_console=0
>>
>> Boot hangs after
>> Booting...
>> output.
>> Caused by late_console=0.
> 
> That early hangs are typically due to an exception occuring before
> IDT is set up and trap machinery operational.  Double-check that
> there is no any early framebuffer access, as a drastic measure remove
> all framebuffer drivers from your kernel config.
> 
> I do not remember, where gdb stubs added to bhyve ?  Is there a way
> to inspect the vm guest state in bhyve by other means ?

For this case the gdb stub in FreeBSD head should be sufficient.  You need
to add '-G 1234' to the command line when starting bhyve and then you can
use 'target remote localhost:1234' from either gdb or kgdb.

-- 
John Baldwin


More information about the freebsd-current mailing list