Drop support for kernels 2.4 and earlier.

git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5630 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Jean Delvare committed 2009-01-29 08:28:17 +00:00
1 parent 334c9446f5
commit ea854deb03
3 files changed
+112 -178

No files matched your search

+2
View File
@@ -10,7 +10,9 @@ SVN-HEAD
Drop support for kernels 2.4 and earlier
lm_sensors.init.suse: Delete (actual SuSE script is much different)
Makefile: Install sensors.conf.default instead of sensors.conf.eg (#2333)
pwmconfig: Drop support for kernels 2.4 and earlier
fancontrol: Don't round temperature values
Drop support for kernels 2.4 and earlier
maxilife scripts: Delete (driver never ported to Linux 2.6)
sensord: Accept negative temperatures in RRD database
Don't bail out on transient errors (#2330)
+42 -71
View File
@@ -1,6 +1,7 @@
#!/bin/bash
#
# Simple script implementing a temperature dependent fan speed control
# Supported Linux kernel versions: 2.6.5 and later
#
# Version 0.68
#
@@ -159,84 +160,67 @@ else
LoadConfig /etc/fancontrol
fi
DIR=/proc/sys/dev/sensors
# Detect if config file uses the hwmon class or not yet
if echo "${AFCPWM[0]}" | egrep -q '^hwmon[0-9]'
then
DIR=/sys/class/hwmon
else
DIR=/sys/bus/i2c/devices
fi
if [ ! -d $DIR ]
then
# For Linux 2.6, detect if config file uses the hwmon class or not yet
if echo "${AFCPWM[0]}" | egrep -q '^hwmon[0-9]'
then
SDIR=/sys/class/hwmon
else
SDIR=/sys/bus/i2c/devices
fi
if [ ! -d $SDIR ]
then
echo $0: 'No sensors found! (did you load the necessary modules?)'
exit 1
else
SYSFS=1
DIR=$SDIR
fi
echo $0: 'No sensors found! (did you load the necessary modules?)'
exit 1
fi
cd $DIR
# $1 = pwm file name
function pwmdisable()
{
if [ -n "$SYSFS" ]
ENABLE=${1}_enable
# No enable file? Just set to max
if [ ! -f $ENABLE ]
then
ENABLE=${1}_enable
# No enable file? Just set to max
if [ ! -f $ENABLE ]
then
echo $MAX > $1
return 0
fi
# Try pwmN_enable=0
echo 0 > $ENABLE 2> /dev/null
if [ `cat $ENABLE` -eq 0 ]
then
# Success
return 0
fi
# It didn't work, try pwmN_enable=1 pwmN=255
echo 1 > $ENABLE 2> /dev/null
echo $MAX > $1
if [ `cat $ENABLE` -eq 1 -a `cat $1` -ge 190 ]
then
# Success
return 0
fi
# Nothing worked
echo "$ENABLE stuck to" `cat $ENABLE` >&2
return 1
else
echo $MAX 0 > $1
return 0
fi
# Try pwmN_enable=0
echo 0 > $ENABLE 2> /dev/null
if [ `cat $ENABLE` -eq 0 ]
then
# Success
return 0
fi
# It didn't work, try pwmN_enable=1 pwmN=255
echo 1 > $ENABLE 2> /dev/null
echo $MAX > $1
if [ `cat $ENABLE` -eq 1 -a `cat $1` -ge 190 ]
then
# Success
return 0
fi
# Nothing worked
echo "$ENABLE stuck to" `cat $ENABLE` >&2
return 1
}
# $1 = pwm file name
function pwmenable()
{
if [ "$SYSFS" = "1" ]
ENABLE=${1}_enable
if [ -f $ENABLE ]
then
ENABLE=${1}_enable
if [ -f $ENABLE ]
echo 1 > $ENABLE 2> /dev/null
if [ $? -ne 0 ]
then
echo 1 > $ENABLE 2> /dev/null
if [ $? -ne 0 ]
then
return 1
fi
return 1
fi
echo $MAX > $1
else
echo $MAX 1 > $1
fi
echo $MAX > $1
}
function restorefans()
@@ -280,11 +264,6 @@ function UpdateFanSpeeds {
echo "Error reading temperature from $DIR/$tsens"
restorefans 1
fi
if [ "$SYSFS" != "1" ]
then
tval=`echo ${tval} | cut -d' ' -f3 | cut -d'.' -f1`
let tval="${tval}*1000"
fi
read pwmpval < ${pwmo}
if [ $? -ne 0 ]
@@ -292,10 +271,6 @@ function UpdateFanSpeeds {
echo "Error reading PWM value from $DIR/$pwmo"
restorefans 1
fi
if [ "$SYSFS" != "1" ]
then
pwmpval=`echo ${pwmpval} | cut -d' ' -f1`
fi
# If fanspeed-sensor output shall be used, do it
if [[ -n ${fan} ]]
@@ -306,10 +281,6 @@ function UpdateFanSpeeds {
echo "Error reading Fan value from $DIR/$fan"
restorefans 1
fi
if [ "$SYSFS" != "1" ]
then
fanval=`echo ${fanval} | cut -d' ' -f2`
fi
else
fanval=1 # set it to a non zero value, so the rest of the script still works
fi
+68 -107
View File
@@ -2,6 +2,7 @@
#
# pwmconfig
# Tests the pwm outputs of sensors and configures fancontrol
# Supported Linux kernel versions: 2.6.5 and later
#
# Warning!!! This program will stop your fans, one at a time,
# for approximately 5 seconds each!!!
@@ -9,7 +10,7 @@
# Verify that all fans are running at normal speed after this
# program has exited!!!
#
# Copyright (C) 2007-2008 Jean Delvare <khali@linux-fr.org>
# Copyright (C) 2007-2009 Jean Delvare <khali@linux-fr.org>
#
# 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
@@ -57,30 +58,22 @@ echo
DELAY=5 # 3 seconds delay is too short for large fans, thus I increased it to 5
MAX=255
DIR=/proc/sys/dev/sensors
if [ ! -d $DIR ]
if [ -d "/sys/class/hwmon" ]
then
if [ -d "/sys/class/hwmon" ]
then
SYSFS=2
DIR="/sys/class/hwmon"
elif [ -d "/sys/bus/i2c/devices" ]
then
SYSFS=1
DIR="/sys/bus/i2c/devices"
else
echo $0: 'No sensors found! (modprobe sensor modules?)'
exit 1
fi
SYSFS=2
DIR="/sys/class/hwmon"
PREFIX='hwmon*'
elif [ -d "/sys/bus/i2c/devices" ]
then
SYSFS=1
DIR="/sys/bus/i2c/devices"
PREFIX='*-*'
else
echo $0: 'No sensors found! (modprobe sensor modules?)'
exit 1
fi
cd $DIR
if [ "$SYSFS" = "2" ]
then
PREFIX='hwmon*'
else
PREFIX='*-*'
fi
DEVICES=`echo $PREFIX`
if [ "$PREFIX" = "$DEVICES" ]
then
@@ -88,7 +81,7 @@ then
exit 1
fi
# For sysfs, we may need to adjust the device path
# We may need to adjust the device path
if [ "$SYSFS" = "2" ]
then
OLD_DEVICES="$DEVICES"
@@ -123,12 +116,7 @@ do
fi
# Find available fan monitoring inputs
if [ -n "$SYSFS" ]
then
MATCH=$device/'fan[1-9]_input'
else
MATCH=$device/'fan[1-9]'
fi
MATCH=$device/'fan[1-9]_input'
device_fan=`echo $MATCH`
if [ "$MATCH" != "$device_fan" ]
then
@@ -148,7 +136,6 @@ then
fi
# $1 = padding
# Only works with Linux 2.6
function print_devices()
{
local name
@@ -164,15 +151,12 @@ function print_devices()
# $1 = pwm file name
function is_pwm_auto()
{
if [ -n "$SYSFS" ]
ENABLE=${1}_enable
if [ -f $ENABLE ]
then
ENABLE=${1}_enable
if [ -f $ENABLE ]
if [ "`cat $ENABLE`" -gt 1 ]
then
if [ "`cat $ENABLE`" -gt 1 ]
then
return 0
fi
return 0
fi
fi
@@ -182,65 +166,55 @@ function is_pwm_auto()
# $1 = pwm file name
function pwmdisable()
{
if [ -n "$SYSFS" ]
ENABLE=${1}_enable
# No enable file? Just set to max
if [ ! -f $ENABLE ]
then
ENABLE=${1}_enable
# No enable file? Just set to max
if [ ! -f $ENABLE ]
then
echo $MAX > $1
return 0
fi
# Try pwmN_enable=0
echo 0 2>/dev/null > $ENABLE
if [ "`cat $ENABLE`" -eq 0 ]
then
# Success
return 0
fi
# It didn't work, try pwmN_enable=1 pwmN=255
echo 1 2>/dev/null > $ENABLE
if [ "`cat $ENABLE`" -ne 1 ]
then
echo "$ENABLE stuck to `cat $ENABLE`" >&2
return 1
fi
echo $MAX > $1
if [ "`cat $1`" -ge 190 ]
then
# Success
return 0
fi
# Nothing worked
echo "$1 stuck to `cat $1`" >&2
return 1
else
echo $MAX 0 > $1
return 0
fi
# Try pwmN_enable=0
echo 0 2>/dev/null > $ENABLE
if [ "`cat $ENABLE`" -eq 0 ]
then
# Success
return 0
fi
# It didn't work, try pwmN_enable=1 pwmN=255
echo 1 2>/dev/null > $ENABLE
if [ "`cat $ENABLE`" -ne 1 ]
then
echo "$ENABLE stuck to `cat $ENABLE`" >&2
return 1
fi
echo $MAX > $1
if [ "`cat $1`" -ge 190 ]
then
# Success
return 0
fi
# Nothing worked
echo "$1 stuck to `cat $1`" >&2
return 1
}
# $1 = pwm file name
function pwmenable()
{
if [ -n "$SYSFS" ]
ENABLE=${1}_enable
if [ -w $ENABLE ]
then
ENABLE=${1}_enable
if [ -w $ENABLE ]
echo 1 2>/dev/null > $ENABLE
if [ $? -ne 0 ]
then
echo 1 2>/dev/null > $ENABLE
if [ $? -ne 0 ]
then
return 1
fi
return 1
fi
echo $MAX > $1
else
echo $MAX 1 > $1
fi
echo $MAX > $1
}
# $1 = pwm file name; $2 = pwm value 0-255
@@ -249,12 +223,9 @@ function pwmset()
echo $2 > $1
}
if [ -n "$SYSFS" ]
then
echo 'Found the following devices:'
print_devices " "
echo
fi
echo 'Found the following devices:'
print_devices " "
echo
echo 'Found the following PWM controls:'
for i in $PWM
@@ -555,12 +526,7 @@ fi
for device in $DEVICES
do
# Find available temperature monitoring inputs
if [ -n "$SYSFS" ]
then
MATCH=$device/'temp[1-9]_input'
else
MATCH=$device/'temp[1-9]'
fi
MATCH=$device/'temp[1-9]_input'
device_temp=`echo $MATCH`
if [ "$MATCH" != "$device_temp" ]
then
@@ -785,21 +751,16 @@ select pwms in $pwmactive "Change INTERVAL" "Just quit" "Save and quit" "Show co
"`echo ${pwmactive} |sed -e 's/ /\n/g' | egrep "${pwms}"`" )
pwmsed=`echo ${pwms} | sed -e 's/\//\\\\\//g'` #escape / for sed
echo
if [ -n "$SYSFS" ]
then
echo 'Devices:'
print_devices ""
echo
fi
echo 'Devices:'
print_devices ""
echo
echo 'Current temperature readings are as follows:'
for j in $TEMPS
do
# this will return the first field if there's only one (sysfs)
S=`cat $j | cut -d' ' -f3`
if [ -n "$SYSFS" ]
then
let S="$S / 1000"
fi
S=`cat $j`
let S="$S / 1000"
echo "$j $S"
done
FAN=`echo $fanactive|cut -d' ' -f$REPLY`