Wrong readings on CPU temperature (Atom D525)



  • I read all threads that i could find using the search feature but i have not seen a solution for this yet.

    I have two identical appliances that each use an Intel D525MW board and BIOS version MWPNT10N.86A.0132.2013.0726.1534.

    Appliance #1 is running Windows 7 Pro/64 Bit, Appliance #2 is running pfSense 2.4.4-RELEASE-p2.

    On Appliance #1 (Windows), HWMonitor correctly (i assume) reports 27°C for Core #0 and 23°C for Core #1. Ambient temperature in this location is about 10°C (ten degrees Celsius).

    Appliance #2 (pfSense) reports
    dev.cpu.3.temperature: 19.0C
    dev.cpu.2.temperature: 18.0C
    dev.cpu.1.temperature: 13.0C
    dev.cpu.0.temperature: 13.0C
    Ambient temperature in this location is 21°C (twenty one degrees Celsius).

    Is there any chance to get correct values from sysctl? I read about mbmon but it seems that is unsupported.


  • Netgate Administrator

    It reads incorrectly because the reported (or assumed) Tjmax value is incorrect. You should be able to see that in the sysclt output there. The BIOS might report a different value to Windows or the windows application might just use a known good value for Tjmax.

    From a D525 box I have here:

    [2.4.4-RELEASE][admin@cuda.stevew.lan]/root: sysctl dev.cpu.0
    dev.cpu.0.temperature: 39.0C
    dev.cpu.0.coretemp.throttle_log: 0
    dev.cpu.0.coretemp.tjmax: 100.0C
    dev.cpu.0.coretemp.resolution: 1
    dev.cpu.0.coretemp.delta: 61
    dev.cpu.0.cx_method: C1/hlt
    dev.cpu.0.cx_usage_counters: 11241
    dev.cpu.0.cx_usage: 100.00% last 5844us
    dev.cpu.0.cx_lowest: C1
    dev.cpu.0.cx_supported: C1/1/0
    dev.cpu.0.%parent: acpi0
    dev.cpu.0.%pnpinfo: _HID=none _UID=0
    dev.cpu.0.%location: handle=\_PR_.P001
    dev.cpu.0.%driver: cpu
    dev.cpu.0.%desc: ACPI CPU
    

    There's nothing you can do about that in pfSense AFAIK. You might try having the OS report itself as Windows to the BIOS to get the correct value if you can show that Windows is getting it. Or patching the ACPI tables in the BIOS.

    Steve



  • @stephenw10 said in Wrong readings on CPU temperature (Atom D525):

    [...]
    There's nothing you can do about that in pfSense AFAIK. You might try having the OS report itself as Windows to the BIOS to get the correct value if you can show that Windows is getting it. Or patching the ACPI tables in the BIOS.

    Steve

    Thank you for the explaination. I turned off the temperature widget.



  • @aweidner

    You could correct the issue but it would require you to rebuild the coretemp kernel module.
    I had to do a similar thing when I replaced the CPU in my Watchguard with a xeon.

    The coretemp module code is very basic and if your CPU has the same ID as another model the wrong tjmax value gets set. If you change the code you can compile the module and load it at boot to override the coretemp module from the kernel.

    You will then have the correct temps reported.


  • Netgate Administrator

    Is it using an invalid Tjmax? I assumed it would be but....



  • @dlucas46 said in Wrong readings on CPU temperature (Atom D525):

    @aweidner

    You could correct the issue but it would require you to rebuild the coretemp kernel module.
    I had to do a similar thing when I replaced the CPU in my Watchguard with a xeon.

    The coretemp module code is very basic and if your CPU has the same ID as another model the wrong tjmax value gets set. If you change the code you can compile the module and load it at boot to override the coretemp module from the kernel.

    You will then have the correct temps reported.

    That would be too much of an effort for me as this box is just a stand in, before i can buy something new. It is at least eight years old and was pulled from the shelf because i needed a quick solution.
    Also my programming skills are virtually non existent ☺


Log in to reply