summaryrefslogtreecommitdiff
blob: 0ea9a02b3f9a9d0ee5f28cf00b6020252708cabe (plain)
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
--- lm_sensors-3.3.5/prog/detect/sensors-detect
+++ lm_sensors-3.3.5/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;
@@ -6762,26 +6765,33 @@
 			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');
-	$_ = read_answer();
-	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_sysconfig = -f '/etc/conf.d/lm_sensors';
+	printf "Do you want to ".($have_sysconfig?"overwrite":"generate").
+	       " /etc/conf.d/lm_sensors? Enter s to specify other file name?\n",
+	       "  (".($have_sysconfig?"yes/NO":"YES/no")."/s): ";
+	my $reply = read_answer();
+
+	if (($have_sysconfig and $reply =~ /^\s*[Yy]/) or
+		(not $have_sysconfig 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 = read_answer();
 		}
-		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
@@ -6792,30 +6802,17 @@
 # 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");
@@ -6828,24 +6825,6 @@
 			print "You should now start the lm_sensors service to load the required\n".
 			      "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 "You really should try these commands right now to make sure everything\n".
-		      "is working properly. Monitoring programs won't work until the needed\n".
-		      "modules are loaded.\n\n";
 	}
 }