Re: Kernel modules not loading on 15-prerelease

bob prohaska <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On Wed, Sep 03, 2025 at 06:18:03PM -0700, Mark Millard wrote:
> On Sep 3, 2025, at 17:39, bob prohaska <[email protected]> wrote:
> 
> > Most list  depends on kernel.1500061 (1500061,1500061), perhaps
> > 10% list 63 and one lists some of each (!)
> > /boot/kernel/usb.ko
> >  depends on kernel.1500061 (1500061,1500061)
> >  depends on kernel.1500061 (1500061,1500061)
> >  depends on kernel.1500061 (1500061,1500061)
> >  depends on kernel.1500061 (1500061,1500061)
> >  depends on kernel.1500061 (1500061,1500061)
> >  depends on kernel.1500061 (1500061,1500061)
> >  depends on kernel.1500061 (1500061,1500061)
> >  depends on kernel.1500061 (1500061,1500061)
> >  depends on kernel.1500063 (1500063,1500063)
> >  depends on kernel.1500063 (1500063,1500063)
> > The above looks wrong to me.....
> 
> Lack of META_MODE (with filemon working) and
> WITHOUT_CLEAN tends to mean more things are
> not rebuilt. Likely you are seeing the
> distinction between rebuilt things and
> not-rebuilt things.
> 
> /boot/kernel/usb.ko is certainly interesting.
> Apparently, different parts of it have their
> own dependencies on the kernel and only some
> parts were rebuilt before being linked
> together. (I do not know the details.)
> 
> >> Going in a different direction, I'll remind:
> >> 
> >>     The environment of make(1) for the build can be controlled via the
> >>     SRC_ENV_CONF variable, which defaults to /etc/src-env.conf.  Some
> >>     examples that may only be set in this file are WITH_DIRDEPS_BUILD, and
> >>     WITH_META_MODE, and MAKEOBJDIRPREFIX as they are environment-only
> >>     variables.
> >> 
> >> I'll note that I use a env prefix before a make
> >> command (in a script):
> >> 
> >> env __MAKE_CONF="/usr/home/root/src.configs/make.conf" \
> >> SRCCONF="/dev/null" SRC_ENV_CONF="/usr/home/root/src.configs/src.conf.aarch64-nodbg-clang.aarch64-host" \
> >> MAKEOBJDIRPREFIX="/usr/obj/BUILDs/main-aarch64-usr_src-nodbg-clang" \
> >> WITH_META_MODE=yes \
> >> time -l make $*
> >> 
> >> You reference elsewhere using: -DWITH_META_MODE
> >> That looks wrong to me. For make:
> >> 
> >>     -D variable
> >>             Define variable to be 1, in the global scope.
> >> 
> >> is defining a make variable, not an environment variable.
> >> I'm not saying that you should use -e but, as evidence,
> >> note the wording:
> >> 
> >>     -e      Let environment variables override global variables within
> >>             makefiles.
> >> 
> >> So: global variables are not environment variables.
> >> 
> >> As far as I can tell, you have not been using META_MODE
> >> based on what you report doing.

For the most recent (past week) experiments that's correct.

