mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-08 16:11:26 +00:00
Drop VRM reporting and selection support from libsensors. Since kernel
2.6.9, the right VID conversion formula is selected automatically depending on the CPU model, so the user shouldn't have to care. git-svn-id: http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-3.0.0@4543 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
e10dec5e86
commit
7cc03f5029
11 files changed
+17
-138
No files matched your search
@@ -691,10 +691,8 @@ settings for the Processor Core voltage (often in0_min and in0_max) in
|
||||
that file so that they don't depend on vid.
|
||||
|
||||
The CPU nominal voltage is computed from VID lines according to a
|
||||
formula that depends on the CPU type. Most chips that report a VID
|
||||
value can be configured to use either VRM 8.2 (for Pentium III) or VRM
|
||||
9.0 (for Pentium 4 and Athlon). You chose which one you want through
|
||||
`/etc/sensors.conf'. See `doc/vid' for more information.
|
||||
formula that depends on the CPU type. Since Linux 2.6.14, the right
|
||||
formula is selected automatically. See `doc/vid' for more information.
|
||||
|
||||
4.8 I read sensor values several times a second, but they are only updated only each second or so. Why?
|
||||
=======================================================================================================
|
||||
|
||||
@@ -1106,9 +1106,8 @@ and change the min and max settings for the Processor Core voltage
|
||||
(often in0_min and in0_max) in that file so that they don't depend on vid.
|
||||
|
||||
<p>The CPU nominal voltage is computed from VID lines according to a formula
|
||||
that depends on the CPU type. Most chips that report a VID value can be
|
||||
configured to use either VRM 8.2 (for Pentium III) or VRM 9.0 (for Pentium 4
|
||||
and Athlon). You chose which one you want through <samp><span class="file">/etc/sensors.conf</span></samp>.
|
||||
that depends on the CPU type. Since Linux 2.6.14, the right formula is
|
||||
selected automatically.
|
||||
See <samp><span class="file">doc/vid</span></samp> for more information.
|
||||
|
||||
<div class="node">
|
||||
|
||||
@@ -716,9 +716,8 @@ and change the min and max settings for the Processor Core voltage
|
||||
(often in0_min and in0_max) in that file so that they don't depend on vid.
|
||||
|
||||
The CPU nominal voltage is computed from VID lines according to a formula
|
||||
that depends on the CPU type. Most chips that report a VID value can be
|
||||
configured to use either VRM 8.2 (for Pentium III) or VRM 9.0 (for Pentium 4
|
||||
and Athlon). You chose which one you want through @file{/etc/sensors.conf}.
|
||||
that depends on the CPU type. Since Linux 2.6.9, the right formula is
|
||||
selected automatically.
|
||||
See @file{doc/vid} for more information.
|
||||
|
||||
|
||||
|
||||
@@ -43,76 +43,14 @@ Document Version Voltage Range Increment Processors
|
||||
AMD Opteron 24x processors.
|
||||
Note that versions 8.1 - 8.4 are compatible.
|
||||
|
||||
lm_sensors versions through 2.6.3 support only the VRM 8.2 standard.
|
||||
|
||||
Starting in lm_sensors 2.6.4 the VRM version is configurable.
|
||||
To configure the sensor chip for the correct voltage range,
|
||||
you must set the "vrm" correctly either via /proc, /sys, or sensors.conf.
|
||||
|
||||
To be compatible with previous lm_sensors versions, the vrm defaults
|
||||
to version 8.2. Generally, for recent motherboards, this will not
|
||||
be correct. Try 9.0 first.
|
||||
|
||||
To change the vrm version to 9.0, for example, do the following
|
||||
after the chip module (in this example, w83781d) is loaded:
|
||||
|
||||
(kernel 2.4)
|
||||
echo 9.0 > /proc/sys/dev/sensors/w83781d-isa-0290/vrm
|
||||
(kernel 2.6)
|
||||
echo 90 > /sys/bus/i2c/devices/0-0290/vrm
|
||||
|
||||
Alternatively, add a line in /etc/sensors.conf in the w83781d section
|
||||
(you should put this line BEFORE any line that uses vid in a calculation):
|
||||
|
||||
set vrm 9.0
|
||||
|
||||
and then, after the chip module is loaded, do:
|
||||
|
||||
sensors -s
|
||||
|
||||
After this, reading the vid either by
|
||||
|
||||
(kernel 2.4)
|
||||
cat /proc/sys/dev/sensors/w83781d-isa-0290/vid
|
||||
(kernel 2.6 - divide the output by 1000)
|
||||
cat /sys/bus/i2c/devices/0-0290/in0_ref
|
||||
|
||||
or by
|
||||
|
||||
sensors
|
||||
|
||||
should show the new vid value.
|
||||
|
||||
|
||||
The following values are legal vrm values. Other values will be
|
||||
allowed but will result in using the 8.2 standard.
|
||||
|
||||
2.4, 8.1-8.5, 9.0, 9.1, 10.0
|
||||
|
||||
Since Linux 2.6.9, the correct VRM version is selected automatically
|
||||
based on the CPU brand and model. Thus you shouldn't have to care about
|
||||
it. If you are using a brand new CPU and even the latest kernel complains
|
||||
("Unknown VRM version of your CPU"), this means that the kernel must be
|
||||
taught about this new CPU model. Please report to us in this case.
|
||||
|
||||
Remember, the VID pins on the sensor chips are inputs only.
|
||||
That means they can't be changed and there shouldn't be
|
||||
any problems if you experiment with the vrm values until you
|
||||
get it right. You cannot manipulate the actual processor core
|
||||
voltage through lm_sensors drivers.
|
||||
|
||||
Not all sensor chips have VID inputs.
|
||||
For those that do, the VRM support status is listed below.
|
||||
|
||||
The following chip drivers support all the VRM versions via
|
||||
/etc/sensors.conf and the vrm entry in /proc or /sys:
|
||||
|
||||
adm1025, adm1026, asb100, lm85, lm87,
|
||||
vt1211, vt8231, w83627hf, w83781d
|
||||
|
||||
|
||||
The following chip drivers support only VRM 8.2 and cannot be changed:
|
||||
|
||||
adm1024, it87, mtp008
|
||||
adm9240, gl520sm, lm78, maxilife
|
||||
|
||||
If you have a board with one of these chips which needs advanced
|
||||
VRM support please email us.
|
||||
You cannot use them to manipulate the actual processor core voltage.
|
||||
|
||||
------------------
|
||||
Copyright (c) 2002-2004 Mark D. Studebaker
|
||||
@@ -234,7 +234,6 @@
|
||||
# This is a library dependency.
|
||||
# A 'set fan1_div' statement must go before a 'set fan1_min' statement,
|
||||
# because the driver uses the divisor in calculating the minimum.
|
||||
# Also, one should set vrm prior to using vid in any formula.
|
||||
#
|
||||
#
|
||||
# BUS LINES
|
||||
@@ -475,9 +474,6 @@ chip "w83782d-*" "w83627hf-*"
|
||||
compute in6 (3.14 * @) - 7.71 , (@ + 7.71) / 3.14
|
||||
compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1)
|
||||
|
||||
# adjust this if your vid is wrong; see doc/vid
|
||||
# set vrm 9.0
|
||||
|
||||
# set limits to 5% for the critical voltages
|
||||
# set limits to 10% for the non-critical voltages
|
||||
# set limits to 20% for the battery voltage
|
||||
@@ -538,9 +534,6 @@ chip "w83783s-*"
|
||||
compute in5 (5.14 * @) - 14.91 , (@ + 14.91) / 5.14
|
||||
compute in6 (3.14 * @) - 7.71 , (@ + 7.71) / 3.14
|
||||
|
||||
# adjust this if your vid is wrong; see doc/vid
|
||||
# set vrm 9.0
|
||||
|
||||
# set limits to 5% for the critical voltages
|
||||
# set limits to 10% for the non-critical voltages
|
||||
# set limits to 20% for the battery voltage
|
||||
@@ -688,9 +681,6 @@ chip "w83627thf-*" "w83637hf-*"
|
||||
compute in4 (5.14*@)-14.91, (@+14.91)/5.14
|
||||
compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1)
|
||||
|
||||
# adjust this if your vid is wrong; see doc/vid
|
||||
# set vrm 9.0
|
||||
|
||||
# set limits to 5% for the critical voltages
|
||||
# set limits to 10% for the non-critical voltages
|
||||
# set limits to 20% for the battery voltage
|
||||
@@ -886,9 +876,6 @@ chip "as99127f-*"
|
||||
# label temp3 "CPU 2 Temp"
|
||||
# ignore temp3
|
||||
|
||||
# adjust this if your vid is wrong; see doc/vid
|
||||
# set vrm 9.0
|
||||
|
||||
# set limits to 5% for the critical voltages
|
||||
# set limits to 10% for the non-critical voltages
|
||||
# set limits to 20% for the battery voltage
|
||||
@@ -1336,9 +1323,6 @@ chip "adm1025-*" "ne1619-*"
|
||||
label in4 "+12V"
|
||||
label in5 "VCC"
|
||||
|
||||
# Adjust this if your vid is wrong; see doc/vid
|
||||
# set vrm 9.0
|
||||
|
||||
# Tolerate a 5% deviance for CPU power-supply
|
||||
# set in1_min vid * 0.95
|
||||
# set in1_max vid * 1.05
|
||||
@@ -2095,9 +2079,6 @@ chip "vt1211-*"
|
||||
compute in3 @ * (1 + 14 / 10), @ / (1 + 14 / 10)
|
||||
compute in4 @ * (1 + 47 / 10), @ / (1 + 47 / 10)
|
||||
|
||||
# Adjust this if your vid is wrong (for 2.4 only); see doc/vid
|
||||
# set vrm 9.1
|
||||
|
||||
# set in0_min 3.3 * 0.95
|
||||
# set in0_max 3.3 * 1.05
|
||||
# set in1_min 2.5 * 0.95
|
||||
@@ -2330,8 +2311,6 @@ chip "smsc47m192-*"
|
||||
# This example was tested vs. Asus P4S333
|
||||
#
|
||||
chip "asb100-*"
|
||||
# adjust this if your vid is wrong; see doc/vid
|
||||
#set vrm 9.0
|
||||
|
||||
label in0 "VCore 1"
|
||||
#set in0_min vid * 0.95
|
||||
@@ -2449,10 +2428,6 @@ chip "lm85c-*" "adm1027-*" "adt7463-*" "lm85-*" "lm85b-*"
|
||||
# ignore fan3
|
||||
# ignore fan4
|
||||
|
||||
# Set VRM version
|
||||
# adjust this if your vid is wrong; see doc/vid
|
||||
# set vrm 9.1 # Pentium 4
|
||||
|
||||
# Set voltage limits
|
||||
# set in0_min 1.5 * 0.95
|
||||
# set in0_max 1.5 * 1.05
|
||||
@@ -2480,9 +2455,6 @@ chip "pc87366-*"
|
||||
|
||||
# Voltage inputs
|
||||
|
||||
# Set VRM version (default 9.0)
|
||||
# set vrm 9.0
|
||||
|
||||
label in7 "Vsb"
|
||||
label in8 "Vdd"
|
||||
label in9 "Vbat"
|
||||
|
||||
@@ -553,10 +553,6 @@ sensors_feature_type sensors_feature_get_type(
|
||||
int i, nr, count;
|
||||
struct feature_type_match *submatches;
|
||||
|
||||
/* vrm is special */
|
||||
if (!strcmp(feature->name, "vrm"))
|
||||
return SENSORS_FEATURE_VRM;
|
||||
|
||||
for(i = 0; matches[i].name != 0; i++)
|
||||
if ((count = sscanf(feature->name, matches[i].name, &nr, &c)))
|
||||
break;
|
||||
|
||||
@@ -176,7 +176,6 @@ typedef enum sensors_feature_type {
|
||||
SENSORS_FEATURE_TEMP_SENS,
|
||||
|
||||
SENSORS_FEATURE_VID = 0x300,
|
||||
SENSORS_FEATURE_VRM,
|
||||
|
||||
SENSORS_FEATURE_UNKNOWN = INT_MAX,
|
||||
|
||||
|
||||
@@ -52,8 +52,6 @@ int get_type_scaling(int type)
|
||||
switch (type) {
|
||||
case SENSORS_FEATURE_VID:
|
||||
return 3;
|
||||
case SENSORS_FEATURE_VRM:
|
||||
return 1;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -101,20 +101,17 @@ int sensors_get_label_and_valid(sensors_chip_name name, int feature, char **labe
|
||||
return err;
|
||||
}
|
||||
|
||||
void print_vid_info_real(const sensors_chip_name *name, int f_vid, int f_vrm, int label_size)
|
||||
void print_vid_info(const sensors_chip_name *name, int f_vid, int label_size)
|
||||
{
|
||||
char *label;
|
||||
int valid;
|
||||
double vid, vrm;
|
||||
double vid;
|
||||
|
||||
if (!sensors_get_label_and_valid(*name,f_vid,&label,&valid)
|
||||
&& !sensors_get_feature(*name,f_vid,&vid) ) {
|
||||
if (valid) {
|
||||
print_label(label, label_size);
|
||||
if(!sensors_get_feature(*name,f_vrm,&vrm))
|
||||
printf("%+6.3f V (VRM Version %.1f)\n",vid,vrm);
|
||||
else
|
||||
printf("%+6.3f V\n",vid);
|
||||
printf("%+6.3f V\n", vid);
|
||||
}
|
||||
}
|
||||
free(label);
|
||||
|
||||
@@ -34,7 +34,7 @@ extern void print_unknown_chip(const sensors_chip_name *name);
|
||||
void print_temp_info(float n_cur, float n_over, float n_hyst,
|
||||
int minmax, int curprec, int limitprec);
|
||||
|
||||
void print_vid_info_real(const sensors_chip_name *name, int f_vid, int f_vrm, int label_size);
|
||||
void print_vid_info(const sensors_chip_name *name, int f_vid, int label_size);
|
||||
|
||||
void print_label(const char *label, int space);
|
||||
|
||||
|
||||
@@ -337,23 +337,6 @@ static void print_generic_chip_fan(const sensors_chip_name *name,
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static void print_generic_chip_vid(const sensors_chip_name *name,
|
||||
const sensors_feature_data *feature,
|
||||
int i, int j, int label_size)
|
||||
{
|
||||
const sensors_feature_data *vrm_feature;
|
||||
|
||||
while((vrm_feature = sensors_get_all_features(*name, &i, &j))) {
|
||||
if (sensors_feature_get_type(vrm_feature) == SENSORS_FEATURE_VRM)
|
||||
break;
|
||||
}
|
||||
|
||||
if (vrm_feature != NULL)
|
||||
print_vid_info_real(name, feature->number, vrm_feature->number, label_size);
|
||||
else
|
||||
print_vid_info_real(name, feature->number, -1, label_size);
|
||||
}
|
||||
|
||||
void print_generic_chip(const sensors_chip_name *name)
|
||||
{
|
||||
const sensors_feature_data *feature;
|
||||
@@ -374,7 +357,7 @@ void print_generic_chip(const sensors_chip_name *name)
|
||||
case SENSORS_FEATURE_FAN:
|
||||
print_generic_chip_fan(name, feature, i, j, label_size); break;
|
||||
case SENSORS_FEATURE_VID:
|
||||
print_generic_chip_vid(name, feature, i, j, label_size); break;
|
||||
print_vid_info(name, feature->number, label_size); break;
|
||||
default: continue;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user