On Wed, Feb 21, 2018 at 12:18 PM, Rodney W. Grimes <freebsd-rwg_at_pdx.rh.cn85.dnsmgr.net> wrote: >> On Wed, Feb 21, 2018 at 6:11 AM, Kyle Evans <kevans_at_freebsd.org> wrote: >> > On Wed, Feb 21, 2018 at 6:36 AM, David Wolfskill <david_at_catwhisker.org> wrote: >> >> >> >> ... >> >> kernels="kernel kernel.old kernel.save" >> >> >> >> and the Forth loader presented (precisely) those kernels as the >> >> available options for selecting a kernel to load and boot. >> >> >> > >> > Right, so, we (and by we I mean cem_at_) actually implemented a form of >> > auto-detection for kernels. Any directory in in /boot with a file >> > named 'kernel' inside will be automatically listed, and that >> > supplemented(*) 'kernels' and 'kernel' specified in loader.conf(5). >> > >> > (*) I use "supplemented" because I changed that in r329709, just a >> > little bit ago, to not do the autodetection if a 'kernels' is >> > explicitly set in loader.conf(5) My reasoning here is that there's >> > probably a reason one has set it explicitly, whether it be to hide >> > bogus kernels or just to slim down the list of kernels they need to >> > cycle through. >> >> Yep. And to add a little more detail, because I like this behavior, >> I've convinced Kyle to add a knob to re-enable the autodetection >> behavior even in the presence of kernels="", by adding a >> kernels_autodetect="yes" knob to loader.conf (r329733). > > Or how about parse a wildcard * in kernels= to mean do the same as > kernels_autodetect=yes > the should make it possible to control the order of them on > the list bo doing something like > kernels=/boot/kernel;/boot/kernel.old;*;/altboot/kernel;/altboot/kernel.GENERIC > > > >> Note that any kernels in kernels="" are offered first in the list, in >> the same order as configured; any additional autodetected kernels >> follow at the end (as you observed earlier): > > The mechansism now only allows autodetec at end, use of a wildcard to > show when to insert autodetect allows a fairly arbitrary order. > I think we might have a problem right now with trying to do this while Forth is still the default; how would it interpret such an entry? I'd almost want to go a step further and say that * should indicate where we search. Right now, it's a hard-coded /boot. I'd express that in kernels as /boot/*, which tells the loader to search directories matching /boot/* for a 'kernel' file and use that. This could then be expanded to do things like /altboot/* and search /altboot for other kernels. That'd need a little more work because we don't currently search non-/boot directories[*] when we're actually trying to load kernels. [*] Unless they appear in the module_path, then we search for "$kernel" as a file.Received on Wed Feb 21 2018 - 17:26:24 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:15 UTC