summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/detect_devices.pm2
-rw-r--r--perl-install/modules.pm13
2 files changed, 11 insertions, 4 deletions
diff --git a/perl-install/detect_devices.pm b/perl-install/detect_devices.pm
index f0456bdc7..e1f585a0d 100644
--- a/perl-install/detect_devices.pm
+++ b/perl-install/detect_devices.pm
@@ -831,6 +831,8 @@ sub usbMice() { grep { $_->{media_type} =~ /\|Mouse/ && $_->{driver} !~ /wa
sub usbWacom() { grep { $_->{driver} =~ /wacom/ } usb_probe() }
sub usbKeyboards() { grep { $_->{media_type} =~ /\|Keyboard/ } usb_probe() }
sub usbStorage() { grep { $_->{media_type} =~ /Mass Storage\|/ } usb_probe() }
+sub has_mesh() { find { /mesh/ } all_files_rec("/proc/device-tree") }
+sub has_53c94() { find { /53c94/ } all_files_rec("/proc/device-tree") }
sub usbKeyboard2country_code {
my ($usb_kbd) = @_;
diff --git a/perl-install/modules.pm b/perl-install/modules.pm
index e2b2e363c..bacc9a955 100644
--- a/perl-install/modules.pm
+++ b/perl-install/modules.pm
@@ -125,11 +125,13 @@ sub load_category {
if_(arch() !~ /ppc/, 'parport_pc', 'imm', 'ppa'),
if_(detect_devices::usbStorage(), 'usb-storage'),
),
- if_(arch() =~ /ppc/,
- if_($category =~ /scsi/, 'mesh', 'mac53c94'),
+ arch() =~ /ppc/ ? (
+ if_($category =~ /scsi/,
+ if_(detect_devices::has_mesh(), 'mesh'),
+ if_(detect_devices::has_53c94(), 'mac53c94'),
+ ),
if_($category =~ /net/, 'bmac', 'gmac', 'mace', 'airport'),
- if_($category =~ /sound/, 'dmasound_pmac'),
- ),
+ ) : (),
);
grep {
$o_wait_message->($_->{description}, $_->{driver}) if $o_wait_message;
@@ -148,6 +150,9 @@ sub probe_category {
my @modules = category2modules($category);
+ if_($category =~ /sound/ && arch() =~ /ppc/ && detect_devices::get_mac_model() !~ /IBM/,
+ { driver => 'snd-powermac', description => 'Macintosh built-in' },
+ ),
grep {
if ($category eq 'network/isdn') {
my $b = $_->{driver} =~ /ISDN:([^,]*),?([^,]*)(?:,firmware=(.*))?/;