Changeset 5591

Show
Ignore:
Timestamp:
01/12/09 17:38:09 (5 years ago)
Author:
khali
Message:

Don't build modprobe lines before we actually need them.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/branches/lm-sensors-3.0.0/prog/detect/sensors-detect

    r5590 r5591  
    50565056        my ($driver, $detection, $adap); 
    50575057        my ($isa, $ipmi); 
    5058         my ($modprobes, $configfile, %bus_modules, %hwmon_modules); 
     5058        my ($configfile, %bus_modules, %hwmon_modules); 
    50595059 
    50605060        foreach $driver (keys %chips_detected) { 
     
    51055105                next unless loaded_by_us($adap->{driver}); 
    51065106                next if not defined $configfile and not $adap->{used}; 
    5107                 $modprobes .= "# I2C adapter drivers\n" unless defined $modprobes; 
    5108                 $modprobes .= "modprobe $adap->{driver}\n" 
    5109                         unless exists $bus_modules{$adap->{driver}}; 
    51105107                $bus_modules{$adap->{driver}}++; 
    51115108        } 
     
    51145111        # and will soon be gone. 
    51155112        if ($isa && !kernel_version_at_least(2, 6, 18)) { 
    5116                 $modprobes .= "modprobe i2c-isa\n"; 
    51175113                $bus_modules{"i2c-isa"}++; 
    51185114        } 
    51195115        if ($ipmi) { 
    5120                 $modprobes .= "modprobe ipmi-si\n"; 
    51215116                $bus_modules{"ipmi-si"}++; 
    51225117        } 
    51235118 
    51245119        # Now determine the chip probe lines 
    5125         $modprobes .= "# Chip drivers\n"; 
    51265120        foreach $driver (keys %chips_detected) { 
    51275121                next if not @{$chips_detected{$driver}}; 
     
    51485142                                      "driver availability.\n\n"; 
    51495143                        } else { 
    5150                                 $modprobes .= "modprobe $driver\n"; 
    51515144                                $hwmon_modules{$driver}++; 
    51525145                        } 
     
    51565149        my @bus_modules = sort keys %bus_modules; 
    51575150        my @hwmon_modules = sort keys %hwmon_modules; 
    5158         return ($modprobes, $configfile, \@bus_modules, \@hwmon_modules); 
     5151        return ($configfile, \@bus_modules, \@hwmon_modules); 
    51595152} 
    51605153 
    51615154sub write_config 
    51625155{ 
    5163         my ($modprobes, $configfile, $bus_modules, $hwmon_modules) = @_; 
     5156        my ($configfile, $bus_modules, $hwmon_modules) = @_; 
    51645157 
    51655158        if (defined $configfile) { 
     
    52465239                print "To load everything that is needed, add this to one of the system\n". 
    52475240                      "initialization scripts (e.g. /etc/rc.d/rc.local):\n\n"; 
    5248                 print "#----cut here----\n". 
    5249                       $modprobes. 
    5250                       (-e '/usr/bin/sensors' ? 
     5241                print "#----cut here----\n"; 
     5242                if (@{$bus_modules}) { 
     5243                        print "# Adapter drivers\n"; 
     5244                        print "modprobe $_\n" foreach (@{$bus_modules}); 
     5245                } 
     5246                print "# Chip drivers\n"; 
     5247                print "modprobe $_\n" foreach (@{$hwmon_modules}); 
     5248                print((-e '/usr/bin/sensors' ? 
    52515249                       "/usr/bin/sensors -s\n" : 
    52525250                       "/usr/local/bin/sensors -s\n"). 
    5253                       "#----cut here----\n\n"; 
     5251                      "#----cut here----\n\n"); 
    52545252 
    52555253                print "If you have some drivers built into your kernel, the list above will\n". 
     
    54095407        print "\n"; 
    54105408 
    5411         my ($modprobes, $configfile, $bus_modules, $hwmon_modules) = generate_modprobes(); 
     5409        my ($configfile, $bus_modules, $hwmon_modules) = generate_modprobes(); 
    54125410 
    54135411        if (@{$hwmon_modules}) { 
    5414                 write_config($modprobes, $configfile, $bus_modules, $hwmon_modules); 
     5412                write_config($configfile, $bus_modules, $hwmon_modules); 
    54155413        } else { 
    54165414                print "No modules to load, skipping modules configuration.\n\n";