diff --git prog/detect/sensors-detect prog/detect/sensors-detect index 3a44141..30ca897 100755 --- prog/detect/sensors-detect +++ prog/detect/sensors-detect @@ -20,6 +20,12 @@ # MA 02110-1301 USA. # +# Gentoo specific modifications based on a patch from Rudo Thomas +# +# +# Gentoo specific modifications updated by Chad Joan on 2016-09-07 +# + require 5.004; use strict; @@ -7074,26 +7080,33 @@ sub write_config print MODPROBE_D $configfile; close(MODPROBE_D); } else { + print "\nIf you want to load the modules at startup, generate a confing 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 @@ -7104,27 +7117,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 ($systemd_systemctl && $systemd_system_dir) { - if (-f "$systemd_system_dir/lm_sensors.service") { - system($systemd_systemctl, "enable", "lm_sensors.service"); - system($systemd_systemctl, "start", "lm_sensors.service"); - # All done, don't check for /etc/init.d/lm_sensors - } else { - print "Copy prog/init/lm_sensors.service to $systemd_system_dir\n". - "and run 'systemctl enable lm_sensors.service'\n". - "for initialization at boot time.\n"; - } - 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"); @@ -7137,24 +7140,6 @@ EOT 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"; } }