diff options
Diffstat (limited to 'perl-install/Xconfig')
-rw-r--r-- | perl-install/Xconfig/main.pm | 1 | ||||
-rw-r--r-- | perl-install/Xconfig/various.pm | 23 |
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; |