#!/usr/bin/perl # # Guillaume Cottenceau # # Copyright 2000-2005 Mandriva # # 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. # use lib qw(/usr/lib/libDrakX); use common; use detect_devices; $ARGV[0] =~ /^--?h/ and die "usage: drivers_install [drivertype1 [drivertype2 ...]]\n"; my @types = @ARGV; sub install_module_raw { my ($driver, $o_descr) = @_; print STDERR "Installing driver $driver", if_($o_descr, qq( (for "$o_descr"))), "\n"; system("/sbin/modprobe", $driver) and print "\tfailed\n"; } my $already_usb; sub install_module { my ($driver, $descr) = @_; install_module_raw($driver, $descr); if (!$already_usb && $driver =~ /usb/) { $already_usb = 1; install_module_raw('usbkbd'); install_module_raw('keybdev'); } } #- start foreach my $card (detect_devices::pci_probe()) { $card->{driver} eq 'unknown' || $card->{driver} =~ /:/ and next; $card->{media_type} eq "DISPLAY_VGA" and next; if (!@ARGV || find { $card->{media_type} =~ /$_/i } @types) { install_module($card->{driver}, $card->{description}); } }