On Thu, Jun 16, 2011 at 3:33 PM, Michal Mazurek <akf...@jasminek.net> wrote:
> After moving my old laptop around I got home, booted it and got a very
> distressing message:
>
> messages.2.gz:Jun 14 22:40:09 hopek /bsd: acpitz2: Critical temperature
> 4938C (52112K), shutting down
>
> Perhaps some dust moved around, or a cable disconnected.
> Unfortunately, the system shut down before it booted. I booted bsd.rd,
> read some manpages and booted with -c 'disable acpitz' - everything
> worked fine. I attach a diff to only shutdown if the temperature is
> below 2000C. If it's above then it's too late to shut down anyway :)
>
> BTW, for no apparent reason my laptop started working fine again.
>
>
> Index: acpitz.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/acpitz.c,v
> retrieving revision 1.43
> diff -u -r1.43 acpitz.c
> --- acpitz.c    15 Jun 2011 00:15:54 -0000      1.43
> +++ acpitz.c    16 Jun 2011 15:09:14 -0000
> @@ -326,11 +326,17 @@
>        }
>        /* critical trip points */
>        if (sc->sc_crt != -1 && sc->sc_crt <= sc->sc_tmp) {
> -               /* do critical shutdown */
> -               printf("%s: critical temperature exceeded %dC (%dK),
shutting "
> -                   "down\n",
> -                   DEVNAME(sc), KTOC(sc->sc_tmp), sc->sc_tmp);
> -               psignal(initproc, SIGUSR2);
> +               if (KTOC(sc->sc_tmp) > 2000) {
> +                       printf("%s: absurdly high temperature %dC (%dK), "
> +                           "doing nothing\n",
> +                           DEVNAME(sc), KTOC(sc->sc_tmp), sc->sc_tmp);
> +               } else {
> +                       /* do critical shutdown */
> +                       printf("%s: critical temperature exceeded %dC (%dK),
"
> +                           "shutting down\n",
> +                           DEVNAME(sc), KTOC(sc->sc_tmp), sc->sc_tmp);
> +                       psignal(initproc, SIGUSR2);
> +               }
>        }
>        if (sc->sc_hot != -1 && sc->sc_hot <= sc->sc_tmp) {
>                printf("%s: _HOT temperature\n", DEVNAME(sc));
>
> --
> Michal Mazurek
>
>

I had noticed the following behaviour (maybe related or maybe not) in my
laptop:

- When the batt goes low the system shutdown with the same message.
The temp is always (not 100% sure) 110C. This is 100% reproducible
(every time batt goes low --> system shutdown).

I was trying to figure myself what is happening to introduce myself to
kernel code but if someone want to test something I'll glad to help.

Regards

Reply via email to