On Sun, Sep 10, 2017 at 05:33:18PM +0000, Dave Reisner wrote:
> On Sun, Sep 10, 2017 at 12:21:11PM +0200, BlackEagle via arch-projects wrote:
> > When we want to make sure a module is added to initcpio, but the module
> > is built in the kernel, we now get an error the module is not found.
> > Therefore we should check if the module is builtin and don't fail when
> > its found there.
> > 
> > example: when sd_mod is built in your kernel you got an error before
> > 
> > ==> ERROR: module not found: `sd_mod'
> > 
> > but the module can be found in /lib/modules/$KERNELNAME/modules.builtin
> > 'kernel/drivers/scsi/sd_mod.ko'
> > 
> > Signed-off-by: BlackEagle <ike.devol...@gmail.com>
> > ---
> >  functions | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/functions b/functions
> > index 941312f..3051e81 100644
> > --- a/functions
> > +++ b/functions
> > @@ -400,6 +400,9 @@ add_module() {
> >      done < <(modinfo -b "$_optmoduleroot" -k "$KERNELVERSION" -0 "$target" 
> > 2>/dev/null)
> > 
> >      if (( !found )); then
> > +        if grep "$target" 
> > "$_optmoduleroot/lib/modules/$KERNELVERSION/modules.builtin" > /dev/null 
> > 2>&1; then
> > +            return 0
> > +        fi
> 
> But we already use this file to preseed the _addedmodules array and
> treat builtins as already satisfied:
> 
> https://git.archlinux.org/mkinitcpio.git/tree/mkinitcpio#n497
> 
> Please figure out why this doesn't work for you, or at least provide a
> simplified case to reproduce the error you're seeing.
> 
> >          (( ign_errors || _addedmodules["$target"] )) && return 0
> >          error "module not found: \`%s'" "$target"
> >          return 1
> > --
> > 2.14.1

After the discussion on IRC it became clear there is already a fix that
is not yet in the stable mkinitcpio package. The proper fix was already
added [1]

[1] 
https://git.archlinux.org/mkinitcpio.git/commit/?id=c90eb88f04c6acf621e9682172636fae3d0328ad

-- 
Ike

Attachment: signature.asc
Description: PGP signature

Reply via email to