diff options
-rw-r--r-- | images/NEWS | 2 | ||||
-rwxr-xr-x | images/make_boot_img | 3 | ||||
-rw-r--r-- | kernel/modules.pl | 14 |
3 files changed, 18 insertions, 1 deletions
diff --git a/images/NEWS b/images/NEWS index eab97dad3..0a91e7a9b 100644 --- a/images/NEWS +++ b/images/NEWS @@ -1,3 +1,5 @@ +- pass the modules we want in modules.alias, but not in the initrd through to + dracut via an environment variable - add BOOT_AUTOMATIC_METHOD to inject command line params into boot.iso syslinux Version 2.1 - 5 November 2013 by Colin Guthrie diff --git a/images/make_boot_img b/images/make_boot_img index 457572ca0..2ac8eb189 100755 --- a/images/make_boot_img +++ b/images/make_boot_img @@ -154,6 +154,7 @@ sub initrd { my ($ext) = $img =~ /rdz-(.*)/ or die "bad initrd name ($img)"; my $modules = " mgainstaller "; my $drivers = `perl ../kernel/modules.pl list_needed_modules $kernel | xargs`; + my $fakedrivers = `perl ../kernel/modules.pl list_fake_modules $kernel | xargs`; if ($ENV{DEBUGSTAGE1} || $ENV{BUILD_KA}) { $modules="$modules busybox "; @@ -162,7 +163,7 @@ sub initrd { mkdir_p("build/dracut.conf.d"); # TODO if --nofscks and --no-hostonly are switched, dracut gives an error - fix or report upstream - __ "DRAKX_STAGE1_BINARY=$stage1_binary DRAKX_INIT_BINARY=$init_binary dracut --conf dracut.conf --confdir ./build/dracut.conf.d --add ' $modules ' --add-drivers ' $drivers ' '$img' '$kernel'"; + __ "DRAKX_STAGE1_BINARY=$stage1_binary DRAKX_INIT_BINARY=$init_binary DRAKX_FAKE_MODULES='$fakedrivers' dracut --conf dracut.conf --confdir ./build/dracut.conf.d --add ' $modules ' --add-drivers ' $drivers ' '$img' '$kernel'"; chmod(0644, $img); } 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")); |