Brian, with the current UYOK implementation may happen that a kernel module is not loaded on the golden client, but this module is needed for the installation. For example on SuSE the af_packet (to manage raw packet sockets) may be not loaded, but it's needed by dhcp during the installation.
At the moment I don't see other modules (in general all the modules needed during the installation should be loaded in the golden client), but it should be good to hard-code a list of these needed modules inside the UYOK script. To resolve I propose the attached patch. What do you think? Cheers, -Andrea
Index: lib/SystemImager/UseYourOwnKernel.pm =================================================================== --- lib/SystemImager/UseYourOwnKernel.pm (revision 3554) +++ lib/SystemImager/UseYourOwnKernel.pm (working copy) @@ -435,7 +435,9 @@ sub get_load_ordered_list_of_running_modules() { my $file = "/proc/modules"; + my @mandatory_modules = ('af_packet'); my @modules; + open(MODULES,"<$file") or die("Couldn't open $file for reading."); while(<MODULES>) { my ($module) = split; @@ -448,6 +450,30 @@ } close(MODULES); + # add not-loaded modules mandatory for the installation environment + foreach my $module (@mandatory_modules) { + chomp(my $module_file = `modinfo -F filename $module 2>/dev/null`); + if ($?) { + print STDERR qq(WARNING: Couldn't find module "$module", assuming it's built into the kernel.\n); + next; + } + push (@modules, $module_file); + # add module dependencies + chomp(my @deps = split(/,/, `modinfo -F depends $module 2>/dev/null`)); + foreach (@deps) { + next unless ($_); + chomp(my $module_file = `modinfo -F filename $_ 2>/dev/null`); + if ($?) { + print STDERR qq(WARNING: Couldn't find module "$_", assuming it's built into the kernel.\n); + next; + } + push (@modules, $module_file); + } + } + # remove duplicate modules + my %seen = (); + @modules = grep { ! $seen{$_} ++ } @modules; + # reverse order list of running modules @modules = reverse(@modules);