Re: /boot/loader.conf debuging traces come out jumbled

From: Julian H. Stacey <jhs_at_berklix.com>
Date: Fri, 24 Dec 2021 15:31:29 UTC
Hi, Reference:
> From:		Kyle Evans <kevans@freebsd.org>
> Date:		Mon, 13 Dec 2021 18:17:52 -0600

Kyle Evans wrote:
> On Mon, Dec 13, 2021 at 6:07 PM Julian H. Stacey <jhs@berklix.com> wrote:
> >
> > Debugging my /boot/loader.conf on 12.2-STABLE (with a 12.2-RELEASE kernel,
> >
> >   (as 12.2-STABLE & 12.3-RELEASE & 13.0-RELEASE GENERIC kernels crash during
> >    boot on one machine here (To be subject of later analysis &
> >    posting)...  I got distracted onto debugging boot options, after
> >    output from booting screen rolled off the top), So I concentrated
> >    first on identifying & hashing out noisey boot options , before
> >    next searching how to capture boot text (maybe to a serial port ?) )
> >
> > I tried adding markers to loader.conf create deliberate visible error texts to
> > mark around lines I wanted to study the effect of, eg
> > fuse_load="YES" etc ...
> >
> > I added this in the middle of /boot/loader.conf :
> >         ZZZZZZZZZ00000000_load="YES"
> >         ZZZZZZZZZ00001111_load="YES"
> >         ZZZZZZZZZ00002222_load="YES"
> >         ZZZZZZZZZ44440000_load="YES"
> >         ZZZZZZZZZ44441111_load="YES"
> >         ZZZZZZZZZ44442222_load="YES"
> >
> > & next boot showed a weirdly disordered:
> >
> >         Loading configured modules...
> >         can't find 'ZZZZZZZZZ00000000_load'
> >         can't find 'ZZZZZZZZZ00002222_load'
> >         can't find 'ZZZZZZZZZ44442222_load'
> >         can't find 'ZZZZZZZZZ44440000_load'
> >         can't find 'ZZZZZZZZZ44441111_load'
> >         can't find 'ZZZZZZZZZ00001111_load'
> >         /etc/hostid size=0x25
> >
> > its not even just a reverse order that one might have expected from
> > a forth unstacker or some such. Makes it harder to trace what output
> > lines come from which loader.conf lines.
> >
>
> To my knowledge, we've never guaranteed module load order beyond
> kernel-first then everything else. You'll have a much better time with
> _before/_after though; something like this should work:
>
> hostid_before="echo before hostid"
> hostid_after="echo after hostid"

Thanks Kyle for your _before & _after, it set me on course,
though there's no hostid_load= in 12.2 src/, these worked:
	usb_quirk_load="YES"
	usb_quirk_before="echo Before usb_quirk"
	usb_quirk_after="echo After usb_quirk"

& I found lots of useful debugging stuff in /boot/defaults/loader.conf
& man loader.conf loader boot.  My next use will be boot -p or
boot_pause=""       # -p: Pause after each line during device probing

& then maybe some of:
#boot_ddb=""        # -d: Instructs the kernel to start in the DDB debugger
#boot_gdb=""        # -g: Selects gdb-remote mode for the kernel debugger
#boot_multicons=""  # -D: Use multiple consoles
#boot_serial=""     # -h: Use serial console
#boot_verbose=""    # -v: Causes extra debugging information to be printed
#debug.kdb.break_to_debugger="0" # Allow console to break into debugger.

Looking forward to debugging now screen doesnt roll off :-)

Cheers,
-- 
Julian Stacey  http://berklix.com/jhs/  http://stolenvotes.uk
Reduce contacts, vax & pass insufficient.   Dump UK's prime liar.