diff options
Diffstat (limited to 'rescue/tree/ka/gen_modules_conf.pl')
-rw-r--r-- | rescue/tree/ka/gen_modules_conf.pl | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/rescue/tree/ka/gen_modules_conf.pl b/rescue/tree/ka/gen_modules_conf.pl new file mode 100644 index 000000000..ae6c5bec6 --- /dev/null +++ b/rescue/tree/ka/gen_modules_conf.pl @@ -0,0 +1,191 @@ +$kinds2all_modules = { + 'usb' => [ + 'usb-uhci', + 'usb-ohci', + 'ehci-hcd' + ], + 'network' => [ + '3c501', + '3c503', + '3c505', + '3c507', + '3c509', + '3c515', + '3c90x', + '82596', + 'abyss', + 'ac3200', + 'acenic', + 'aironet4500_card', + 'at1700', + 'atp', + 'com20020-pci', + 'cs89x0', + 'de600', + 'de620', + 'defxx', + 'depca', + 'dgrs', + 'dmfe', + 'e100', + 'e2100', + 'eepro', + 'eepro100', + 'eexpress', + 'epic100', + 'eth16i', + 'ewrk3', + 'hamachi', + 'hp', + 'hp-plus', + 'hp100', + 'ibmtr', + 'lance', + 'natsemi', + 'ne', + 'ne2k-pci', + 'ni5010', + 'ni52', + 'ni65', + 'nvnet', + 'olympic', + 'pcnet32', + 'plip', + 'rcpci', + 'sb1000', + 'sis900', + 'smc-ultra', + 'smc9194', + 'starfire', + 'tlan', + 'tmspci', + 'tulip', + 'via-rhine', + 'wd', + 'winbond-840', + 'forcedeth', + 'fealnx', + '3c990', + '3c990fx', + 'b44', + 'bcm4400', + 'skfp', + 'tc35815', + 'lanstreamer', + 'farsync', + 'sdladrv', + 'prism2_plx', + 'iph5526', + '3c59x', + '8139too', + '8139cp', + 'sundance', + 'catc', + 'CDCEther', + 'kaweth', + 'pegasus', + 'rtl8150', + 'usbnet', + 'dl2k', + 'myri_sbus', + 'yellowfin', + 'ns83820', + 'r8169', + 'tg3', + 'e1000', + 'sk98lin', + 'bcm5820', + 'bcm5700' + ], + 'scsi' => [ + '3w-xxxx', + 'AM53C974', + 'BusLogic', + 'NCR53c406a', + 'a100u2w', + 'advansys', + 'aha152x', + 'aha1542', + 'aha1740', + 'atp870u', + 'dc395x_trm', + 'dtc', + 'g_NCR5380', + 'in2000', + 'initio', + 'pas16', + 'pci2220i', + 'psi240i', + 'fdomain', + 'qla1280', + 'qla2x00', + 'qlogicfas', + 'qlogicfc', + 'seagate', + 'wd7000', + 'sim710', + 'sym53c416', + 't128', + 'tmscsim', + 'u14-34f', + 'ultrastor', + 'eata', + 'eata_pio', + 'eata_dma', + 'mptscsih', + 'nsp32', + 'ata_piix', + 'sata_promise', + 'sata_svw', + 'sata_via', + '53c7,8xx', + 'aic7xxx', + 'aic7xxx_old', + 'aic79xx', + 'pci2000', + 'qlogicisp', + 'sym53c8xx', + 'lpfcdd', + 'DAC960', + 'dpt_i2o', + 'megaraid', + 'aacraid', + 'cciss', + 'cpqarray', + 'gdth', + 'i2o_block', + 'cpqfc', + 'qla2200', + 'qla2300', + 'pdc-ultra', + 'ips', + 'ppa', + 'imm' + ] + }; +my @l = map { /^(\S+)\s*:/ ? $1 : () } `lspcidrake`; + +my %kinds2modules = map { + $_ => [ intersection(\@l, $kinds2all_modules->{$_}) ]; +} qw(usb scsi); + +$kinds2modules{network} = [ + grep { + my $l = $_; + scalar grep { $_ eq $l } @{ $kinds2all_modules->{network} } + } @l +]; + +if (my @scsi = @{$kinds2modules{scsi}}) { + print "probeall scsi_hostadapter ", join(" ", @scsi), "\n"; +} +if (my @usb = @{$kinds2modules{usb}}) { + print "probeall usb-interface ", join(" ", @usb), "\n"; +} +my $eth = 0; +foreach (@{$kinds2modules{network}}) { + print "alias eth$eth $_\n"; + $eth++; +} + +sub intersection { my (%l, @m); @l{@{shift @_}} = (); foreach (@_) { @m = grep { exists $l{$_} } @$_; %l = (); @l{@m} = () } keys %l } |