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