1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#!/usr/bin/perl
#
# Guillaume Cottenceau (gc@mandrakesoft.com)
#
# Copyright 2000 MandrakeSoft
#
# This software may be freely redistributed under the terms of the GNU
# public license.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
local $_ = join '', @ARGV;
"@ARGV" =~ /-h/ and die "usage: drivers_install [drivertype1 drivertype2..]\n";
sub pci_probe {
my @pci;
foreach (`/usr/bin/lspcidrake`) {
my %pci_entry;
if (/^(\S+)\s*: (.+) \[([^\]]+)/) {
$pci_entry{driver} = $1;
$pci_entry{description} = $2;
$pci_entry{type} = $3;
} elsif (/^(\S+)\s*: (.+)/) {
$pci_entry{driver} = $1;
$pci_entry{description} = $2;
$pci_entry{type} = "NOT_DEFINED";
} else {
next;
}
push @pci, \%pci_entry;
}
\@pci;
}
sub install_module($$) {
my ($driver, $descr) = @_;
print "Installing driver $driver (for \"$descr\")\n";
system("/sbin/modprobe $driver") and print "\tfailed\n";
}
#- start
my $pci = pci_probe();
foreach $pci_card (@$pci) {
$pci_card->{type} eq "DISPLAY_VGA" and next;
$pci_card->{driver} eq "unknown" and next;
if ($#ARGV != -1) {
$pci_card->{type} =~ /$_/i and install_module($pci_card->{driver}, $pci_card->{description}) foreach (@ARGV);
} else {
install_module($pci_card->{driver}, $pci_card->{description});
}
}
#-------------------------------------------------
#- $Log$
#- Revision 1.1 2001/02/12 14:31:10 uid535
#- - add lspci, lspcidrake, vim-minimal
#- - better /etc/issue
#- - better PS1
#- - write embryonic tool (installation of detected drivers according to pci cards)
#-
|