Closed maravento closed 1 year ago
Confirmed on Debian 11 with mate-sensors-applet 1.24.1-1. It does not show the temperature of my NVME SSD. My device has only one NVME disk, so I proceed with the following. I found the following workaround - I have added Command applet to MATE Panel and placed the following command
bash -c "inxi -xD -c0 | grep 'temp.*' --only-matching | tail -n1 | sed 's/temp:/🖴/' | sed 's/C/°C/'"
into Command field. Note: inxi
3.3.26 from bullseye-backports is needed to avoid sudo.
If the problem is in libatasmart there's nothing we can do about it here. That said, the issue report at https://github.com/Rupan/libatasmart/pull/9 says it could fix this and similar problems in several other packages
If the problem is in libatasmart there's nothing we can do about it here. That said, the issue report at Rupan/libatasmart#9 says it could fix this and similar problems in several other packages
I don't think so. this problem has been unresolved for years. was reported on 2016-05-13 with no solution until today https://bugs.launchpad.net/ubuntu/+source/libatasmart/+bug/1581594
If they won't fix it, we cannot fix it for them unless someone want to reimplement their work or find a way to bypass it. I don't know enough about reading the sensors to implement such a workaround myself. Looks like libatasmart in turn is choking on a problem in udisks2.
Anyone able to code a fix should submit it as a PR to libatasmart instead of waiting for them to fix it. As a DE with a small team, we don't have the peoplepower to fork things like libatasmart much less udisks2 over this.
I get these errors in the output of running sensors
, no idea what the actual temperature of that device sitting at idle is. Wonder if libatasmart is erroring out on not being able to see that minimum temperature rather than ignoring it and moving on?
nvme-pci-0100 Adapter: PCI adapter ERROR: Can't get value of subfeature temp1_min: I/O error Composite: +47.9°C (low = +0.0°C, high = +99.8°C) (crit = +119.8°C) ERROR: Can't get value of subfeature temp2_min: I/O error Sensor 1: +47.9°C (low = +0.0°C, high = +65261.8°C)
libatasmart
check this alternative https://github.com/storaged-project/udisks/issues/433
If we talk about inxi -Dx
(version 3.3.01-1-1) - it uses nvme smart-log /dev/nvme0n1
under the hood to get disk info (including its temperature). Another way to get NVME temperature is smartctl -a /dev/nvme0n1
.
So actually mate-sensors-applet may need new plugin for NVME.
I have also reported https://github.com/storaged-project/udisks/issues/1163 to udisks2 about temperature of NVME drives. Udisks2 does not read temperature of NVME drive, so it seems that udisks2-plugin.c of mate-sensors-applet works correctly (there is no data = nothing to show).
Update 20230806: the above bug in Udisks is already fixed and updated udisks is available in Debian trixie/sid, it shows temperature for NVME drives by udisksctl
.
I have digged a bit deeper and now I see the following on my Debian 11:
NVME temperature(s) may be obtained from libsensors plugin.
For example the below output from lm-sensors
:
$ sensors iwlwifi_1-virtual-0 Adapter: Virtual device temp1: +30.0°C nvme-pci-0100 Adapter: PCI adapter Composite: +28.9°C (low = -273.1°C, high = +81.8°C) (crit = +84.8°C) Sensor 1: +28.9°C (low = -273.1°C, high = +65261.8°C) Sensor 2: +29.9°C (low = -273.1°C, high = +65261.8°C) acpitz-acpi-0 Adapter: ACPI interface temp1: +35.0°C (crit = +100.0°C) coretemp-isa-0000 Adapter: ISA adapter Package id 0: +32.0°C (high = +100.0°C, crit = +100.0°C) Core 0: +30.0°C (high = +100.0°C, crit = +100.0°C) Core 1: +32.0°C (high = +100.0°C, crit = +100.0°C) Core 2: +30.0°C (high = +100.0°C, crit = +100.0°C) Core 3: +31.0°C (high = +100.0°C, crit = +100.0°C) BAT1-acpi-0 Adapter: ACPI interface in0: 11.02 V curr1: 799.00 mA
means that user can view NVME temperature as Composite without any additional coding and so on:
I see this behavior on one modern 11th intel laptop and two desktops (11th intel and AMD Ryzen 5700G).
Great. I guess since these values are constantly changing and the refresh rate of "composite" is not every second, I think your solution works.
But this solution only applies to NVMe SSDs (not SATA SSDs). That's why I have to use this script, so that it alerts if the temperature rises above the value that I set (variable degrees=50) (program it in cron). Tested in Ubuntu 22.04
https://raw.githubusercontent.com/maravento/vault/master/scripts/bash/disktemp.sh
No idea what composite means. I think sensor 1 or 2 are valid and i use sensor 2 for displaying the temp in sensor-applet. Can we close the issue?
Btw. sata disk temps are displayed with udisk2 in applet since more than many years.
No idea what composite means. I think sensor 1 or 2 are valid and i use sensor 2 for displaying the temp in sensor-applet. Can we close the issue?
Composite means kind of average of multiple sensors on the drive, if any. UDisks provides this value as the primary org.freedesktop.UDisks2.NVMe.Controller.SmartTemperature
property: http://storaged.org/doc/udisks2-api/latest/gdbus-org.freedesktop.UDisks2.NVMe.Controller.html#gdbus-property-org-freedesktop-UDisks2-NVMe-Controller.SmartTemperature
Btw. sata disk temps are displayed with udisk2 in applet since more than many years.
And that is precisely why this issue is still open. Because the value provided by udisk2 does not correspond to reality and is always 98% or 100% with sata ssd.
Btw. sata disk temps are displayed with udisk2 in applet since more than many years.
And that is precisely why this issue is still open. Because the value provided by udisk2 does not correspond to reality and is always 98% or 100% with sata ssd.
That's https://github.com/storaged-project/udisks/issues/568 on a short-term TODO list.
another bug reported in 2018 and we are in 2023 with no solution...
PS: If I knew what the solution is, I would have already pushed a pull request, but unfortunately I don't know how to fix it. That's why I posted a workaround bash script https://github.com/mate-desktop/mate-sensors-applet/issues/129#issuecomment-1666912045
Btw. sata disk temps are displayed with udisk2 in applet since more than many years.
And that is precisely why this issue is still open. Because the value provided by udisk2 does not correspond to reality and is always 98% or 100% with sata ssd.
Hmm,
Doesn't show ssd nvme (udisk2) temperature sensor
and not someting with sata disk.So, it seems it is hardware specific. Also sensor-applet is only a frontend for udisk2 or libsensors. IHMO it is an issue with udisk if your disk displays 100% temp
another bug reported in 2018 and we are in 2023 with no solution...
That falls under the "Feel free to open a pull request" category since 2019: https://github.com/storaged-project/udisks/issues/433#issuecomment-546247509
So, it seems it is hardware specific. Also sensor-applet is only a frontend for udisk2 or libsensors. IHMO it is an issue with udisk if your disk displays 100% temp
Agree, the SATA SSD temperature will be fixed in UDisks and requires no change in mate-sensors-applet
. The NVMe stuff is a new interface with slightly different value representation however.
At least, as N0rbert says in https://github.com/mate-desktop/mate-sensors-applet/issues/129#issuecomment-1666867394. This is a great advance.
good, closing.
This has been fixed in an independent fork of the original lib that it is not currently recognized as official upstream by maintainers at https://github.com/libatasmart/libatasmart.
Expected behaviour
Actual behaviour
Doesn't show ssd nvme pcie m.2 (udisk2) temperature sensor
On another computer with Ubuntu Mate 22.04.1 and sata3 ssd disk
these data of the temperature of a SATA SSD are incorrect. it says 100 degrees celsius all time, and crystaldiskinfo (win) and hddtemp, inxi (linux) says 24°C.
Related link: https://bugs.launchpad.net/ubuntu/+source/libatasmart/+bug/1581594
MATE general version
1.26.0
Linux Distribution
Ubuntu Mate 22.04.1