You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
4.4 KiB
119 lines
4.4 KiB
11 years ago
|
diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect
|
||
|
index fb17481..bb324c2 100755
|
||
|
--- a/prog/detect/sensors-detect
|
||
|
+++ b/prog/detect/sensors-detect
|
||
|
@@ -20,6 +20,9 @@
|
||
|
# MA 02110-1301 USA.
|
||
|
#
|
||
|
|
||
|
+# Gentoo specific modifications based on a patch from Rudo Thomas
|
||
|
+# <thomr9am@ss1000.ms.mff.cuni.cz>
|
||
|
+
|
||
|
require 5.004;
|
||
|
|
||
|
use strict;
|
||
|
@@ -6671,26 +6674,33 @@ sub write_config
|
||
|
print MODPROBE_D $configfile;
|
||
|
close(MODPROBE_D);
|
||
|
} else {
|
||
|
+ print "\nIf you want to load the modules at startup, generate a config file\n",
|
||
|
+ "below and make sure lm_sensors gets started at boot time; e.g\n",
|
||
|
+ "\$ rc-update add lm_sensors default\n";
|
||
|
print "To make the sensors modules behave correctly, add these lines to\n".
|
||
|
- "/etc/modprobe.conf:\n\n";
|
||
|
+ "/etc/modules.d/lm_sensors and run modules-update:\n\n";
|
||
|
print "#----cut here----\n".
|
||
|
$configfile.
|
||
|
"#----cut here----\n\n";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
- my $have_sysconfig = -d '/etc/sysconfig';
|
||
|
- printf "Do you want to \%s /etc/sysconfig/lm_sensors? (\%s): ",
|
||
|
- (-e '/etc/sysconfig/lm_sensors' ? 'overwrite' : 'generate'),
|
||
|
- ($have_sysconfig ? 'YES/no' : 'yes/NO');
|
||
|
- $_ = <STDIN>;
|
||
|
- if (($have_sysconfig and not m/^\s*n/i) or m/^\s*y/i) {
|
||
|
- unless ($have_sysconfig) {
|
||
|
- mkdir('/etc/sysconfig', 0777)
|
||
|
- or die "Sorry, can't create /etc/sysconfig ($!)";
|
||
|
+ my $have_config = -f '/etc/conf.d/lm_sensors';
|
||
|
+ print "\nDo you want to ".($have_config?"overwrite":"generate").
|
||
|
+ " /etc/conf.d/lm_sensors? Enter s to specify other file name?\n",
|
||
|
+ " (".($have_config?"yes/NO":"YES/no")."/s): ";
|
||
|
+ my $reply = <STDIN>;
|
||
|
+
|
||
|
+ if (($have_config and $reply =~ /^\s*[Yy]/) or
|
||
|
+ (not $have_config and not $reply =~ /^\s*[Nn]/) or
|
||
|
+ $reply =~ /^\s*[Ss]/) {
|
||
|
+ my $filename = "/etc/conf.d/lm_sensors";
|
||
|
+ if ($reply =~ /^\s*[Ss]/) {
|
||
|
+ print "Specify the file to store the configuration to: ";
|
||
|
+ $filename = <STDIN>;
|
||
|
}
|
||
|
- open(local *SYSCONFIG, ">/etc/sysconfig/lm_sensors")
|
||
|
- or die "Sorry, can't create /etc/sysconfig/lm_sensors ($!)";
|
||
|
+ open(local *SYSCONFIG, ">".$filename)
|
||
|
+ or die "Sorry, can't create $filename ($!).";
|
||
|
print SYSCONFIG "# Generated by sensors-detect on " . scalar localtime() . "\n";
|
||
|
print SYSCONFIG <<'EOT';
|
||
|
# This file is sourced by /etc/init.d/lm_sensors and defines the modules to
|
||
|
@@ -6701,30 +6711,17 @@ sub write_config
|
||
|
# BUS_MODULES for any required bus driver module (for example for I2C or SPI).
|
||
|
|
||
|
EOT
|
||
|
+ print SYSCONFIG
|
||
|
+ "# Load modules at startup\n".
|
||
|
+ "LOADMODULES=yes\n\n".
|
||
|
+ "# Initialize sensors at startup\n".
|
||
|
+ "INITSENSORS=yes\n\n";
|
||
|
print SYSCONFIG "BUS_MODULES=\"", join(" ", @{$bus_modules}), "\"\n"
|
||
|
if @{$bus_modules};
|
||
|
print SYSCONFIG "HWMON_MODULES=\"", join(" ", @{$hwmon_modules}), "\"\n";
|
||
|
close(SYSCONFIG);
|
||
|
|
||
|
- if (-x "/bin/systemctl" && -d "/lib/systemd/system" &&
|
||
|
- ! -f "/lib/systemd/system/lm_sensors.service") {
|
||
|
- print "Copy prog/init/lm_sensors.service to /lib/systemd/system\n".
|
||
|
- "and run 'systemctl enable lm_sensors.service'\n".
|
||
|
- "for initialization at boot time.\n";
|
||
|
- return;
|
||
|
- }
|
||
|
-
|
||
|
- if (-x "/bin/systemctl" &&
|
||
|
- -f "/lib/systemd/system/lm_sensors.service") {
|
||
|
- system("/bin/systemctl", "enable", "lm_sensors.service");
|
||
|
- system("/bin/systemctl", "start", "lm_sensors.service");
|
||
|
- # All done, don't check for /etc/init.d/lm_sensors
|
||
|
- return;
|
||
|
- }
|
||
|
-
|
||
|
- print "Copy prog/init/lm_sensors.init to /etc/init.d/lm_sensors\n".
|
||
|
- "for initialization at boot time.\n"
|
||
|
- unless -f "/etc/init.d/lm_sensors";
|
||
|
+ print "Done.\n";
|
||
|
|
||
|
if (-x "/sbin/insserv" && -f "/etc/init.d/lm_sensors") {
|
||
|
system("/sbin/insserv", "/etc/init.d/lm_sensors");
|
||
|
@@ -6738,20 +6735,6 @@ EOT
|
||
|
"kernel modules.\n\n";
|
||
|
}
|
||
|
} else {
|
||
|
- print "To load everything that is needed, add this to one of the system\n".
|
||
|
- "initialization scripts (e.g. /etc/rc.d/rc.local):\n\n";
|
||
|
- print "#----cut here----\n";
|
||
|
- if (@{$bus_modules}) {
|
||
|
- print "# Adapter drivers\n";
|
||
|
- print "modprobe $_\n" foreach (@{$bus_modules});
|
||
|
- }
|
||
|
- print "# Chip drivers\n";
|
||
|
- print "modprobe $_\n" foreach (@{$hwmon_modules});
|
||
|
- print((-e '/usr/bin/sensors' ?
|
||
|
- "/usr/bin/sensors -s\n" :
|
||
|
- "/usr/local/bin/sensors -s\n").
|
||
|
- "#----cut here----\n\n");
|
||
|
-
|
||
|
print "If you have some drivers built into your kernel, the list above will\n".
|
||
|
"contain too many modules. Skip the appropriate ones! You really\n".
|
||
|
"should try these commands right now to make sure everything is\n".
|