From 71bcb42927b2970d522f96c635d159f01946b2d7 Mon Sep 17 00:00:00 2001 From: Guillaume Cottenceau Date: Fri, 23 Jan 2004 18:45:20 +0000 Subject: support 2.4 and 2.6 --- rescue/tree/sbin/modprobe | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'rescue/tree/sbin/modprobe') diff --git a/rescue/tree/sbin/modprobe b/rescue/tree/sbin/modprobe index 84de032e2..774101d7c 100755 --- a/rescue/tree/sbin/modprobe +++ b/rescue/tree/sbin/modprobe @@ -20,18 +20,32 @@ sub load_deps($) { } } +my $module_extension = cat_('/proc/version') =~ /^Linux version 2.4/ ? '.o' : '.ko'; + +my %mappings = ("usb-ohci" => "ohci-hcd", + "usb-uhci" => "uhci-hcd", + "uhci" => "uhci-hcd", + "printer" => "usblp", + "bcm4400" => "b44", + "3c559" => "3c359", + "3c90x" => "3c59x", + "dc395x_trm" => "dc395x", + "audigy" => "snd-emu10k1"); + sub load { my ($name, @options) = @_; - $name =~ s/\.o//; + $name =~ s/\.k?o$//; + + $name = $mappings{$name} || $name; #- 2.4 -> 2.6 compat mappings $conf{$name}{loaded} and return; eval { load($_, 'prereq') } foreach @{$deps{$name}}; - system("packdrake -x /modules/modules.cz* /tmp $name.o"); - -r "/tmp/$name.o" or die "can't find module $name\n"; - system("/sbin/insmod /tmp/$name.o"); + system("packdrake -x /modules/modules.cz* /tmp $name$module_extension"); + -r "/tmp/$name$module_extension" or die "can't find module $name\n"; + system("/sbin/insmod /tmp/$name$module_extension"); my $retval = $?; - system("rm /tmp/$name.o"); + system("rm /tmp/$name$module_extension"); $retval and die("insmod $name failed"); } -- cgit v1.2.1