Ticket #648 (closed task)
Opened 7 years ago
w83782d - A7A266 works but freezes at 60.5C (Examined/Solved - lm_sensors 2.6.0 Linux 2.4.5)
| Reported by: | contact | Owned by: | somebody |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | hardware | Version: | |
| Keywords: | Cc: |
Description
Hi,
I'm using an A7A266 board with a 1.33 GHz Athlon processor. The
sensors-detect program doesn't seem to find the right drivers but I can get
meaningful readouts from the sensors program (or
/proc/sys/dev/sensors/w83782d-i2c-0-2d) when I do this:
modprobe i2c-ali1535
modprobe w83781d
/usr/local/bin/sensors -s
At the end of this message I include a syslog message dump.
HOWEVER:
After boot, my "temp2" value is somewhere around 58C, and as soon as I do some
serious computing, it starts to rise. When the temperature reaches 60.5C,
my motherboard emits a high-pitched beeping sound through the system speaker and
freezes.
This happens if and only if I load the modules. Loading the modules and
unloading them later does not prevent the system from crashing at 60.5;
the only way to work at temperatures over 60C is not loading the modules,
ever.
Of course I have tried to change the "temp2_max" value in sensors.conf and run
sensors -s afterwards, but this does not seem to change the behaviour. The new
max value is not recognized - the "sensors" printout always lists 60.0C as the
max value for temp2, no matter what I put in sensors.conf (and yes, I *do* rund
sensors -s afterwards). The sensors printout also says "alarm sound disabled" or
some such message, but I can assure you that I have an alarm sound and
associated system freeze.
My BIOS has a hardware monitor page where I can set the individual temps to
"ignore"; I tried that but without success (it seems to affect only boot time
measurements).
My system works just fine as long as I don't load any of the i2c/lm_sensors
modules. But of course I'd like to be able to use them.
Any ideas?
Frederik
kernel: i2c-core.o: i2c core module
kernel: i2c-ali1535.o version 2.6.0 (20010612)
kernel: i2c-core.o: adapter SMBus ALI1535 adapter at e800 registered as adapter
0.
kernel: i2c-ali1535.o: ALI1535 SMBus Controller detected and initialized
kernel: i2c-proc.o version 2.6.0 (20010228)
kernel: w83781d.o version 2.6.0 (20010612)
kernel: i2c-core.o: driver W83781D sensor driver registered.
kernel: i2c-ali1535.o: Error: command never completed
last message repeated 12 times
kernel: i2c-core.o: client [W83782D chip] registered to adapter [SMBus ALI1535
adapter at e800](pos. 0).
kernel: i2c-core.o: client [W83782D subclient] registered to adapter [SMBus
ALI1535 adapter at e800](pos. 1).
kernel: i2c-core.o: client [W83782D subclient] registered to adapter [SMBus
ALI1535 adapter at e800](pos. 2).
kernel: i2c-ali1535.o: Error: command never completed
kernel: i2c-ali1535.o: Error: command never completed
--- Hmm.
The 1535 driver is alpha but it doesn't seem to be the problem.
Don't know what the 'command never completed' means,
I will investigate.
If your temp2_max setting isn't taking effect it
is possible that you don't really have a w83782d.
Can you look at your motherboard to verify?
I'll also look to see if the temp2_max setting code looks
correct.
Can you also try direct setting of the temp2 max values
by writing to the /proc/.../temp2 file
and reading it back, then seeing if that
fixes the system crash problem.
Followup by emailing sensors@…
and reference your ticket #.
MDS 7/15/01
Result of email MDS 7/28/01
You must change the section of sensors.conf that corresponds
to the chip found, not the driver name.
So to get sensors.conf to work now, you must change the section
headed w83782d.
Your chip is being misidentified by the driver, which is a common problem.
Force the driver with
modprobe w83781d force_as99127f=0,0x2d (assuming 0 is the bus number).
Then you will need to set the limits in the as99127f section of the
sensors.conf file.
The driver has some special handling for as99127f which may solve
the alarm problems.
If not,
Many registers are initialized when the driver is loaded.
If that is causing problems comment them out in w83781d_init_client()
in the driver.
mds
Frederik Ramm wrote:
Hi,
I'm responding to your message in the lm-sensors.nu ticket system
(MDS 7/15/01).
If your temp2_max setting isn't taking effect it
is possible that you don't really have a w83782d.
Can you look at your motherboard to verify?
The chip on the board is marked "Asus AS99127F". As far as I
understand, it should be supported by the w83781d module?
You asked me to try writing directly to the /proc/.../temp2 file,
and yes, this works! I can now set the temperature limit freely. If I
change the limits this way, "sensors" will display the changed limits
correctly; trying to set them with "sensors -s" has no effect. I am
attaching my sensors.conf file.
I still don't understand why simply loading the modules (and not
running sensors at all) seems to establish either lower-that-usual
limits or switch on an alarm function with the BIOS. As I told you in
my ticket, when I didn't use the modules at all, everything was fine,
but loading the modules somehow "arms" the alarm mechanism.
Thank you for helping,
Frederik
--------
/etc/sensors.conf:
chip "w83781d-*"
label in0 "VCore 1"
label in1 "VCore 2"
label in2 "+3.3V"
label in3 "+5V"
label in4 "+12V"
label in5 "-12V"
label in6 "-5V"
compute in3 ((6.8/10)+1)*@ , @/((6.8/10)+1)
compute in4 ((28/10)+1)*@ , @/((28/10)+1)
compute in5 -(210/60.4)*@ , -@/(210/60.4)
compute in6 -(90.9/60.4)*@ , -@/(90.9/60.4)
set in0_min vid*0.95
set in0_max vid*1.05
set in1_min vid*0.95
set in1_max vid*1.05
set in2_min 3.3 * 0.95
set in2_max 3.3 * 1.05
set in3_min 5.0 * 0.95
set in3_max 5.0 * 1.05
set in4_min 12 * 0.95
set in4_max 12 * 1.05
set in5_min -12 * 0.95
set in5_max -12 * 1.05
set in6_min -5 * 0.95
set in6_max -5 * 1.05
set temp1_over 50
set temp1_hyst 47
set temp2_over 64
set temp2_hyst 60
--
Frederik Ramm ## eMail frederik@… ## N4859.94 E00824.36'
