From e4179e04d6c1fff7b7601644089631d6a6eae0c4 Mon Sep 17 00:00:00 2001 From: Stew Benedict Date: Sat, 14 Apr 2001 10:21:00 +0000 Subject: updates to X, mouse setup for PPC --- make_boot_img | 2 +- perl-install/Xconfigurator.pm | 17 ++++++++++------- perl-install/Xconfigurator_consts.pm | 16 +++++++++++++++- perl-install/mouse.pm | 7 +++++-- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/make_boot_img b/make_boot_img index 39518e4c3..4a27b0e9d 100755 --- a/make_boot_img +++ b/make_boot_img @@ -350,7 +350,7 @@ sub boot_img_ppc { my ($extension) = $modz =~ /.*\/([^\/]+)/; _ "mkdir -p $dir/$boot"; _ "cp -f $kern $dir/$boot/vmlinux"; - _ "cp -f all.rdz$extension $dir/boot/all.gz"; + _ "cp -f images/all.rdz$extension $dir/boot/all.gz"; _ "cp -f tools/ppc/yaboot $dir/boot/yaboot"; output("$dir/$boot/yaboot.conf", " diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm index 3c7839934..7819d3b93 100644 --- a/perl-install/Xconfigurator.pm +++ b/perl-install/Xconfigurator.pm @@ -195,7 +195,8 @@ sub cardConfigurationAuto() { } #- in case of only one cards, remove all busid reference, this will avoid #- need of change of it if the card is moved. - @cards == 1 and delete $cards[0]{busid}; + #- on many PPC machines, card is on-board, busid is important, leave? + @cards == 1 and delete $cards[0]{busid} if arch() !~ /ppc/; @cards; } @@ -262,6 +263,7 @@ What do you want to do?"), sub { translate($_[0]{text}) }, \@choices) or return; $card->{identifier} =~ /Rage X[CL]/ || $card->{identifier} =~ /3D Rage (?:LT|Pro)/); #- NOT WORKING $card->{type} =~ /Intel 810/); + $card->{Utah_glx} = '' if arch() =~ /ppc/; #- No #D XFree 3.3 for PPC #- 3D acceleration configuration for XFree 3.3 using Utah-GLX but EXPERIMENTAL that may freeze the machine (FOR INFO NOT USED). $card->{Utah_glx_EXPERIMENTAL} = ($card->{type} =~ /RIVA TNT/ || #- all RIVA/GeForce comes from NVIDIA and may freeze (gltron). #$card->{type} =~ /RIVA128/ || @@ -452,7 +454,7 @@ sub monitorConfiguration(;$$) { readMonitorsDB("$ENV{SHARE_PATH}/ldetect-lst/MonitorsDB"); - my $good_default = 'Generic|' . translate($good_default_monitor); + my $good_default = (arch() =~ /ppc/ ? 'Apple|' : 'Generic|') . translate($good_default_monitor); $monitor->{type} ||= ($::auto_install ? $low_default_monitor : $in->ask_from_treelist(_("Monitor"), _("Choose a monitor"), '|', ['Custom', keys %monitors], $good_default)); @@ -642,14 +644,13 @@ sub autoDefaultDepth($$) { sub autoDefaultResolution { return "1024x768" if detect_devices::hasPCMCIA; - if (arch() =~ /ppc/) { - my $mac_model = detect_devices::get_mac_model(); - return "1024x768" if $mac_model =~ /PowerBook1,1/; #- 800x600 not a pretty site on Powerbook - } + if (arch() =~ /ppc/) { + return "1024x768" if detect_devices::get_mac_model =~ /^PowerBook|^iMac/; + } my ($size) = @_; $monitorSize2resolution[round($size || 14)] || #- assume a small monitor (size is in inch) - $monitorSize2resolution[-1]; #- no corresponding resolution for this size. It means a big monitor, take biggest we have + $monitorSize2resolution[-1]; #- no corresponding resolution for this size. It means a big monitor, take biggest we have } sub chooseResolutionsGtk($$;$) { @@ -1059,6 +1060,7 @@ EndSection print G $monitorsection_text1; print F qq( Identifier "$O->{type}"\n); print G qq( Identifier "$O->{type}"\n); + print G qq( UseModes "Mac Modes"\n) if arch() =~ /ppc/; print F qq( VendorName "$O->{vendor}"\n); print G qq( VendorName "$O->{vendor}"\n); print F qq( ModelName "$O->{model}"\n\n); @@ -1075,6 +1077,7 @@ EndSection print F ($O->{modelines} || '') . ($o->{card}{type} eq "TG 96" ? $modelines_text_Trident_TG_96xx : $modelines_text); print F "\nEndSection\n\n\n"; print G "\nEndSection\n\n\n"; + print G $modelines_text_apple if arch() =~ /ppc/; foreach (2..@{$o->{card}{cards} || []}) { print G qq(Section "Monitor"\n); print G qq( Identifier "monitor$_"\n); diff --git a/perl-install/Xconfigurator_consts.pm b/perl-install/Xconfigurator_consts.pm index 5bce19478..aad9fc13c 100644 --- a/perl-install/Xconfigurator_consts.pm +++ b/perl-install/Xconfigurator_consts.pm @@ -112,7 +112,8 @@ use common qw(:common); __("16 MB or more") => 16384, ); -$good_default_monitor = "High Frequency SVGA, 1024x768 at 70 Hz"; +$good_default_monitor = arch !~ /ppc/ ? "High Frequency SVGA, 1024x768 at 70 Hz" : + detect_devices::get_mac_model =~ /^iBook/ ? "iBook 800x600" : "iMac/PowerBook 1024x768"; $low_default_monitor = "Super VGA, 800x600 at 56 Hz"; %standard_monitors = ( @@ -654,6 +655,19 @@ Modeline "800x600" 50 800 856 976 1040 600 637 643 666 +hsync +vs # 1024x768 @ 70 Hz, 56.5 kHz hsync Modeline "1024x768" 75 1024 1048 1184 1328 768 771 777 806 -hsync -vsync '; +$modelines_text_apple = ' +Section "Modes" + Identifier "Mac Modes" + # Apple iMac modes + Modeline "1024x768" 78.525 1024 1049 1145 1312 768 769 772 800 +hsync +vsync + Modeline "800x600" 62.357 800 821 901 1040 600 601 604 632 +hsync +vsync + Modeline "640x480" 49.886 640 661 725 832 480 481 484 514 +hsync +vsync + # Apple monitors tend to do 832x624 + Modeline "832x624" 57 832 876 940 1152 624 625 628 667 -hsync -vsync + # Apple PowerBook G3 + Modeline "800x600" 100 800 816 824 840 600 616 624 640 -hsync -vsync +EndSection +'; $modelines_text = ' # This is a set of standard mode timings. Modes that are out of monitor spec # are automatically deleted by the server (provided the HorizSync and diff --git a/perl-install/mouse.pm b/perl-install/mouse.pm index 08205213a..cdcc453f5 100644 --- a/perl-install/mouse.pm +++ b/perl-install/mouse.pm @@ -40,7 +40,8 @@ my %mice = 'USB' => [ [ 'usbmouse' ], - [ [ 2, 'ps/2', 'PS/2', __("Generic") ], + [ if_(arch() eq 'ppc', [ 1, 'ps/2', 'PS/2', __("1 button") ]), + [ 2, 'ps/2', 'PS/2', __("Generic") ], [ 5, 'ps/2', 'IMPS/2', __("Wheel") ], ]], @@ -192,6 +193,8 @@ sub write { $_ = '' if /^\Qdev.mac_hid.mouse_button/; $_ .= $s if eof; } "$prefix/etc/sysctl.conf"; + #- hack - dev RPM symlinks to mouse0 - lands on mouse1 with new input layer on PPC input/mice will get both ADB and USB + symlinkf "/dev/input/mice", "$prefix/dev/usbmouse" if ($mouse->{device} eq "usbmouse"); } } @@ -227,7 +230,7 @@ sub detect() { } if (arch() eq "ppc") { return fullname2mouse(detect_devices::hasMousePS2("usbmouse") ? - "USB|Generic" : + "USB|1 button" : # No need to search for an ADB mouse. If I did, the PPC kernel would # find one whether or not I had one installed! So.. default to it. "busmouse|1 button"); -- cgit v1.2.1