diff options
Diffstat (limited to 'kernel/modules.pl')
-rw-r--r-- | kernel/modules.pl | 31 |
1 files changed, 7 insertions, 24 deletions
diff --git a/kernel/modules.pl b/kernel/modules.pl index b64c92fa2..3b68b4039 100644 --- a/kernel/modules.pl +++ b/kernel/modules.pl @@ -41,38 +41,21 @@ sub modules() { @nls_modules, map { category2modules($_) } split(' ', $images_cat); } -sub get_firmwares() { +sub list_needed_modules { my ($kern_ver) = @_; - foreach (all("all.kernels/$kern_ver/modules")) { - foreach(`/sbin/modinfo -Ffirmware "all.kernels/$kern_ver/modules/$_"`) { - mkdir_p(dirname("all.kernels/$kern_ver/firmware/$_")); - eval { cp_af("/lib/firmware/$_", "all.kernels/$kern_ver/firmware/$_"); }; - } - } -} - -sub remove_unneeded_modules { - my ($kern_ver) = @_; - - load_dependencies("all.kernels/$kern_ver/modules.dep"); + load_dependencies("/lib/modules/$kern_ver/modules.dep"); my @all = modules(); my @all_with_deps = map { dependencies_closure($_) } @all; - my %wanted_modules = map { (list_modules::modname2filename($_) . ".ko.xz" => 1) } @all_with_deps; - foreach (all("all.kernels/$kern_ver/modules")) { - $wanted_modules{$_} or unlink "all.kernels/$kern_ver/modules/$_"; + my %wanted_modules = map { (list_modules::modname2filename($_) => 1) } @all_with_deps; + foreach (`find /lib/modules/$kern_ver -name '*.ko.?z'`) { + my $modfile = basename($_); + $modfile =~ s/\.ko\.xz//; + $wanted_modules{$modfile} and print "$modfile\n"; } } -sub make_modules_per_image { - my ($kern_ver) = @_; - - my $dir = "all.kernels/$kern_ver/modules"; - - system("cd $dir ; tar cf ../all_modules.tar *.ko.*") == 0 or die "tar failed\n"; -} - sub get_main_modules() { my $base = dirname($0); my $main = chomp_(cat_("$base/RPMS/.main")); |