mirror of
https://github.com/fspc/gbootroot.git
synced 2025-02-23 17:13:22 -05:00
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.
This commit is contained in:
parent
640ddbca30
commit
e8a3ac5b80
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…
x
Reference in New Issue
Block a user