summaryrefslogtreecommitdiffstats
path: root/perl-install/Xconfig
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/Xconfig')
-rw-r--r--perl-install/Xconfig/main.pm1
-rw-r--r--perl-install/Xconfig/various.pm23
2 files changed, 24 insertions, 0 deletions
diff --git a/perl-install/Xconfig/main.pm b/perl-install/Xconfig/main.pm
index fbb65404a..a3398c80f 100644
--- a/perl-install/Xconfig/main.pm
+++ b/perl-install/Xconfig/main.pm
@@ -196,6 +196,7 @@ sub write {
Xconfig::various::check_XF86Config_symlink();
symlinkf "../../usr/X11R6/bin/Xorg", "$::prefix/etc/X11/X";
if ($X->{resolution}{bios}) {
+ Xconfig::various::setupFB($X->{resolution}{bios});
'need_reboot';
} else {
'need_restart';
diff --git a/perl-install/Xconfig/various.pm b/perl-install/Xconfig/various.pm
index c1997fb5a..657c26b2f 100644
--- a/perl-install/Xconfig/various.pm
+++ b/perl-install/Xconfig/various.pm
@@ -149,4 +149,27 @@ sub check_XF86Config_symlink() {
}
}
+sub setupFB {
+ my ($bios_vga_mode) = @_;
+
+ require bootloader;
+ my ($bootloader, $all_hds);
+
+ if ($::isInstall) {
+ ($bootloader, $all_hds) = ($::o->{bootloader}, $::o->{all_hds});
+ } else {
+ $all_hds = fsedit::get_hds();
+ fs::get_info_from_fstab($all_hds);
+
+ $bootloader = bootloader::read($all_hds) or return;
+ }
+
+ foreach (@{$bootloader->{entries}}) {
+ $_->{vga} = $bios_vga_mode if $_->{vga}; #- replace existing vga= with
+ }
+
+ bootloader::action($bootloader, 'write', $all_hds);
+ bootloader::action($bootloader, 'when_config_changed');
+}
+
1;