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 +# + 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'); - $_ = ; - 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 = ; + + 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 = ; } - 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".