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.devolder@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=c90eb88f04c6acf621e96821... -- Ike