Re: Having multiple (pkgbase) kernels vs. /etc/rc* related activities at boot: does not respect kernel= or kern.module_path= from loader.conf
Date: Wed, 21 Feb 2024 04:40:47 UTC
[kern.module_path was missing /boot/ in the path.] On Feb 20, 2024, at 13:48, Mark Millard <marklmi@yahoo.com> wrote: > My example for this generel subject is going to be nfsd : > > # uname -apKU > FreeBSD armv7-main-pkgs 15.0-CURRENT FreeBSD 15.0-CURRENT main-n267775-6ec8bf9f3d17 GENERIC-NODEBUG arm armv7 1500012 1500012 > > (It has been a while since armv7 pkgbase published anything new. > This still has /boot/dtb/ files bound with the kernel.) > > # grep '^kern.*="kernel' /boot/loader.conf > kernel="kernel.GENERIC-NODEBUG" > kern.module_path="kernel.GENERIC-NODEBUG" Bad path. Sorry for the noise. > But the boot got: > > Starting ntpd. > kldload: can't load nfsd: No such file or directory > /etc/rc: WARNING: Unable to load kernel module nfsd > /etc/rc: WARNING: failed precmd routine for nfsd > > Why? load_kld in /etc/rc.subr does: > > . . . > if ! $_loaded; then > if ! kldload "$1"; then > warn "Unable to load kernel module $1" > return 1 > else > . . . > > but that kldload looks in /boot/kernel/ despite the > kernel= and kern.module_path= use in loader.conf . > > As stands this context has /boot/kernel.GENERIC-NODEBUG/ > but does not have /boot/kernel/ . (In part this is because > armv7 pkgbase still predates /boot/dtb/ being separate > from the kernels.) > > But even if /boot/kernel/ had been populated as well, use > of its contents with /boot/kernel.GENERIC-NODEBUG/kernel > having been loaded and booted is likely to (at times?) be > an inappropriate mix of /boot/kernel.GENERIC-NODEBUG/ and > /boot/kernel/ materials. === Mark Millard marklmi at yahoo.com