diff options
-rw-r--r-- | perl-install/Xconfig.pm | 4 | ||||
-rw-r--r-- | perl-install/Xconfigurator.pm | 25 | ||||
-rw-r--r-- | perl-install/Xconfigurator_consts.pm | 169 | ||||
-rw-r--r-- | perl-install/install_any.pm | 2 | ||||
-rw-r--r-- | perl-install/install_steps_gtk.pm | 2 | ||||
-rw-r--r-- | perl-install/mouse.pm | 2 |
6 files changed, 200 insertions, 4 deletions
diff --git a/perl-install/Xconfig.pm b/perl-install/Xconfig.pm index 67f5d4138..9f2ae364c 100644 --- a/perl-install/Xconfig.pm +++ b/perl-install/Xconfig.pm @@ -61,9 +61,11 @@ sub getinfoFromXF86Config { $c{flags}{needVideoRam} ||= 1 if /^\s*VideoRam\s+/; $c{vendor} ||= $1 if /^\s*VendorName\s+"(.*?)"/; $c{board} ||= $1 if /^\s*BoardName\s+"(.*?)"/; + $c{options}{$1} ||= 1 if /^\s*Option\s+"(.*?)"/; + $c{options}{$1} ||= 0 if /^\s*#\s*Option\s+"(.*?)"/; #- clockchip, ramdac, dacspeed read with following line. - push @{$c{lines}}, $_ unless /(Section|Identifier|VideoRam|VendorName|BoardName)/; + push @{$c{lines}}, $_ unless /(Section|Identifier|VideoRam|VendorName|BoardName|Option)/; add2hash($o->{card} ||= {}, \%c) if ($i =~ /E0/ && $c{type} && $c{type} ne "Generic VGA"); } elsif (/^Section "Monitor"/ .. /^EndSection/) { diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm index 57384a79b..3f8b7027c 100644 --- a/perl-install/Xconfigurator.pm +++ b/perl-install/Xconfigurator.pm @@ -2,7 +2,7 @@ package Xconfigurator; use diagnostics; use strict; -use vars qw($in $install $resolution_wanted @depths @monitorSize2resolution @hsyncranges %min_hsync4wres @vsyncranges %depths @resolutions %serversdriver @svgaservers @accelservers @allbutfbservers @allservers %vgamodes %videomemory @ramdac_name @ramdac_id @clockchip_name @clockchip_id %keymap_translate %standard_monitors $intro_text $finalcomment_text $s3_comment $cirrus_comment $probeonlywarning_text $monitorintro_text $hsyncintro_text $vsyncintro_text $XF86firstchunk_text $keyboardsection_start $keyboardsection_part2 $keyboardsection_end $pointersection_text1 $pointersection_text2 $monitorsection_text1 $monitorsection_text2 $monitorsection_text3 $monitorsection_text4 $modelines_text_Trident_TG_96xx $modelines_text $devicesection_text $screensection_text1 %lines %xkb_options); +use vars qw($in $install $resolution_wanted @depths @monitorSize2resolution @hsyncranges %min_hsync4wres @vsyncranges %depths @resolutions %serversdriver @svgaservers @accelservers @allbutfbservers @allservers %vgamodes %videomemory @ramdac_name @ramdac_id @clockchip_name @clockchip_id %keymap_translate %standard_monitors $intro_text $finalcomment_text $s3_comment $cirrus_comment $probeonlywarning_text $monitorintro_text $hsyncintro_text $vsyncintro_text $XF86firstchunk_text $keyboardsection_start $keyboardsection_part2 $keyboardsection_end $pointersection_text1 $pointersection_text2 $monitorsection_text1 $monitorsection_text2 $monitorsection_text3 $monitorsection_text4 $modelines_text_Trident_TG_96xx $modelines_text $devicesection_text $screensection_text1 %lines @options %xkb_options); use pci_probing::main; use common qw(:common :file :functional :system); @@ -181,6 +181,25 @@ sub cardConfiguration(;$$$) { $card; } +sub optionsConfiguration($) { + my ($o) = @_; + my @l; + my %l; + + foreach (@options) { + if ($o->{card}{server} eq $_->[1] && $o->{card}{identifier} =~ /$_->[2]/) { + $o->{card}{options}{$_->[0]} ||= 0; + unless ($l{$_->[0]}) { + push @l, $_->[0], { val => \$o->{card}{options}{$_->[0]}, type => 'bool' }; + $l{$_->[0]} = 1; + } + } + } + @l = @l[0..19] if @l > 19; #- reduce list size to 10 for display (it's a hash). + + $in->ask_from_entries_refH('', _("Choose options for server"), \@l); +} + sub monitorConfiguration(;$$) { my $monitor = shift || {}; my $useFB = shift || 0; @@ -627,6 +646,9 @@ sub write_XF86Config { print F " # Clock lines\n"; print F " Clocks $_\n" foreach (@{$O->{clocklines}}); } + + print F "\n"; + print F map { (!$O->{options}{$_} && '#') . qq( Option "$_"\n) } keys %{$O->{options} || {}}; print F "EndSection\n\n\n"; #- Write Screen sections. @@ -734,6 +756,7 @@ sub main { my %c = my @c = ( __("Change Monitor") => sub { $o->{monitor} = monitorConfiguration() }, __("Change Graphic card") => sub { $o->{card} = cardConfiguration('', 'noauto', $allowFB) }, + ($::expert ? (__("Change Server options") => sub { optionsConfiguration($o) }) : ()), __("Change Resolution") => sub { resolutionsConfiguration($o, noauto => 1) }, __("Automatical resolutions search") => sub { delete $o->{card}{depth}; diff --git a/perl-install/Xconfigurator_consts.pm b/perl-install/Xconfigurator_consts.pm index ef4a15d70..d8387879a 100644 --- a/perl-install/Xconfigurator_consts.pm +++ b/perl-install/Xconfigurator_consts.pm @@ -154,6 +154,175 @@ $resolution_wanted = "1024x768"; #- 'Cirrus Logic|GD 5446' => [ ' Option "no_bitblt"' ], ); +#- most usefull server options have to be accessible at the beginning, since +#- no more than a small set of options will be available for the user, maybe ? +@options = ( + [ 'power_saver', 'Mono', '.*' ], + [ 'hibit_low', 'VGA16', 'Tseng.*ET4000' ], + [ 'hibit_high', 'VGA16', 'Tseng.*ET4000' ], + [ 'power_saver', 'VGA16', '.*' ], + [ 'noaccel', 'SVGA', 'Cirrus|C&T|SiS|Oak|Western Digital|Alliance|Trident|Tseng' ], + [ 'no_accel', 'SVGA', 'ARK|MGA|i740|Oak|ET6000|W32|Media.*GX|Neomagic' ], + [ 'linear', 'SVGA', 'Cirrus|ET6000|ET4000/W32p rev [CD]|Oak|Neomagic|Triden|Tseng' ], + [ 'nolinear', 'SVGA', 'Cirrus|C&T|Trident' ], + [ 'no_linear', 'SVGA', 'ARK|SiS|Neomagic|Tseng' ], + [ 'no_bitblt', 'SVGA', 'Cirrus|C&T|SiS' ], + [ 'no_imageblt', 'SVGA', 'Cirrus|C&T|SiS' ], + [ 'sw_cursor', 'SVGA', '.*' ], + [ 'slow_dram', 'SVGA', 'Cirrus|Trident|ET6000|W32|Western Digital|Tseng' ], + [ 'mga_sdram', 'SVGA', 'MGA' ], + [ 'no_pixmap_cache', 'SVGA', 'ARK|Cirrus|C&T|MGA|SiS|Trident.*9440|Trident.*9680|Tseng' ], + [ 'no_mmio', 'SVGA', 'Cirrus|Neomagic|Trident' ], + [ 'pci_burst_off', 'SVGA', 'ET6000|W32|Trident|Tseng' ], + [ 'hw_clocks', 'SVGA', 'SiS|C&T' ], + [ 'use_modeline', 'SVGA', 'C&T' ], + [ 'enable_bitblt', 'SVGA', 'Oak' ], + [ 'w32_interleave_off', 'SVGA', 'ET6000|W32|Tseng' ], + [ 'fifo_conservative', 'SVGA', 'Cirrus|ARK|SiS|Oak' ], + [ 'fifo_moderate', 'SVGA', 'Cirrus|ARK|SiS' ], + [ 'all_wait', 'SVGA', 'Oak' ], + [ 'one_wait', 'SVGA', 'Oak' ], + [ 'first_wait', 'SVGA', 'Oak' ], + [ 'first_wwait', 'SVGA', 'Oak' ], + [ 'write_wait', 'SVGA', 'Oak' ], + [ 'read_wait', 'SVGA', 'Oak' ], + [ 'clgd6225_lcd', 'SVGA', 'Cirrus' ], + [ 'fix_panel_size', 'SVGA', 'C&T' ], + [ 'lcd_center', 'SVGA', 'C&T|Neomagic|Trident' ], + [ 'cyber_shadow', 'SVGA', 'Trident' ], + [ 'STN', 'SVGA', 'C&T' ], + [ 'no_stretch', 'SVGA', 'C&T|Cirrus|Neomagic|Trident' ], + [ 'no_prog_lcd_mode_regs', 'SVGA', 'Neomagic' ], + [ 'prog_lcd_mode_stretch', 'SVGA', 'Neomagic' ], + [ 'suspend_hack', 'SVGA', 'C&T' ], + [ 'use_18bit_bus', 'SVGA', 'C&T' ], + [ 'hibit_low', 'SVGA', 'Tseng.*ET4000' ], + [ 'hibit_high', 'SVGA', 'Tseng.*ET4000' ], + [ 'probe_clocks', 'SVGA', 'Cirrus' ], + [ 'power_saver', 'SVGA', '.*' ], + [ 'use_vlck1', 'SVGA', 'C&T' ], + [ 'sgram', 'SVGA', 'i740' ], + [ 'sdram', 'SVGA', 'i740' ], + [ 'no_2mb_banksel', 'SVGA', 'Cirrus' ], + [ 'tgui_pci_read_on', 'SVGA', 'Trident' ], + [ 'tgui_pci_write_on', 'SVGA', 'Trident' ], + [ 'no_program_clocks', 'SVGA', 'Trident' ], + [ 'mmio', 'SVGA', 'Cirrus|C&T|Neomagic' ], + [ 'sync_on_green', 'SVGA', 'C&T|MGA' ], + [ 'pci_retry', 'SVGA', 'Tseng|MGA|Cirrus' ], + [ 'hw_cursor', 'SVGA', 'C&T|SiS|ARK|ET6000|i740|Tseng' ], + [ 'xaa_no_color_exp', 'SVGA', 'C&T|Cirrus|Trident|Tseng' ], + [ 'xaa_benchmarks', 'SVGA', 'C&T' ], + [ 'pci_burst_on', 'SVGA', 'Trident|Tseng' ], + [ 'prog_lcd_mode_regs', 'SVGA', 'Neomagic' ], + [ 'no_prog_lcd_mode_stretch', 'SVGA', 'Neomagic' ], + [ 'no_wait', 'SVGA', 'Oak' ], + #- [ 'med_dram', 'SVGA', 'Cirrus|Trident|Western Digital' ], #- WARNING, MAY DAMAGE CARD + #- [ 'fast_dram', 'SVGA', 'C&T|Cirrus|ET[46]000|Trident|Western Digital' ], #- WARNING, MAY DAMAGE CARD + #- [ 'fast_vram', 'SVGA', 'SiS' ], #- WARNING, MAY DAMAGE CARD + #- [ 'clock_50', 'SVGA', 'Oak' ], #- WARNING, MAY DAMAGE CARD + #- [ 'clock_66', 'SVGA', 'Oak' ], #- WARNING, MAY DAMAGE CARD + #- [ 'fifo_aggressive', 'SVGA', 'Cirrus|ARK|SiS|Oak' ], #- WARNING, MAY DAMAGE CARD + #- [ 'override_validate_mode', 'SVGA', 'Neomagic' ], #- WARNING, MAY DAMAGE CARD + #- [ 'tgui_mclk_66', 'SVGA', 'Trident' ], #- WARNING, MAY DAMAGE CARD + #- [ 'favour_bitblt', 'SVGA', 'Cirrus' ], #- OBSELETE + [ 'sw_cursor', '3DLabs', '.*' ], + [ 'no_pixmap_cache', '3DLabs', '.*' ], + [ 'no_accel', '3DLabs', '.*' ], + [ 'firegl_3000', '3DLabs', '.*' ], + [ 'sync_on_green', '3DLabs', '.*' ], + [ 'pci_retry', '3DLabs', '.*' ], + #- [ 'overclock_mem', '3DLabs', '.*' ], #- WARNING, MAY DAMAGE CARD + [ 'dac_8_bit', 'I128', '.*' ], + [ 'no_accel', 'I128', '.*' ], + [ 'sync_on_green', 'I128', '.*' ], + [ 'composite', 'Mach32', '.*' ], + [ 'sw_cursor', 'Mach32', '.*' ], + [ 'dac_8_bit', 'Mach32', '.*' ], + [ 'ast_mach32', 'Mach32', '.*' ], + [ 'intel_gx', 'Mach32', '.*' ], + [ 'no_linear', 'Mach32', '.*' ], + [ 'sw_cursor', 'Mach64', '.*' ], + [ 'nolinear', 'Mach64', '.*' ], + [ 'no_block_write', 'Mach64', '.*' ], + [ 'block_write', 'Mach64', '.*' ], + [ 'fifo_conservative', 'Mach64', '.*' ], + [ 'no_font_cache', 'Mach64', '.*' ], + [ 'no_pixmap_cache', 'Mach64', '.*' ], + [ 'composite', 'Mach64', '.*' ], + [ 'power_saver', 'Mach64', '.*' ], + [ 'no_program_clocks', 'Mach64', '.*' ], + [ 'no_bios_clocks', 'Mach64', '.*' ], + [ 'dac_6_bit', 'Mach64', '.*' ], + [ 'dac_8_bit', 'Mach64', '.*' ], + [ 'hw_cursor', 'Mach64', '.*' ], + #- [ 'override_bios', 'Mach64', '.*' ], #- WARNING, MAY DAMAGE CARD + [ 'sw_cursor', 'P9000', '.*' ], + [ 'noaccel', 'P9000', '.*' ], + [ 'sync_on_green', 'P9000', '.*' ], + [ 'vram_128', 'P9000', '.*' ], + [ 'nolinear', 'S3', '.*' ], + [ 'dac_8_bit', 'S3', '.*' ], + [ 'slow_vram', 'S3', 'S3.*964' ], + [ 'stb_pegasus', 'S3', 'S3.*928' ], + [ 'SPEA_Mercury', 'S3', 'S3.*(928|964)' ], + [ 'number_nine', 'S3', 'S3.*(864|928)' ], + [ 'lcd_center', 'S3', 'S3.*Aurora64V' ], + [ 'noaccel', 'S3V', '.*' ], + [ 'slow_edodram', 'S3V', '.*' ], + [ 'pci_burst_on', 'S3V', '.*' ], + [ 'early_ras_precharge', 'S3V', '.*' ], + [ 'late_ras_precharge', 'S3V', '.*' ], + [ 'fifo_conservative', 'S3V', '.*' ], + [ 'fifo_aggressive', 'S3V', '.*' ], + [ 'fifo_moderate', 'S3V', '.*' ], + [ 'lcd_center', 'S3V', 'S3.*ViRGE\/MX' ], + [ 'hw_cursor', 'S3V', '.*' ], + [ 'pci_retry', 'S3V', '.*' ], + [ 'dac_6_bit', 'AGX', '.*' ], + [ 'dac_8_bit', 'AGX', '.*' ], + [ 'sync_on_green', 'AGX', '.*' ], + [ '8_bit_bus', 'AGX', '.*' ], + [ 'wait_state', 'AGX', '.*' ], + [ 'no_wait_state', 'AGX', '.*' ], + [ 'noaccel', 'AGX', '.*' ], + [ 'crtc_delay', 'AGX', '.*' ], + [ 'fifo_conserv', 'AGX', '.*' ], + [ 'fifo_aggressive', 'AGX', '.*' ], + [ 'fifo_moderate', 'AGX', '.*' ], + [ 'vram_delay_latch', 'AGX', '.*' ], + [ 'vram_delay_ras', 'AGX', '.*' ], + [ 'vram_extend_ras', 'AGX', '.*' ], + [ 'slow_dram', 'AGX', '.*' ], + [ 'slow_vram', 'AGX', '.*' ], + [ 'med_dram', 'AGX', '.*' ], + [ 'med_vram', 'AGX', '.*' ], + [ 'fast_dram', 'AGX', '.*' ], + [ 'fast_vram', 'AGX', '.*' ], + [ 'engine_delay', 'AGX', '.*' ], + [ 'vram_128', 'AGX', '.*' ], + [ 'vram_256', 'AGX', '.*' ], + [ 'refresh_20', 'AGX', '.*' ], + [ 'refresh_25', 'AGX', '.*' ], + [ 'screen_refresh', 'AGX', '.*' ], + [ 'vlb_a', 'AGX', '.*' ], + [ 'vlb_b', 'AGX', '.*' ], + [ 'slow_dram', 'W32', '.*' ], + [ 'pci_burst_off', 'W32', '.*' ], + [ 'w32_interleave_off', 'W32', '.*' ], + [ 'no_accel', 'W32', '.*' ], + [ 'nolinear', '8514', '.*' ], + [ 'sw_cursor', '8514', '.*' ], + [ 'no_block_write', '8514', '.*' ], + [ 'block_write', '8514', '.*' ], + [ 'fifo_conservative', '8514', '.*' ], + [ 'no_font_cache', '8514', '.*' ], + [ 'no_pixmap_cache', '8514', '.*' ], + [ 'composite', '8514', '.*' ], + [ 'power_saver', '8514', '.*' ], + [ 'power_saver', 'FBDev', '.*' ], +); + %xkb_options = ( 'ru' => [ 'XkbVariant "winkeys"', 'XkbOptions "grp:caps_toggle"' ], ); diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm index 38ee82099..6e1b8bb1c 100644 --- a/perl-install/install_any.pm +++ b/perl-install/install_any.pm @@ -197,6 +197,8 @@ sub searchAndMount4Upgrade { my ($o) = @_; my ($root, $found); + my $w = $::beginner && $o->wait_message('', _("Searching root partition.")); + $o->{partitioning}{readonly} = 1; #- try to find the partition where the system is installed if beginner diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index 150ff183f..a958d1553 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -270,7 +270,7 @@ sub choosePackages { return if $::beginner; chooseSizeToInstall(@_); - install_steps_interactive::choosePackages(@_); + install_steps_interactive::choosePackages(@_) unless $::expert; choosePackagesTree(@_) if $::expert; } sub chooseSizeToInstall { diff --git a/perl-install/mouse.pm b/perl-install/mouse.pm index 92d6683b5..3d2551009 100644 --- a/perl-install/mouse.pm +++ b/perl-install/mouse.pm @@ -90,7 +90,7 @@ sub mouseconfig { my ($t, $mouse); foreach (0..1) { #- probe only ttyS0 and ttyS1. - $t = detect_devices::probe_device(devices::make("/dev/ttyS$_")); + $t = detect_devices::probe_device("/dev/ttyS$_"); if ($t->{CLASS} =~ /MOUSE/i) { $t->{MFG} ||= $t->{MANUFACTURER}; |