[arch-projects] [mkinitcpio][PATCH] check if module is builtin kernel in add_module
Dave Reisner
d at falconindy.com
Sun Sep 10 17:33:18 UTC 2017
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 at 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
More information about the arch-projects
mailing list