> >> 
> >> Absent META_MODE use, the system's recent change to using
> >> WITHOUT_CLEAN by default for buildworld and buildkernel
> >> can lead to more lack of updates of files that should be
> >> updated.
> >> 
> >>> At the same time, I see
> >>> # uname -K
> >>> 1500063
> >>> # uname -U
> >>> 1500061
> >> 
> >> -U output is a separate issue from the kernel
> >> and module version requirement mismatches as
> >> far as I can tell.
> >> 
> >> uname gets the -U putput text via:
> >> 
> >> static void                                      
> >> native_uservers(void)
> >> {                                                
> >>        static char buf[128];
> >> 
> >>        snprintf(buf, sizeof(buf), "%d", __FreeBSD_version);
> >>        uservers = buf;
> >> }
> >> 
> >> Recently WITHOUT_CLEAN became the default. So
> >> its status for your build depends on the timing
> >> of the commit that you used.
> >> 
> >> A WITHOUT_CLEAN (non-META_MODE) build might not
> >> have rebuilt uname. What does the following report:
> >> 
> >> # file /usr/obj/usr/src/arm.armv7/usr.bin/uname/uname
> >> 
> >> My paths are different, but here is an example (I've not
> >> built for armv7 in a long time):
> >> 
> >> # file /usr/obj/BUILDs/main-CA7-nodbg-clang/usr/main-src/arm.armv7/usr.bin/uname/uname
> >> /usr/obj/BUILDs/main-CA7-nodbg-clang/usr/main-src/arm.armv7/usr.bin/uname/uname: ELF 32-bit LSB executable, ARM, EABI5 version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, FreeBSD-style, for FreeBSD 15.0 (1500048), not stripped
> >> 
> >> Note that "(1500048)". Which number does your build
> >> of uname show for what is in your build tree (not
> >> what is installed)?
> >> 
> > # file /usr/obj/usr/src/arm.armv7/usr.bin/uname/uname
> > /usr/obj/usr/src/arm.armv7/usr.bin/uname/uname: ELF 32-bit LSB executable, ARM, EABI5 version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, FreeBSD-style, for FreeBSD 15.0 (1500063), not stripped
> > #
> 
> Hmm. I'm surprised at the 1500063 when uname -U reported
> 1500061. I wonder if it has since been rebuilt.
> 
> >>> How can the kernel and modules get out of sync?
> >> 
> >> WITHOUT_CLEAN (recently by default) use without META_MODE
> >> to cause updates based on better dependency information.
> >> 
> >>> Even then, /usr/src was updated  followed by an immediate
> >>> buildworld/buildkernel.
> >> 
> >> You do not mention installations explicitly, just
> >> builds. Was the world installed too?
> > Yes, sorry for the ambiguity.
> > 
> >> 
> >>> In that case, how did world and kernel
> >>> become mismatched and remain so for a week or more?
> >> 
> >> See above about correctly providing META_MODE and
> >> about the recent change to have WITHOUT_CLEAN by
> >> default (less rebuilds by default).
> >> 
> >>> The suggestion to delete /usr/obj is looking unavoidable, are
> >>> additional steps warranted?
> >> 
> >> Given that you seem to have been doing doing
> >> builds where META_MODE was not helping to
> >> track dependencies, I'd recommend a from-scratch
> >> META_MODE based build to get the tracking
> >> information fully in place for use in later
> >> builds.
> >> 
> >> If you are to do META_MODE builds, builds that
> >> disable META_MODE mess up its dependency tracking
> >> information by not updating it. Thus, only if
> >> you stop using META_MODE overall should to avoid
> >> using META_MODE for a specific build.
> >> 
> > 
> > When filemon stopped loading I ran a few build/install 
> > cycles without meta mode. I thought that would be harmless, 
> > but maybe not. Right now meta mode is running with the 
> > NO_FILEMON option.
> 
> Good point, META_MODE does not do as much when
> filemon is not operational.  Once filemon is
> operational, you will likely need to synchronize
> META_MODE again so that it gets all the information.
> 
Ahh, that is a significant detail. I expected "no filemon"
to perhaps be slower, but to be functionally equivalent. 


> > I'll let it run till it either finishes or crashes, then
> > decide whether to remove /usr/obj after rebooting.
> > 
> > One possible culprit is of course me: From time to time
> > the machine seemingly stalls, with no response to keyboard
> > nor debugger escape. I've routinely power-cycles the machine
> > to recover, confident that internal checks would catch any
> > inconsistencies that might be introduced by ungraceful
> > shutdown. Might my confidence be misplaced? 
> 
> I do not know that you have many alternatives.

Might there be some program that can independently
audit installed binaries against those in /usr/obj?
> 
> One thing using pkgbase style installs does is leave checksum
> data around for everything pkg installs. "pkg check -sa",
> if it is executable, will try to checksum everything handled
> via pkg and report on mismatches, both base packages and port
> packages. There is no equivalent for any other installation
> style that I know of.

It looks like pkgbase is a subject of much discussion and at
least some contention. Is there a tutorial somewhere of how
to use it in a simple self-hosted system? From the page at
https://wiki.freebsd.org/action/show/pkgbase?action=show&redirect=PkgBase
it seems a good deal more involved than "make installworld" 8-)


Thanks for writing!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.