Browse Source

Adds kernel_modules to find the path for modules specified on $ea3, also handles

the method specification (which modules are wanted) and the presentation to the
user.
master
freesource 23 years ago
parent
commit
e8a3ac5b80
  1. 80
      gbootroot

80
gbootroot

@ -202,6 +202,7 @@ my $gtk_perl_version = "0.7002";
my $pwd = `pwd`; chomp $pwd; my $pwd = `pwd`; chomp $pwd;
my $home_rootfs = "$home/root_filesystem/"; my $home_rootfs = "$home/root_filesystem/";
my $home_uml_kernel = "$home/uml_kernel/"; my $home_uml_kernel = "$home/uml_kernel/";
my $modules_directory = "/lib/modules";
# Yard Stuff # Yard Stuff
my $home_yard = "$home/yard"; my $home_yard = "$home/yard";
@ -271,6 +272,7 @@ my ($root_device,$root_filename,$method,$template,$filesystem_size,
$root_device_size); $root_device_size);
my $ars = {}; # anonymous hash my $ars = {}; # anonymous hash
# My own creation - the roots touch the ground if three lines are added. # My own creation - the roots touch the ground if three lines are added.
my @xpm_data = ( my @xpm_data = (
"32 45 3 1", "32 45 3 1",
@ -526,8 +528,10 @@ my $menu = Gtk::Menu->new();
my $item = Gtk::MenuItem->new("2 disk compression" ); my $item = Gtk::MenuItem->new("2 disk compression" );
$item->show(); $item->show();
# Eventually get_menu, or something totally different will be used. # Eventually get_menu, or something totally different will be used.
$item->signal_connect( 'activate',sub { $entry->set_text("2 disk compression"); $item->signal_connect( 'activate',
$container[METHOD] = "2 disk compression"}); sub { $entry->set_text("2 disk compression");
$container[METHOD] = "2 disk compression";
kernel_modules(); });
$menu->append( $item ); $menu->append( $item );
$opt->set_menu( $menu ); $opt->set_menu( $menu );
$box2->pack_start( $opt, $true, $true, 0 ); $box2->pack_start( $opt, $true, $true, 0 );
@ -881,9 +885,11 @@ sub advanced_boot_section {
$tooltips->set_tip( $ea3, "Add the modules found in" . $tooltips->set_tip( $ea3, "Add the modules found in" .
" /lib/modules/kernel-version which are" . " /lib/modules/kernel-version which are" .
" necessary for the Boot Method to work" . " necessary for the Boot Method to work" .
" properly.", " properly. Kmod inserts the modules," .
""); " and kmod needs to be built-in to the" .
$ea3->set_text($entry_advanced[11]) if defined $entry_advanced[11]; " kernel along with initrd and ramdisk." ,
"");
$ea3->set_text($entry_advanced[11]) if defined $entry_advanced[11];
#_______________________________________ #_______________________________________
# Append Options # Append Options
@ -914,6 +920,8 @@ sub advanced_boot_section {
} # end sub advanced_boot_section } # end sub advanced_boot_section
sub advanced_root_section { sub advanced_root_section {
if ($button_count_root == 0) { if ($button_count_root == 0) {
@ -2339,6 +2347,7 @@ elsif (defined $container[METHOD] && defined $container[KERNEL] &&
$container[ABS_APPEND] $container[ABS_APPEND]
); );
kernel_modules();
lilo(); # This is the default now, and the value for lilo(); # This is the default now, and the value for
# METHOD doesn't matter now. # METHOD doesn't matter now.
} }
@ -2559,6 +2568,67 @@ sub stripper {
} }
sub kernel_modules {
my (@modules, @modules_found);
my $module_choices = $ea3->get_text() if $ea3;
my $kernel_version_choice = $ea5->get_text() if $ea5;
undef $kernel_version_choice if defined $kernel_version_choice eq "";
undef $kernel_version_choice if !$kernel_version_choice;
my $kernel_version = kernel_version_check($container[KERNEL],
$kernel_version_choice);
#-----------------------------
# METHOD -> 2 DISK COMPRESSION
#-----------------------------
if ( $container[METHOD] eq "2 disk compression" ) {
$entry_advanced[11] = "floppy";
if ($ea3) {
if ($module_choices eq "") {
$ea3->set_text("floppy");
$module_choices = "floppy";
}
else {
$ea3->set_text($ea3->get_text() . " floppy")
if $ea3->get_text() !~ /\s*floppy\s*/;
$module_choices = $ea3->get_text();
}
}
else {
$module_choices = "floppy";
}
@modules = split(/\s+/, $module_choices);
}
info(1, "Modules: @modules\n");
# Figure out modules path.
if ( @modules ) {
foreach my $module (@modules) {
finddepth sub { if ( $File::Find::name =~ m,/$module\.o$, ) {
push(@modules_found,$File::Find::name);
} },
"$modules_directory/$kernel_version";
}
}
$, = " ";
info(1,"Modules found:\n@modules_found\n");
$, = "";
return @modules_found;
} # end sub kernel_modules
sub initrd_size { sub initrd_size {
info(0,"Boot Method: 2 disk\n", info(0,"Boot Method: 2 disk\n",

Loading…
Cancel
Save