683 lines
20 KiB
Plaintext
683 lines
20 KiB
Plaintext
|
--- Makefile
|
|||
|
+++ Makefile 2006-11-10 15:39:03.000000000 +0100
|
|||
|
@@ -45,8 +45,8 @@ LINUX_HEADERS := $(LINUX)/include
|
|||
|
# may be used mistakenly. Note: This should point to the directory
|
|||
|
# *above* the linux/ subdirectory, so to /usr/local/include in the
|
|||
|
# above example.
|
|||
|
-I2C_HEADERS := /usr/local/include
|
|||
|
-#I2C_HEADERS := $(LINUX_HEADERS)
|
|||
|
+#I2C_HEADERS := /usr/local/include
|
|||
|
+I2C_HEADERS := $(LINUX_HEADERS)
|
|||
|
|
|||
|
ifneq ($(MAKECMDGOALS),user)
|
|||
|
ifneq ($(MAKECMDGOALS),user_install)
|
|||
|
@@ -75,7 +75,7 @@ DEBUG := 0
|
|||
|
DESTDIR :=
|
|||
|
|
|||
|
# This is the prefix that will be used for almost all directories below.
|
|||
|
-PREFIX := /usr/local
|
|||
|
+PREFIX := /usr
|
|||
|
|
|||
|
# Your C compiler
|
|||
|
CC := gcc
|
|||
|
@@ -97,7 +97,7 @@ ifeq (,$(findstring /2.4., $(MODPREF)))
|
|||
|
else
|
|||
|
SYSFS_SUPPORT :=
|
|||
|
endif
|
|||
|
-#SYSFS_SUPPORT := 1
|
|||
|
+SYSFS_SUPPORT := 1
|
|||
|
|
|||
|
# Prevent 2.6+ users from using improper targets, as this won't work.
|
|||
|
ifeq (,$(findstring /2.4., $(MODPREF)))
|
|||
|
@@ -141,7 +141,7 @@ LIBINCLUDEDIR := $(INCLUDEDIR)/sensors
|
|||
|
|
|||
|
# You should not need to change this. It is the base directory under which the
|
|||
|
# manual pages will be installed.
|
|||
|
-MANDIR := $(PREFIX)/man
|
|||
|
+MANDIR := $(PREFIX)/share/man
|
|||
|
|
|||
|
MACHINE := $(shell uname -m)
|
|||
|
|
|||
|
@@ -215,7 +215,7 @@ ifeq ($(DEBUG),1)
|
|||
|
ALL_CPPFLAGS += -DDEBUG
|
|||
|
ALL_CFLAGS += -O -g
|
|||
|
else
|
|||
|
-ALL_CFLAGS += -O2
|
|||
|
+ALL_CFLAGS += $(RPM_OPT_FLAGS)
|
|||
|
endif
|
|||
|
|
|||
|
ifeq ($(WARN),1)
|
|||
|
@@ -278,7 +278,7 @@ LIBCPPFLAGS := $(ALL_CPPFLAGS)
|
|||
|
ifdef SYSFS_SUPPORT
|
|||
|
LIBCPPFLAGS := $(LIBCPPFLAGS) -DSYSFS_SUPPORT
|
|||
|
endif
|
|||
|
-LIBCFLAGS := -fpic $(ALL_CFLAGS)
|
|||
|
+LIBCFLAGS := -fpic -D_REENTRANT $(ALL_CFLAGS)
|
|||
|
|
|||
|
.PHONY: all user clean install user_install uninstall user_uninstall version package
|
|||
|
|
|||
|
--- prog/detect/sensors-detect
|
|||
|
+++ prog/detect/sensors-detect 2006-11-10 17:45:13.000000000 +0100
|
|||
|
@@ -1997,7 +1997,9 @@ sub initialize_conf
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
- if (-f '/etc/modules.conf') {
|
|||
|
+ if (-f '/etc/modprobe.conf') {
|
|||
|
+ $modules_conf = '/etc/modprobe.conf';
|
|||
|
+ } elsif (-f '/etc/modules.conf') {
|
|||
|
$modules_conf = '/etc/modules.conf';
|
|||
|
} elsif (-f '/etc/conf.modules') {
|
|||
|
$modules_conf = '/etc/conf.modules';
|
|||
|
@@ -5132,7 +5134,7 @@ sub generate_modprobes
|
|||
|
|
|||
|
for ($i = 0; $i < $nr; $i++) {
|
|||
|
foreach $adap (@adapters) {
|
|||
|
- next unless exists $adap->{nr_later} and $adap->{nr_later} == $i;
|
|||
|
+ next unless exists $adap->{driver} and $adap->{nr_later} == $i;
|
|||
|
if ($adap->{driver} eq "UNKNOWN") {
|
|||
|
$modprobes .= "# modprobe unknown adapter ".$adap->{adapname}."\n";
|
|||
|
} elsif ($adap->{driver} eq "DISABLED") {
|
|||
|
@@ -5162,6 +5164,19 @@ sub generate_modprobes
|
|||
|
next if $chip->{driver} eq "use-isa-instead";
|
|||
|
if ($chip->{driver} eq "to-be-written") {
|
|||
|
$modprobes .= "# no driver for $chip->{detected}[0]{chipname} yet\n";
|
|||
|
+ } elsif ($chip->{driver} eq "w83627hf") {
|
|||
|
+ my $check = 0;
|
|||
|
+ open MODPROBE, "modprobe -l w83627hf|" or die "can not execute modprobe\n";
|
|||
|
+ while (<MODPROBE>) {
|
|||
|
+ $check = /^.*w83627hf.*$/;
|
|||
|
+ }
|
|||
|
+ close MODPROBE;
|
|||
|
+ if ($check) {
|
|||
|
+ $modprobes .= "modprobe $chip->{driver}\n";
|
|||
|
+ } else {
|
|||
|
+ $modprobes .= "# no driver for ".$chip->{detected}[0]{chipname}." using w83781d\n";
|
|||
|
+ $modprobes .= "modprobe w83781d\n"
|
|||
|
+ }
|
|||
|
} else {
|
|||
|
# need the * for 2.4 kernels, won't necessarily be an exact match
|
|||
|
open(local *INPUTFILE, "modprobe -l $chip->{driver}\\* 2>/dev/null |");
|
|||
|
@@ -5430,7 +5445,7 @@ sub main
|
|||
|
print "#----cut here----\n".
|
|||
|
$modprobes.
|
|||
|
"# sleep 2 # optional\n".
|
|||
|
- "/usr/local/bin/sensors -s # recommended\n".
|
|||
|
+ "/usr/bin/sensors -s # recommended\n".
|
|||
|
"#----cut here----\n\n";
|
|||
|
|
|||
|
print "If you have some drivers built into your kernel, the list above will\n".
|
|||
|
@@ -5499,6 +5514,8 @@ EOT
|
|||
|
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";
|
|||
|
+ system("/sbin/insserv", "/etc/init.d/lm_sensors")
|
|||
|
+ if -f "/etc/init.d/lm_sensors";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
--- prog/dump/isadump.c
|
|||
|
+++ prog/dump/isadump.c 2006-02-28 13:05:01.000000000 +0100
|
|||
|
@@ -35,15 +35,26 @@
|
|||
|
|
|||
|
#include "superio.h"
|
|||
|
|
|||
|
-
|
|||
|
/* To keep glibc2 happy */
|
|||
|
#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
|
|||
|
-#include <sys/io.h>
|
|||
|
+# if !defined(__sparc__) && !defined(__sparc64__) && !defined(__powerpc__)
|
|||
|
+# include <sys/io.h>
|
|||
|
+# else
|
|||
|
+#ifdef __powerpc__
|
|||
|
+#define __KERNEL__
|
|||
|
+#define CONFIG_ALL_PPC
|
|||
|
+#endif
|
|||
|
+# include <asm/io.h>
|
|||
|
+#ifdef __powerpc__
|
|||
|
+#undef __KERNEL__
|
|||
|
+#undef CONFIG_ALL_PPC
|
|||
|
+#endif
|
|||
|
+# endif
|
|||
|
#else
|
|||
|
-#include <asm/io.h>
|
|||
|
+# include <asm/io.h>
|
|||
|
#endif
|
|||
|
|
|||
|
-#ifdef __powerpc__
|
|||
|
+#if defined(__powerpc__) || defined(__sparc__) || defined(__sparc64__)
|
|||
|
unsigned long isa_io_base = 0; /* XXX for now */
|
|||
|
#endif /* __powerpc__ */
|
|||
|
|
|||
|
@@ -255,7 +266,7 @@ int main(int argc, char *argv[])
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
-#ifndef __powerpc__
|
|||
|
+#if !defined(__sparc__) && !defined(__sparc64__) && !defined(__powerpc__)
|
|||
|
if ((datareg < 0x400) && (addrreg < 0x400) && !flat) {
|
|||
|
if (ioperm(datareg, 1, 1)) {
|
|||
|
fprintf(stderr, "Error: Could not ioperm() data "
|
|||
|
--- prog/init/README
|
|||
|
+++ prog/init/README 2006-02-28 13:05:01.000000000 +0100
|
|||
|
@@ -10,7 +10,7 @@ The script lm_sensors.init is a nice sta
|
|||
|
On RH and other RH-based systems (MDK, notably) use this sort of startup
|
|||
|
mechanism (i.e. SVR4-based), as opposed to the everything-in-one-script
|
|||
|
(/etc/rc or /etc/rc.local) like the BSD-based systems do.
|
|||
|
-The lm_sensors.init file should be copied to /etc/rc.d/init.d/lm_sensors.
|
|||
|
+The lm_sensors.init file should be copied to /etc/init.d/lm_sensors.
|
|||
|
For more information see the top of the file.
|
|||
|
It requires the /etc/sysconfig/sensors file, which identifies
|
|||
|
the correct modules.
|
|||
|
@@ -28,10 +28,10 @@ by Marc Rieffel <marc@paracel.com>.
|
|||
|
----------------
|
|||
|
|
|||
|
The script sensord.init also loads the modules, and then
|
|||
|
-starts the sensord daemon. See the directory ../sensord for
|
|||
|
+starts the sensord daemon. See the manual page sensord(8) for
|
|||
|
more information on the daemon.
|
|||
|
|
|||
|
-The sensord.init file should be copied to /etc/rc.d/init.d/sensord.
|
|||
|
+The sensord.init file should be copied to /etc/init.d/sensord.
|
|||
|
For more information see the top of the file.
|
|||
|
|
|||
|
To configure this service one should put appropriate "alias i2c-bus-0 xxx"
|
|||
|
--- prog/init/lm_sensors.init.suse
|
|||
|
+++ prog/init/lm_sensors.init.suse 2006-02-28 13:05:01.000000000 +0100
|
|||
|
@@ -1,19 +1,14 @@
|
|||
|
#!/bin/sh
|
|||
|
#
|
|||
|
### BEGIN INIT INFO
|
|||
|
-# Provides: lm_sensors
|
|||
|
-# Required-Start: $local_fs
|
|||
|
-# X-UnitedLinux-Should-Start:
|
|||
|
-# Required-Stop: $local_fs
|
|||
|
-# X-UnitedLinux-Should-Stop:
|
|||
|
-# Default-Start: 3 4 5
|
|||
|
-# Default-Stop: 0 1 2 6
|
|||
|
-# Short-Description: LM Sensors
|
|||
|
-# Description: LM Sensors for hardware monitoring
|
|||
|
+# Provides: sensors
|
|||
|
+# Required-Start: $remote_fs
|
|||
|
+# Required-Stop: $remote_fs
|
|||
|
+# Default-Start: 2 3 5
|
|||
|
+# Default-Stop:
|
|||
|
+# Description: sensors is used for monitoring motherboard sensor values.
|
|||
|
+# Config file is /etc/sysconfig/lm_sensors
|
|||
|
### END INIT INFO
|
|||
|
-# chkconfig: 2345 26 74
|
|||
|
-# description: sensors is used for monitoring motherboard sensor values.
|
|||
|
-# config: /etc/sysconfig/sensors
|
|||
|
#
|
|||
|
# This program is free software; you can redistribute it and/or modify
|
|||
|
# it under the terms of the GNU General Public License as published by
|
|||
|
@@ -40,115 +35,91 @@
|
|||
|
# MODULE_1, MODULE_2, MODULE_3, etc.
|
|||
|
|
|||
|
# If sensors isn't supported by the kernel, try loading the module...
|
|||
|
-[ -e /proc/sys/dev/sensors ] || /sbin/modprobe i2c-proc &>/dev/null
|
|||
|
+[ -e /sys/bus/i2c/devices ] || /sbin/modprobe i2c-dev &>/dev/null
|
|||
|
|
|||
|
# Don't bother if /proc/sensors still doesn't exist, kernel doesn't have
|
|||
|
# support for sensors.
|
|||
|
-[ -e /proc/sys/dev/sensors ] || exit 0
|
|||
|
-
|
|||
|
+[ -e /sys/bus/i2c/devices ] || exit 0
|
|||
|
+
|
|||
|
# If sensors was not already running, unload the module...
|
|||
|
-[ -e /var/lock/subsys/lm_sensors ] || /sbin/modprobe -r i2c-proc &>/dev/null
|
|||
|
+[ -e /var/lock/subsys/sensors ] || /sbin/modprobe -r i2c-dev &>/dev/null
|
|||
|
|
|||
|
CONFIG=/etc/sysconfig/lm_sensors
|
|||
|
-PSENSORS=/usr/local/bin/sensors
|
|||
|
+PSENSORS=/usr/bin/sensors
|
|||
|
+FANCONFIG=/etc/fancontrol
|
|||
|
+PFAN=/usr/sbin/fancontrol
|
|||
|
|
|||
|
# Source function library.
|
|||
|
-#. /etc/init.d/functions
|
|||
|
-
|
|||
|
-# Shell functions sourced from /etc/rc.status:
|
|||
|
-# rc_check check and set local and overall rc status
|
|||
|
-# rc_status check and set local and overall rc status
|
|||
|
-# rc_status -v ditto but be verbose in local rc status
|
|||
|
-# rc_status -v -r ditto and clear the local rc status
|
|||
|
-# rc_status -s display "skipped" and exit with status 3
|
|||
|
-# rc_status -u display "unused" and exit with status 3
|
|||
|
-# rc_failed set local and overall rc status to failed
|
|||
|
-# rc_failed <num> set local and overall rc status to <num>
|
|||
|
-# rc_reset clear local rc status (overall remains)
|
|||
|
-# rc_exit exit appropriate to overall rc status
|
|||
|
-# rc_active checks whether a service is activated by symlinks
|
|||
|
-# rc_splash arg sets the boot splash screen to arg (if active)
|
|||
|
. /etc/rc.status
|
|||
|
|
|||
|
-# Reset status of this service
|
|||
|
-rc_reset
|
|||
|
-
|
|||
|
-# Return values acc. to LSB for all commands but status:
|
|||
|
-# 0 - success
|
|||
|
-# 1 - generic or unspecified error
|
|||
|
-# 2 - invalid or excess argument(s)
|
|||
|
-# 3 - unimplemented feature (e.g. "reload")
|
|||
|
-# 4 - user had insufficient privileges
|
|||
|
-# 5 - program is not installed
|
|||
|
-# 6 - program is not configured
|
|||
|
-# 7 - program is not running
|
|||
|
-# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
|
|||
|
-#
|
|||
|
-# Note that starting an already running service, stopping
|
|||
|
-# or restarting a not-running service as well as the restart
|
|||
|
-# with force-reload (in case signaling is not supported) are
|
|||
|
-# considered a success.
|
|||
|
-
|
|||
|
-RETVAL=0
|
|||
|
-
|
|||
|
start() {
|
|||
|
- echo -n $"Starting up sensors: "
|
|||
|
+ echo -n "Starting up sensors"
|
|||
|
+ unset ${!MODULE_*}
|
|||
|
test -r "$CONFIG" && . "$CONFIG"
|
|||
|
|
|||
|
- modules=`grep \^MODULE_ $CONFIG | wc -l | tr -d ' '`
|
|||
|
- i=0
|
|||
|
- while [ $i -lt $modules ] ; do
|
|||
|
- module=`eval echo '$'MODULE_$i`
|
|||
|
- echo starting module __${module}__
|
|||
|
+ for i in ${!MODULE_*} ; do
|
|||
|
+ eval module=\$$i
|
|||
|
/sbin/modprobe $module &>/dev/null
|
|||
|
- i=`expr $i + 1`
|
|||
|
+ rc_status
|
|||
|
done
|
|||
|
- $PSENSORS -s
|
|||
|
+ rc_status
|
|||
|
|
|||
|
- RETVAL=$?
|
|||
|
- if [ $RETVAL -eq 0 ] && touch /var/lock/subsys/lm_sensors ; then
|
|||
|
- rc_status -v
|
|||
|
+ /usr/bin/sensors -s &> /dev/null
|
|||
|
+ rc_status
|
|||
|
+
|
|||
|
+ # Start fan control, if configured
|
|||
|
+ if test -s "$FANCONFIG" -a -x "$PFAN" ; then
|
|||
|
+ echo -n ", starting fan control: "
|
|||
|
+ /sbin/startproc -q "$PFAN"
|
|||
|
+ rc_status
|
|||
|
else
|
|||
|
- rc_status -v
|
|||
|
+ echo -n ": "
|
|||
|
fi
|
|||
|
+
|
|||
|
+ rc_status -v && touch /var/lock/subsys/sensors
|
|||
|
}
|
|||
|
|
|||
|
stop() {
|
|||
|
- echo -n $"Shutting down sensors: "
|
|||
|
+ echo -n "Shutting down sensors"
|
|||
|
+ unset ${!MODULE_*}
|
|||
|
test -r "$CONFIG" && . "$CONFIG"
|
|||
|
|
|||
|
- modules=`grep \^MODULE_ $CONFIG | wc -l | tr -d ' '`
|
|||
|
- i=`expr $modules`
|
|||
|
- while [ $i -ge 0 ] ; do
|
|||
|
- module=`eval echo '$'MODULE_$i`
|
|||
|
+ # Stop fan control, if it was started
|
|||
|
+ if test -s /var/run/fancontrol.pid ; then
|
|||
|
+ echo -n ", stopping fan control: "
|
|||
|
+ /sbin/killproc -TERM "$PFAN"
|
|||
|
+ rc_status
|
|||
|
+ else
|
|||
|
+ echo -n ": "
|
|||
|
+ fi
|
|||
|
+
|
|||
|
+ for i in ${!MODULE_*} ; do
|
|||
|
+ eval module=\$$i
|
|||
|
/sbin/modprobe -r $module &>/dev/null
|
|||
|
- i=`expr $i - 1`
|
|||
|
+ rc_status
|
|||
|
done
|
|||
|
- /sbin/modprobe -r i2c-proc &>/dev/null
|
|||
|
|
|||
|
- RETVAL=$?
|
|||
|
- if [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/lm_sensors ; then
|
|||
|
- rc_status -v
|
|||
|
- else
|
|||
|
- rc_status -v
|
|||
|
- fi
|
|||
|
+ rc_status -v && rm -f /var/lock/subsys/sensors
|
|||
|
}
|
|||
|
|
|||
|
dostatus() {
|
|||
|
- $PSENSORS
|
|||
|
- RETVAL=$?
|
|||
|
+ $PSENSORS
|
|||
|
+ rc_status
|
|||
|
}
|
|||
|
|
|||
|
restart() {
|
|||
|
stop
|
|||
|
start
|
|||
|
- RETVAL=$?
|
|||
|
+ rc_status
|
|||
|
}
|
|||
|
|
|||
|
condrestart() {
|
|||
|
[ -e /var/lock/subsys/lm_sensors ] && restart || :
|
|||
|
}
|
|||
|
|
|||
|
+# Reset status of this service
|
|||
|
+rc_reset
|
|||
|
+
|
|||
|
# See how we were called.
|
|||
|
case "$1" in
|
|||
|
start)
|
|||
|
@@ -163,12 +134,12 @@ case "$1" in
|
|||
|
restart|reload)
|
|||
|
restart
|
|||
|
;;
|
|||
|
- condrestart)
|
|||
|
+ try-restart)
|
|||
|
condrestart
|
|||
|
;;
|
|||
|
*)
|
|||
|
- echo "Usage: sensors.init {start|stop|status|restart|reload|condrestart}"
|
|||
|
+ echo "Usage: lm_sensors {start|stop|status|restart|reload|try-restart}"
|
|||
|
exit 1
|
|||
|
esac
|
|||
|
|
|||
|
-exit $RETVAL
|
|||
|
+rc_exit
|
|||
|
--- prog/init/sensord.init
|
|||
|
+++ prog/init/sensord.init 2006-02-28 13:05:01.000000000 +0100
|
|||
|
@@ -1,130 +1,83 @@
|
|||
|
-#!@BASH@
|
|||
|
+#!/bin/bash
|
|||
|
#
|
|||
|
-# @INITRDDIR@/sensord
|
|||
|
-#
|
|||
|
-# sensord This shell script takes care of starting and stopping
|
|||
|
-# sensord, the lm_sensors hardware health monitoring daemon.
|
|||
|
-#
|
|||
|
-# Here is the sensors service for SysV init, based on lm_sensors-2.5.5-sensors
|
|||
|
-# from Mandrake lm_sensors source RPM. It is modified according to recommendations
|
|||
|
-# for RedHat initscripts. The drivers starting part is taken from alsasound
|
|||
|
-# service. To configure this service one should put appropriate "alias i2c-bus-0
|
|||
|
-# xxx" and "alias i2c-sensors-chip-0 xxx" in /etc/modules.conf. The rest should be
|
|||
|
-# self explaining.
|
|||
|
-#
|
|||
|
-# You put it into /etc/rc.d/init.d/, you make a symlink (probably using
|
|||
|
-# chkconfig, ntsysv, tksysv or serviceconf program) named S95xxx and K05xxx
|
|||
|
-# into /etc/rc#.d (where # is the number of runlevel), and sensors service
|
|||
|
-# (which starts lm_sensors modules, runs sensors -s and starts sensord)
|
|||
|
-# will be started automatically at startup/reboot and stopped at shutdown.
|
|||
|
-# One could also start/stop service manually.
|
|||
|
-#
|
|||
|
-# This service was tested for RedHat 7.2 only.
|
|||
|
-# Jakub Nar<61>bski, Poland
|
|||
|
+# /etc/init.d/sensord
|
|||
|
#
|
|||
|
+### BEGIN INIT INFO
|
|||
|
+# Provides: sensors
|
|||
|
+# Required-Start: $remote_fs
|
|||
|
+# Required-Stop: $remote_fs
|
|||
|
+# Default-Start: 2 3 5
|
|||
|
+# Default-Stop:
|
|||
|
+# Description: This shell script takes care of starting and stopping
|
|||
|
+# sensord, the lm_sensors hardware health monitoring daemon.
|
|||
|
+### END INIT INFO
|
|||
|
|
|||
|
-# chkconfig: 2345 05 95
|
|||
|
-# processname: sensord
|
|||
|
-# config: @SYSCONFDIR@/sensors.conf
|
|||
|
-# pidfile: /var/run/sensord.pid
|
|||
|
-# description: Sensors is a sensors daemon which can be used to alert you \
|
|||
|
-# in the event of a hardware health monitoring alarm.
|
|||
|
|
|||
|
# Source function library.
|
|||
|
-. @INITRDDIR@/functions
|
|||
|
-
|
|||
|
-# Set default return value to 0 (success)
|
|||
|
-RETVAL=0
|
|||
|
-# Add @SBINDIR@ (sensord) and @BINDIR@ (sensors) to PATH if necessary
|
|||
|
-echo "$PATH" | grep -q @SBINDIR@ || PATH=$PATH:@SBINDIR@
|
|||
|
-echo "$PATH" | grep -q @BINDIR@ || PATH=$PATH:@BINDIR@
|
|||
|
-export PATH
|
|||
|
+. /etc/rc.status
|
|||
|
|
|||
|
# Modules to load from modules.conf (modules configuration)
|
|||
|
-i2c_bus_drivers=<3D>modprobe -c | \
|
|||
|
- awk <20>/^[[:space:]]*alias[[:space:]]+i2c-bus-[[:digit:]]/ { print $3 }<7D><>
|
|||
|
-i2c_chip_drivers=<3D>modprobe -c | \
|
|||
|
- awk <20>/^[[:space:]]*alias[[:space:]]+i2c-sensors-chip-[[:digit:]]/ { print $3
|
|||
|
-}<7D><>
|
|||
|
+i2c_bus_drivers=`modprobe -c | \
|
|||
|
+ awk '/^[[:space:]]*alias[[:space:]]+i2c-bus-[[:digit:]]/ { print $3 }'`
|
|||
|
+i2c_chip_drivers=`modprobe -c | \
|
|||
|
+ awk '/^[[:space:]]*alias[[:space:]]+i2c-sensors-chip-[[:digit:]]/ { print $3 }'`
|
|||
|
|
|||
|
# Configuration of sensord
|
|||
|
interval=1m # interval between scanning for sensor alarms
|
|||
|
log_interval=30m # interval between logging all sensor readings
|
|||
|
|
|||
|
-# Check that we use kernel for which lm_sensors-drivers was installed
|
|||
|
-[ <20>uname -r<> = @MVERSION@ ] || exit 0
|
|||
|
-
|
|||
|
# Check that lm_sensors is installed.
|
|||
|
-[ -x @SBINDIR@/sensord ] || exit 0
|
|||
|
-[ -x @BINDIR@/sensors ] || exit 0
|
|||
|
-
|
|||
|
-echo_status()
|
|||
|
-{
|
|||
|
- if [ $1 -eq 0 ]; then
|
|||
|
- echo_success
|
|||
|
- else
|
|||
|
- echo_failure
|
|||
|
- fi
|
|||
|
- echo
|
|||
|
-}
|
|||
|
+[ -x /usr/sbin/sensord ] || exit 0
|
|||
|
+[ -x /usr/bin/sensors ] || exit 0
|
|||
|
|
|||
|
start()
|
|||
|
{
|
|||
|
# Start modules
|
|||
|
echo "Starting I2C bus (adapter) drivers: "
|
|||
|
for driver in $i2c_bus_drivers; do
|
|||
|
- echo -n "Starting I2C driver: $driver "
|
|||
|
- /sbin/modprobe <20>echo $driver<65>
|
|||
|
- echo_status $?
|
|||
|
+ /sbin/modprobe $driver &> /dev/null
|
|||
|
+ rc_status
|
|||
|
done
|
|||
|
+ rc_status -v
|
|||
|
+
|
|||
|
echo "Starting I2C chip (sensors) drivers: "
|
|||
|
for driver in $i2c_chip_drivers; do
|
|||
|
- echo -n "Starting I2C driver: $driver "
|
|||
|
- /sbin/modprobe $(echo $driver)
|
|||
|
- echo_status $?
|
|||
|
+ /sbin/modprobe $driver &> /dev/null
|
|||
|
+ rc_status
|
|||
|
done
|
|||
|
+ rc_status -v
|
|||
|
+
|
|||
|
# Set Alarm
|
|||
|
echo -n "Configuring sensors: "
|
|||
|
- sensors -s && sleep 2
|
|||
|
+ sensors -s
|
|||
|
+ rc_status && sleep 2
|
|||
|
+ rc_status -v
|
|||
|
+
|
|||
|
echo_status $?
|
|||
|
# Start daemons.
|
|||
|
echo -n $"Starting sensord: "
|
|||
|
- daemon sensord -i $interval -l $log_interval
|
|||
|
- RETVAL=$?
|
|||
|
-
|
|||
|
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sensord
|
|||
|
-
|
|||
|
- echo
|
|||
|
- return $RETVAL
|
|||
|
+ startproc /usr/sbin/sensord -i $interval -l $log_interval
|
|||
|
+ rc_status -v && touch /var/lock/subsys/sensord
|
|||
|
}
|
|||
|
|
|||
|
stop()
|
|||
|
{
|
|||
|
# Stop daemons.
|
|||
|
echo -n $"Shutting down sensord: "
|
|||
|
- killproc sensord
|
|||
|
- RETVAL=$?
|
|||
|
+ killproc /usr/sbin/sensord
|
|||
|
+ rc_status -v
|
|||
|
|
|||
|
- echo
|
|||
|
# Remove modules
|
|||
|
- drivers=<3D>echo "$i2c_chip_drivers $i2c_bus_drivers" | \
|
|||
|
- tr -s "[:space:]\n" " "<22>
|
|||
|
- echo -n "Removing I2C drivers: $drivers"
|
|||
|
- /sbin/modprobe -r -q $drivers
|
|||
|
- echo_status $?
|
|||
|
-
|
|||
|
- echo
|
|||
|
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sensord
|
|||
|
-
|
|||
|
- return $RETVAL
|
|||
|
+ echo -n "Removing I2C drivers: " $i2c_chip_drivers $i2c_bus_drivers
|
|||
|
+ /sbin/modprobe -r -q $i2c_chip_drivers $i2c_bus_drivers
|
|||
|
+ rc_status -v && rm -f /var/lock/subsys/sensord
|
|||
|
}
|
|||
|
|
|||
|
reload()
|
|||
|
{
|
|||
|
# Reread configuration file
|
|||
|
sensors -s
|
|||
|
-
|
|||
|
- return $?
|
|||
|
+ rc_status
|
|||
|
}
|
|||
|
|
|||
|
# See how we were called.
|
|||
|
@@ -135,9 +88,6 @@ case "$1" in
|
|||
|
stop)
|
|||
|
stop
|
|||
|
;;
|
|||
|
- status)
|
|||
|
- status sensord
|
|||
|
- ;;
|
|||
|
restart)
|
|||
|
stop
|
|||
|
start
|
|||
|
@@ -145,11 +95,11 @@ case "$1" in
|
|||
|
reload)
|
|||
|
reload
|
|||
|
;;
|
|||
|
- condrestart)
|
|||
|
+ try-restart)
|
|||
|
[ -e /var/lock/subsys/sensord ] && restart || :
|
|||
|
;;
|
|||
|
*)
|
|||
|
- echo "Usage: sensord {start|stop|restart|reload|condrestart|status}"
|
|||
|
+ echo "Usage: sensord {start|stop|restart|reload|try-restart|status}"
|
|||
|
exit 1
|
|||
|
;;
|
|||
|
esac
|
|||
|
--- prog/pwm/fancontrol
|
|||
|
+++ prog/pwm/fancontrol 2006-02-28 13:05:01.000000000 +0100
|
|||
|
@@ -154,10 +154,10 @@ function restorefans()
|
|||
|
do
|
|||
|
pwmo=${AFCPWM[$fcvcount]}
|
|||
|
pwmdisable $pwmo
|
|||
|
- fcvcount=$fcvcount+1
|
|||
|
+ let fcvcount=$fcvcount+1
|
|||
|
done
|
|||
|
echo 'Verify fans have returned to full speed'
|
|||
|
- exit 1
|
|||
|
+ exit 0
|
|||
|
}
|
|||
|
|
|||
|
trap restorefans SIGHUP SIGINT SIGQUIT SIGTERM SIGKILL
|
|||
|
@@ -240,7 +240,7 @@ function UpdateFanSpeeds {
|
|||
|
if [ $pwmpval -eq 0 -o $fanval -eq 0 ]
|
|||
|
then # if fan was stopped start it using a safe value
|
|||
|
echo $minsa > $pwmo
|
|||
|
- sleep 1
|
|||
|
+ read < <(exec sleep 1)
|
|||
|
fi
|
|||
|
fi
|
|||
|
echo $pwmval > $pwmo # write new value to pwm output
|
|||
|
@@ -253,7 +253,7 @@ function UpdateFanSpeeds {
|
|||
|
then
|
|||
|
echo "new pwmval=$pwmval"
|
|||
|
fi
|
|||
|
- fcvcount=$fcvcount+1
|
|||
|
+ let fcvcount=$fcvcount+1
|
|||
|
done
|
|||
|
}
|
|||
|
|
|||
|
@@ -268,7 +268,7 @@ do
|
|||
|
echo "Error enabling PWM on $DIR/$pwmo"
|
|||
|
restorefans
|
|||
|
fi
|
|||
|
- fcvcount=$fcvcount+1
|
|||
|
+ let fcvcount=$fcvcount+1
|
|||
|
done
|
|||
|
|
|||
|
echo 'Starting automatic fan control...'
|
|||
|
@@ -277,7 +277,7 @@ echo 'Starting automatic fan control...'
|
|||
|
while true
|
|||
|
do
|
|||
|
UpdateFanSpeeds
|
|||
|
- sleep $INTERVAL
|
|||
|
+ read < <(exec sleep $INTERVAL)
|
|||
|
done
|
|||
|
|
|||
|
# some old stuff/missing features, will clean this up soon
|
|||
|
--- prog/pwm/pwmconfig
|
|||
|
+++ prog/pwm/pwmconfig 2006-02-28 13:05:01.000000000 +0100
|
|||
|
@@ -189,6 +189,9 @@ echo
|
|||
|
PLOTTER=gnuplot
|
|||
|
STEP=15
|
|||
|
PDELAY=2
|
|||
|
+STEP2=2
|
|||
|
+STEP2_BELOW=31
|
|||
|
+PDELAY=3
|
|||
|
|
|||
|
function pwmdetail()
|
|||
|
{
|
|||
|
@@ -256,6 +259,7 @@ function pwmdetail()
|
|||
|
fi
|
|||
|
break
|
|||
|
fi
|
|||
|
+ test $pwm -lt $STEP2_BELOW && let STEP=$STEP2
|
|||
|
let pwm=$pwm-$STEP
|
|||
|
done
|
|||
|
pwmdisable $P
|
|||
|
--- prog/sensors/main.c
|
|||
|
+++ prog/sensors/main.c 2006-02-28 13:05:01.000000000 +0100
|
|||
|
@@ -188,6 +188,11 @@ int main (int argc, char *argv[])
|
|||
|
exit(0);
|
|||
|
case 'c':
|
|||
|
config_file_name = strdup(optarg);
|
|||
|
+ if (!config_file_name) {
|
|||
|
+ fprintf(stderr, "Could not open config file\n");
|
|||
|
+ perror(config_file_name);
|
|||
|
+ exit(1);
|
|||
|
+ }
|
|||
|
break;
|
|||
|
case 's':
|
|||
|
do_sets = 1;
|
|||
|
@@ -232,6 +237,11 @@ int main (int argc, char *argv[])
|
|||
|
|
|||
|
if (config_file_name == NULL)
|
|||
|
config_file_name = strdup(ETCDIR "/" DEFAULT_CONFIG_FILE_NAME);
|
|||
|
+ if (!config_file_name) {
|
|||
|
+ fprintf(stderr, "Could not open config file\n");
|
|||
|
+ perror(config_file_name);
|
|||
|
+ exit(1);
|
|||
|
+ }
|
|||
|
open_config_file(config_file_name);
|
|||
|
|
|||
|
if ((res = sensors_init(config_file))) {
|