diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh index 5658094872c84..dbe1eb0eb13e5 100644 --- a/pkgs/build-support/kernel/modules-closure.sh +++ b/pkgs/build-support/kernel/modules-closure.sh @@ -22,10 +22,13 @@ echo "kernel version is $version" closure= for module in $rootModules; do echo "root module: $module" - deps=$(modprobe --config no-config -d $kernel --set-version "$version" --show-depends "$module" \ - | sed 's/^insmod //') \ - || if test -z "$allowMissing"; then exit 1; fi - if [[ "$deps" != builtin* ]]; then + # Obtain the module dependencies with modprobe. + rawdeps=$(modprobe --config no-config -d "$kernel" --set-version "$version" --show-depends "$module") \ + || if test -z "$allowMissing"; then exit 1; fi + + if [[ "$rawdeps" != builtin* ]]; then + # Extract the module name from modprobe output and throws away the insmod part and the module arguments. + deps=$(printf '%s' "$rawdeps" | sed 's/^insmod \([^ ]*\).*/\1/') closure="$closure $deps" fi done