Subject: [bug#30629] [PATCH 0/5] Detect missing modules in the initrd

From: Danny Milosavljevic <[email-masked]>
Date: Tue, 27 Feb 2018 23:50:27 +0100

Hi Ludo,

> > I'm not sure about the module resolution order, first use the aliases or first
> > use the real module files?  
> 
> In what part?

modprobe.  It can either get "pci:024215325233" or "ahci".  The first is an alias
and the latter eventually resolves to a file "ahci.ko".

> I’d rather change that to ‘modprobe-program’ and have it return:
> 
>   (program-file "modprobe" (with-import-modules … #~(begin …)))

Sure.

> I think we can’t use ‘uname’ here because that returns info about the
> build host, not about the machine and kernel we’re deploying.

Yeah, oops.  I tried to avoid having it in the first place, but kmod
(depmod) insists.  Sigh...  I'll add a hack...

> > +                 (path (string-append linux-release-module-directory name)))  
> 
> s/path/directory/ :-)

It's the full path to the module file (a regular file).  "name" was taken :)

It's rewrite it so it says file-name...

> > +                (match (delete-duplicates (matching-modules module
                             ^^^^^^^^^^^^^^^^^ :)

> Should it be an error when MODULE could not be found?

Yes,

I will properly implement the modprobe "-q" option.

(What Linux does is call this thing with "-q" which means modprobe shouldn't
print anything)

After that, we can reinstate error printing.

Right now it's a little disconcerting if it prints the errors - I tried it :)

> Also, indentation should be like:
> 
>   (for-each (lambda (option)
>               …
>               (for-each (lambda (module)
>                           …)))
>             …)

Sure.

> >  (define* (base-initrd file-systems
> >                        #:key
> >                        (linux linux-libre)
> > +                      (linux-modules '())
> >                        (kmod kmod-minimal/static)
> >                        (mapped-devices '())
> >                        qemu-networking?  
> 
> We no longer need #:kmod here.

Yes, we do.  It doesn't end up in the finished initrd file directly, 
but flat-linux-module-directory uses it (now) in order to invoke depmod -
otherwise we don't have modules.alias etc.

Also, when I replace kmod-minimal/static by kmod I get a massive number of
test failures.  What I'm trying to say, in this case I think
having an intermediate step kmod-minimal/static is the least of the evils...