diff options
-rw-r--r-- | perl-install/install_gtk.pm | 12 | ||||
-rw-r--r-- | perl-install/install_steps_gtk.pm | 16 |
2 files changed, 14 insertions, 14 deletions
diff --git a/perl-install/install_gtk.pm b/perl-install/install_gtk.pm index 0bd4afcba..fe8ae2fe9 100644 --- a/perl-install/install_gtk.pm +++ b/perl-install/install_gtk.pm @@ -189,22 +189,18 @@ sub init_sizes() { #------------------------------------------------------------------------------ sub createXconf { - my ($file, $mouse_type, $mouse_dev, $wacom_dev) = @_; + my ($file, $mouse_type, $mouse_dev, $wacom_dev, $Driver) = @_; $mouse_type = 'IMPS/2' if $mouse_type eq 'ExplorerPS/2'; - devices::make("/dev/kbd") if arch() =~ /^sparc/; #- used by Xsun style server. symlinkf(devices::make($mouse_dev), "/dev/mouse"); #- needed for imlib to start on 8-bit depth visual. symlink("/tmp/stage2/etc/imrc", "/etc/imrc"); symlink("/tmp/stage2/etc/im_palette.pal", "etc/im_palette.pal"); -if (arch() =~ /^ia64|x86_64/) { - require Xconfig::card; - my ($card) = Xconfig::card::probe(); - Xconfig::card::add_to_card__using_Cards($card, $card->{BoardName}) if $card && $card->{BoardName}; - log::l("Mouse type is $mouse_type and Card driver is " . $card->{Driver}); - output($file, sprintf(<<'END', $mouse_type, $card->{Driver})); +if ($Driver) { + log::l("Mouse type is $mouse_type and Card driver is " . $card->{Driver}); + output($file, sprintf(<<'END', $mouse_type, $Driver)); Section "Files" FontPath "/usr/X11R6/lib/X11/fonts:unscaled" diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index 554675cfc..02e950443 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -36,7 +36,6 @@ sub new($$) { unless ($::testing) { if ($ENV{DISPLAY} eq ":0" && !$::live) { my $f = "/tmp/Xconf"; - install_gtk::createXconf($f, @{$o->{mouse}}{"XMOUSETYPE", "device"}, $o->{mouse}{wacom}[0]); devices::make("/dev/kbd"); local (*T1, *T2); @@ -44,14 +43,16 @@ sub new($$) { open T2, ">/dev/tty6"; my $launchX = sub { + my ($server, $Driver) = @_; my $ok = 1; my $xpmac_opts = cat_("/proc/cmdline"); + install_gtk::createXconf($f, @{$o->{mouse}}{"XMOUSETYPE", "device"}, $o->{mouse}{wacom}[0], $Driver); unless (-d "/var/log") { mkdir("/var/log") } local $SIG{CHLD} = sub { $ok = 0 if waitpid(-1, c::WNOHANG()) > 0 }; unless (fork) { - exec $_[0], (arch() =~ /^sparc/ || arch() eq "ppc" ? () : ("-kb")), "-dpms","-s" ,"240", - ($_[0] =~ /Xpmac/ ? $xpmac_opts !~ /ofonly/ ? ("-mode", "17", "-depth", "32") : ("-mach64"):()), - ($_[0] =~ /Xsun/ || $_[0] =~ /Xpmac/ ? ("-fp", "/usr/X11R6/lib/X11/fonts:unscaled") : + exec $server, (arch() =~ /^sparc/ || arch() eq "ppc" ? () : ("-kb")), "-dpms","-s" ,"240", + ($server =~ /Xpmac/ ? $xpmac_opts !~ /ofonly/ ? ("-mode", "17", "-depth", "32") : ("-mach64"):()), + ($server =~ /Xsun/ || $server =~ /Xpmac/ ? ("-fp", "/usr/X11R6/lib/X11/fonts:unscaled") : ("-allowMouseOpenFail", "-xf86config", $f)) or exit 1; } foreach (1..60) { @@ -78,7 +79,9 @@ sub new($$) { elsif (/Permedia2/) { @servers = qw(3DLabs) } else { @servers = qw(Xsun24) } } elsif (arch() =~ /ia64|x86_64/) { - @servers = 'XFree86'; + require Xconfig::card; + my ($card) = Xconfig::card::probe(); + @servers = map { if_($_, "Driver:$_") } $card && $card->{Driver}, 'fbdev'; } elsif (arch() eq "ppc") { @servers = qw(Xpmac); } @@ -87,6 +90,7 @@ sub new($$) { log::l("Trying with server $_"); my $dir = "/usr/X11R6/bin"; my $prog = /Xsun|Xpmac|XFree86/ ? $_ : "XF86_$_"; + my ($prog, $Driver) = /Driver:(.*)/ ? ('XFree86', $1) : /Xsun|Xpmac|Xnest/ ? $_ : "XF86_$_"; unless (-x "$dir/$prog") { unlink $_ foreach glob_("$dir/X*"); install_any::getAndSaveFile("Mandrake/mdkinst$dir/$prog", "$dir/$prog") or die "failed to get server $prog: $!"; @@ -95,7 +99,7 @@ sub new($$) { if (/FB/) { !$o->{vga16} && $o->{allowFB} or next; - $o->{allowFB} = &$launchX($prog) #- keep in mind FB is used. + $o->{allowFB} = &$launchX($prog, $Driver) #- keep in mind FB is used. and goto OK; } else { $o->{vga16} = 1 if /VGA16/; |