System Monitor won't update CPU Frequency

Hello,
I’m having this issue with the System monitor where the sensor for the CPU frequency (either for each single core or for the group or total) doesn’t update.
In the terminal each time I run
cat /proc/cpuinfo | grep ‘cpu MHz’
I have real time values for each core.

I tried from the live ISO of Manjaro 24 and I have the same issue.
I searched on the kde forums but found nothing so I suspect it could be sono distro issue maybe.
Some infos:
Operating System: Manjaro Linux
KDE Plasma Version: 6.0.4
KDE Frameworks Version: 6.1.0
Qt Version: 6.7.0
Kernel Version: 6.9.0-1-MANJARO (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 1600 Six-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: AMD Radeon RX 580 Series
Manufacturer: Gigabyte Technology Co., Ltd.
Product Name: AB350-Gaming 3

TiA for the help.

It works for me when I create the sensor page for CPU.
Where and how do you check CPU frequency?

I’m trying to check it in a new page I made in plasma-systemmonitor


It stays like in this picture and never updates.
I tried every type of graph and I’ve tried to create a new page only for this.

In Konsole running cat /proc/cpuinfo | grep ‘cpu MHz’ returns real time values.

Also, if I start the application from terminal I get this error but it doesn’t seem relevant:
plasma-systemmonitor
qrc:/qt/qml/org/kde/ksysguard/page/EditablePage.qml?page=history.page:223:9: QML Loader: Binding loop detected for property “height”
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)
qt.core.qabstractitemmodel.checkindex: Index QModelIndex(-1,-1,0x0,QObject(0x0)) is not valid (expected valid)

rerun

sensors-detect 

accept all the yes’es you’re asked for, at the end the detection will be stored.

