summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/install_gtk.pm10
-rw-r--r--perl-install/install_steps_gtk.pm13
2 files changed, 11 insertions, 12 deletions
diff --git a/perl-install/install_gtk.pm b/perl-install/install_gtk.pm
index aa58371e1..54b051a35 100644
--- a/perl-install/install_gtk.pm
+++ b/perl-install/install_gtk.pm
@@ -209,21 +209,17 @@ 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") if $mouse_dev ne 'none';
#- 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/) {
- require Xconfig::card;
- my ($card) = Xconfig::card::probe();
- Xconfig::card::add_to_card__using_Cards($card, $card->{type}) if $card && $card->{type};
- output($file, sprintf(<<'END', $mouse_type, $card->{driver}));
+if ($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 1ea7832c8..96f0f3947 100644
--- a/perl-install/install_steps_gtk.pm
+++ b/perl-install/install_steps_gtk.pm
@@ -37,13 +37,14 @@ sub new($$) {
if ($ENV{DISPLAY} =~ /^:\d/ && !$::testing || $ENV{DISPLAY} ne $wanted_DISPLAY) { #- is the display local or distant?
my $f = "/tmp/Xconf";
if (!$::testing) {
- install_gtk::createXconf($f, @{$o->{mouse}}{"XMOUSETYPE", "device"}, $o->{mouse}{wacom}[0]);
devices::make("/dev/kbd");
}
my $launchX = sub {
- my ($server) = @_;
+ 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);
+
mkdir '/var/log' if !-d '/var/log';
local $SIG{CHLD} = sub { $ok = 0 if waitpid(-1, c::WNOHANG()) > 0 };
@@ -92,7 +93,9 @@ sub new($$) {
@servers = qw(Xsun24);
}
} elsif (arch() =~ /ia64/) {
- @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);
}
@@ -100,7 +103,7 @@ sub new($$) {
foreach (@servers) {
log::l("Trying with server $_");
my $dir = "/usr/X11R6/bin";
- my $prog = /Xsun|Xpmac|XFree86|Xnest/ ? $_ : "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: $!";
@@ -109,7 +112,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/;