From 284ba5ab6fc742dd3f7a5a4705207f9b2d4de5be Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Fri, 1 Nov 2013 10:35:03 +0000 Subject: images/kernel: Ensure the previously hand-picked modules are included in the new dracut-based initrd. This removes functions no longer called and adds a new one which will simply list the desired modules and pass them on the dracut command line. This should mean we have the same modules as before (at least) which should mean less regressions. This does increase the size of the initrd back up quite a lot (as expected) so we may want to look at optimising other areas to bring it back down a bit again. --- kernel/modules.pl | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) (limited to 'kernel') 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")); -- cgit v1.2.1 From 79b08a48f3cff888454ebc4a71db4a3e92d992fd Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Wed, 13 Nov 2013 11:43:50 +0100 Subject: images/kernel: Pass the modules we need to be in modules.alias through to dracut. The installer needs to have the modules.alias information for more kernel modules than are actually included. In order to do this we need to use and environment variable as there is no sensible way to do this via dracut command line arguments. The mgainstaller dracut module will need updating accordingly. This should solve the problem where Sound Cards are shown as 'not configured' at the end of the install. --- kernel/modules.pl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'kernel') diff --git a/kernel/modules.pl b/kernel/modules.pl index 3b68b4039..70d6ed0bd 100644 --- a/kernel/modules.pl +++ b/kernel/modules.pl @@ -56,6 +56,20 @@ sub list_needed_modules { } } +sub list_fake_modules { + my ($kern_ver) = @_; + + load_dependencies("/lib/modules/$kern_ver/modules.dep"); + + my @all = map { category2modules($_) } split(' ', 'multimedia/*'); + my %wanted_modules = map { (list_modules::modname2filename($_) => 1) } @all; + foreach (`find /lib/modules/$kern_ver -name '*.ko.?z'`) { + my $modfile = basename($_); + $modfile =~ s/\.ko\.xz//; + $wanted_modules{$modfile} and print "$modfile\n"; + } +} + sub get_main_modules() { my $base = dirname($0); my $main = chomp_(cat_("$base/RPMS/.main")); -- cgit v1.2.1 From bc0277714b36ec3207002a22e009317dae65c16e Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Mon, 2 Dec 2013 07:16:38 +0100 Subject: include "sdhci-acpi" for eMMC (mga#11812) --- kernel/list_modules.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'kernel') diff --git a/kernel/list_modules.pm b/kernel/list_modules.pm index c4ee7674d..63a382012 100644 --- a/kernel/list_modules.pm +++ b/kernel/list_modules.pm @@ -332,7 +332,8 @@ our %l = ( other => [ qw(defxx ide-floppy ide-tape loop lp nbd sg st), qw(parport_pc parport_serial), - qw(btaudio mmc_block), + qw(btaudio), + qw(mmc_block sdhci-acpi), # eMMC 'cryptoloop', if_(arch() =~ /sparc/, 'openprom'), -- cgit v1.2.1