# sensors-detect
# sensors-detect version 3.6.0+git
# System: Gigabyte Technology Co., Ltd. AB350-Gaming 3 [Default string]
# Board: Gigabyte Technology Co., Ltd. AB350-Gaming 3-CF
# Kernel: 6.9.0-1-MANJARO x86_64
# Processor: AMD Ryzen 5 1600 Six-Core Processor (23/1/1)

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): YES
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No
AMD Family 11h thermal sensors...                           No
AMD Family 12h and 14h thermal sensors...                   No
AMD Family 15h thermal sensors...                           No
AMD Family 16h thermal sensors...                           No
AMD Family 17h thermal sensors...                           Success!
    (driver `k10temp')
AMD Family 15h power sensors...                             No
AMD Family 16h power sensors...                             No
Hygon Family 18h thermal sensors...                         No
AMD Family 19h thermal sensors...                           No
Intel digital thermal sensor...                             No
Intel AMB FB-DIMM thermal sensor...                         No
Intel 5500/5520/X58 thermal sensor...                       No
VIA C7 thermal sensor...                                    No
VIA Nano thermal sensor...                                  No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): YES
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      Yes
Found `ITE IT8686E Super IO Sensors'                        Success!
    (address 0xa40, driver `to-be-written')
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      Yes
Found `ITE IT8792E Super IO Sensors'                        Success!
    (address 0xa60, driver `it87')

Some systems (mainly servers) implement IPMI, a set of common interfaces
through which system health data may be retrieved, amongst other things.
We first try to get the information from SMBIOS. If we don't find it
there, we have to read from arbitrary I/O ports to probe for such
interfaces. This is normally safe. Do you want to scan for IPMI
interfaces? (YES/no): YES
Probing for `IPMI BMC KCS' at 0xca0...                      No
Probing for `IPMI BMC SMIC' at 0xca8...                     No

Some hardware monitoring chips are accessible through the ISA I/O ports.
We have to write to arbitrary I/O ports to probe them. This is usually
safe though. Yes, you do have ISA I/O ports even if you do not have any
ISA slots! Do you want to scan the ISA I/O ports? (yes/NO): yes
Probing for `National Semiconductor LM78' at 0x290...       No
Probing for `National Semiconductor LM79' at 0x290...       No
Probing for `Winbond W83781D' at 0x290...                   No
Probing for `Winbond W83782D' at 0x290...                   No

Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no): YES
Using driver `i2c-piix4' for device 0000:00:14.0: AMD KERNCZ SMBus

Next adapter: AMDGPU DM i2c hw bus 0 (i2c-0)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: AMDGPU DM i2c hw bus 1 (i2c-1)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: AMDGPU DM i2c hw bus 2 (i2c-2)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: AMDGPU DM i2c hw bus 3 (i2c-3)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: AMDGPU DM i2c hw bus 4 (i2c-4)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: AMDGPU DM aux hw bus 0 (i2c-5)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: AMDGPU DM aux hw bus 1 (i2c-6)
Do you want to scan it? (yes/NO/selectively): yes
Client found at address 0x4a
Probing for `National Semiconductor LM75'...                No
Probing for `National Semiconductor LM75A'...               No
Probing for `Dallas Semiconductor DS75'...                  No
Probing for `National Semiconductor LM77'...                No
Probing for `Analog Devices ADT7410/ADT7420'...             No
Probing for `Analog Devices ADT7411'...                     No
Probing for `Maxim MAX6642'...                              No
Probing for `Texas Instruments TMP435'...                   No
Probing for `National Semiconductor LM73'...                No
Probing for `National Semiconductor LM92'...                No
Probing for `National Semiconductor LM76'...                No
Probing for `Maxim MAX6633/MAX6634/MAX6635'...              No
Probing for `NXP/Philips SA56004'...                        No
Client found at address 0x4b
Probing for `National Semiconductor LM75'...                No
Probing for `National Semiconductor LM75A'...               No
Probing for `Dallas Semiconductor DS75'...                  No
Probing for `National Semiconductor LM77'...                No
Probing for `Analog Devices ADT7410/ADT7420'...             No
Probing for `Analog Devices ADT7411'...                     No
Probing for `Maxim MAX6642'...                              No
Probing for `Texas Instruments TMP435'...                   No
Probing for `National Semiconductor LM92'...                No
Probing for `National Semiconductor LM76'...                No
Probing for `Maxim MAX6633/MAX6634/MAX6635'...              No
Probing for `NXP/Philips SA56004'...                        No
Probing for `Analog Devices ADT7481'...                     No

Next adapter: AMDGPU DM aux hw bus 2 (i2c-7)
Do you want to scan it? (yes/NO/selectively): yes


Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `it87':
  * ISA bus, address 0xa60
    Chip `ITE IT8792E Super IO Sensors' (confidence: 9)

Driver `k10temp' (autoloaded):
  * Chip `AMD Family 17h thermal sensors' (confidence: 9)

Driver `to-be-written':
  * ISA bus, address 0xa40
    Chip `ITE IT8686E Super IO Sensors' (confidence: 9)

Note: there is no driver for ITE IT8686E Super IO Sensors yet.
Check https://hwmon.wiki.kernel.org/device_support_status for updates.

Do you want to generate /etc/conf.d/lm_sensors? (YES/no): YES
Created symlink /etc/systemd/system/multi-user.target.wants/lm_sensors.service → /usr/lib/systemd/system/lm_sensors.service.

I run the command and rebooted the pc, doesn’t work still.
Also I tried to launch the system monitor as root and creating a senson in a page and it still wont update.
I just noticed that lscpu doens’t mention the CPU speed anywhere.

No, never do that.

The sensors you added may be wrong you didn’t say anything about that. Regarding your sensors name I’m pretty positive you added the wrong sensors. Add the CURRENT frequency sensors for each core, if this is what you’re after.

That is exactly what I have added:
I choose Bar graph
update interval 1 sec
Sensor: CPU > Core 1 > Core 1 current frequency (MHz)
and so on for the 12 threads

If I export the page this is what I read in the .page file about that graph

[Face-94661642453408][Sensors]
highPrioritySensorIds=["cpu/cpu0/frequency","cpu/cpu1/frequency","cpu/cpu2/frequency","cpu/cpu3/frequency","cpu/cpu4/frequency","cpu/cpu5/frequency","cpu/cpu6/frequency","cpu/cpu7/frequency","cpu/cpu8/frequency","cpu/cpu9/frequency","cpu/cpu10/frequency","cpu/cpu11/frequency"]
lowPrioritySensorIds=["cpu/all/maximumFrequency","cpu/all/minimumFrequency"]

I tried every sensor per core

What happens if you only add one sensor of type “current CPU frequency”? Does it update?

I just created a new page and added in all the fileds Core 1 current frequency and it does not update.
This is the page:

[Face-94209565709392][Appearance]
chartFace=org.kde.ksysguard.piechart

[Face-94209565709392][SensorColors]
cpu/cpu0/frequency=82,144,226

[Face-94209565709392][Sensors]
highPrioritySensorIds=["cpu/cpu0/frequency"]
lowPrioritySensorIds=["cpu/cpu0/frequency"]
totalSensors=["cpu/cpu0/frequency"]

[page]
Title=test
icon=ksysguardd
loadType=
margin=2

[page][row-0]
Title=
heightMode=balanced
isTitle=false
name=row-0

[page][row-0][column-0]
name=column-0
noMargins=
showBackground=true

[page][row-0][column-0][section-0]
face=Face-94209565709392
isSeparator=false
name=section-0

Out of curiosity I booted the live USB again but this time in English just to check the translation and indeed it is correct, it says “current” so it should be updated in real time like ksysguard did. Also I confirm it does not update in the live neither.

I don’t have that when I create the same page.

Does the frequency actually change?

Do all the sensors act the same and don’t update too?

I opened and closed the program a few times it always gives around 3.4 or 3.3GHz, a couple of times it said 2.9 for some core but after that it does not update.

What does it say in your .page file?

I tested with intel CPU and sensors work fine. So maybe a driver problem.

Back up your system, then install it87 driver from AUR and reboot.
yay -S it87-dkms-git

If it doesn’t work, report your bug to:
https://github.com/lm-sensors/lm-sensors/issues
and
https://bugs.kde.org/enter_bug.cgi

I can’t risk my system right now; I can’t use timeshift because I don’t have a btrf partition to backup on, I’m living on the edge :smiling_face_with_tear:
I’ve downloaded the lates kde neon user iso with plasma 6 and booted it live: no sensors.
I’ve booted manjaro 23 live and sensors work fine as they worked before the update to plasma 6.
I also tried kernel 6.6 IIRC and the issue persists.

I tried to search on pamac for it87-dkms-git to see what it was and found no matches (AUR support is enabled). >> it shows now, don’t know why

I use pamac to update, I used yay just now and found a ■■■■ ton of stuff to update while pamac found nothing.
I think I’m in need of a clean install but as I said I can’t do it right now and it seems plasma 6 doesn’t go well with this system so it makes no sense to clean install manjaro 24. I’m staying like this for now.

I’m still toying with this, I have installed GtkStressTesting (which has lm_sensors as dependency) from the AUR and it can read the cpu clock so I don’t think it’s a driver issue at this point.

Can you test with CPU widget and see if it works?

Screenshot_20240522_204542

Screenshot_20240522_204854


It doesn’t, on the left it’s gtkstresstest which works.

I’m back.
After a lot of searching and thinkering from a dead end to another dead end I figured my pc wasn’t loading any cpufreq driver nor it “had” a cpu governor (I got this info from Mission Center (compiled from aur) and

cpupower frequency-info

confirmed it.

After this I found a 6 years old reddit thread in which someone suggested to enable AMD cool & quiet because otherwise cpupower won’t load drivers. It worked before with it disabled, I don’t know why. I’ve enabled cool&quiet and now the graph update, I don’t know if there will be performance differences now. I’ve edited /etc/default/cpupower to performance even tho it should not matter.

So the issue is not with plasma-systemmonitor.