Solved Linux is making my ssd really hot compared to windows, making my bios saying S.M.A.R.T status is bad when using linux long enough

Solved issue
if you complete the last post of mine that should fix interrupts coming from the Motherboard......so any distro should simply run without any commands being run
 


Linux made my SSD run hot...now that's funny.
1737113969533.gif


My SSD running Linux Mint is 23c right now.
1737114259408.gif


Might want to look at these...
https://www.techtarget.com/searchstorage/post/Understand-SSD-overheating-and-what-to-do-about-it
https://www.partitionwizard.com/news/can-ssd-overheat.html

1737115075960.gif
 
if you complete the last post of mine that should fix interrupts coming from the Motherboard......so any distro should simply run without any commands being run
Weirdly on endeavour os, I don't see the same result when I was on mint though.

/sys/firmware/acpi/interrupts/gpe6E: 17 STS disabled unmasked

I disabled it like you told me to, the temp is still high :(

I also put

@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe6E
in sudo crontab -e

1737187142986.png


1737187195727.png


@Condobloke, any idea why?
 
Wait I did see that nvme0n1 and nvme1n1 is swapped in endeavour os, is that a problem?

This happens frequently, sometimes it even happens on different reboots on the same distro you've been using for a long time.
It generally doesn't hurt anything. Device paths change. This is why we try to use UUIDs and Labels instead of device paths in shell scripts and especially in our /etc/fstab.
 
Last edited:
Did you run:

grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1

on endeavour ?

was the result....

/sys/firmware/acpi/interrupts/gpe6F: 4283388 STS enabled unmasked

or similar?.....maybe gpe6E ...on yours

?

When you ran the fix to make it permanent, are you sure it 'saved'.....this is important, because if it did not save successfully, the initial fix will come undone at reboot

So, from the beginning:

grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1

the above will tell you which 'interrupt' is responsible for keeping the cpu running and the temp rising as a result. In your case it was gpe6E

then:
sudo echo disable > /sys/firmware/acpi/interrupts/gpe6E ....(this disables that interrupt)
Then;

# crontab -e
This opens your favourite editor. Add these lines:

@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe6E
That MUST be saved...otherwise the interrupt will stay alive and continue doing what it does.

Save and Exit in nano editor:
 
Last edited:
Did you run:

grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1

on endeavour ?

was the result....

/sys/firmware/acpi/interrupts/gpe6F: 4283388 STS enabled unmasked

or similar?.....maybe gpe6E ...on yours

?

When you ran the fix to make it permanent, are you sure it 'saved'.....this is important, because if it did not save successfully, the initial fix will come undone at reboot

So, from the beginning:

grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1

the above will tell you which 'interrupt' is responsible for keeping the cpu running and the temp rising as a result. In your case it was gpe6E

then:
sudo echo disable > /sys/firmware/acpi/interrupts/gpe6E ....(this disables that interrupt)
Then;

# crontab -e
This opens your favourite editor. Add these lines:

@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe6E
That MUST be saved...otherwise the interrupt will stay alive and continue doing what it does.

Save and Exit in nano editor:
Yes I did all of that, I will try again and give you the full image of me doing it so that if I did something wrong, you would know about it

1737245147144.png

1737245174682.png



I did all that, still it's still really hot, weird.
 
2025-01-19_12-24.png


Something is not right....I am unsure why......perhaps @osprey would take a look for us

also....the last command where you access ....

Code:
 crontab -e

When i type that in I get the below...

1737250322170.png
 
Something is not right....I am unsure why......perhaps @osprey would take a look for us
In relation to the "Invalid argument" output mentioned in posts #67 and #68, the latest syntax looks to be (as root):
Code:
echo mask > /sys/firmware/acpi/interrupts/gpe6E
Perhaps try that and see if the "Invalid argument" is absent, which hopefully indicates the masking or neutralising of the offending interrupt.
 
@hoanghieubrant ......leave this for later after you have tried @osprey's suggestion above

Do you have a nvidia graphics card?
If yes, try disabling 'shader cache' in it.
 
In relation to the "Invalid argument" output mentioned in posts #67 and #68, the latest syntax looks to be (as root):
Code:
echo mask > /sys/firmware/acpi/interrupts/gpe6E
Perhaps try that and see if the "Invalid argument" is absent, which hopefully indicates the masking or neutralising of the offending interrupt.
The reason it has the error is that I already disabled it, so when I want to show it to you guys, I have to enable it first then disable it again, thus why down there I echo enable then the next line I run disable.
 
View attachment 23694

Something is not right....I am unsure why......perhaps @osprey would take a look for us

also....the last command where you access ....

Code:
 crontab -e

When i type that in I get the below...

View attachment 23695
the crontab -e seems still working even though mine looks different to you, since when I restarted the computer, it already made the interrupts disabled
1737257303357.png
 
@hoanghieubrant ......leave this for later after you have tried @osprey's suggestion above

Do you have a nvidia graphics card?
If yes, try disabling 'shader cache' in it.
How to disable shader cache though? like when I searched online, it's all about steam shader cache, and right now I don't have steam installed, so I don't know how to do it though.

but correct at one point, on linux mint I didn't install nvidia, on EOS then yes I did install nvidia. Do I need to uninstall nvidia drivers to test it out?
 
I think shader cache may be in the nvidia software.settings?......I dont have a graphics card, so that could be bs
Uninstalling the drivers or is it possible to disable the graphics card in any way ?...again, no card here so I am a bit clueless in that regard
If all else fails, yes, uninstall the drivers
 
How to disable shader cache though? like when I searched online, it's all about steam shader cache, and right now I don't have steam installed, so I don't know how to do it though.

but correct at one point, on linux mint I didn't install nvidia, on EOS then yes I did install nvidia. Do I need to uninstall nvidia drivers to test it out?
shader cache is application specific data, you should be able to find them in subdirectory created by game somewhere in your home directory.
or for steam maybe in steamapps directory.
shader cache does not belong to drivers or driver specific folders IMO.
 
I think shader cache may be in the nvidia software.settings?......I dont have a graphics card, so that could be bs
Uninstalling the drivers or is it possible to disable the graphics card in any way ?...again, no card here so I am a bit clueless in that regard
If all else fails, yes, uninstall the drivers

Uninstall the nvidia driver doesn't fix it :( man this sucks. now I'm again stuck.
 
Okay, I'm back :D I have fixed the problems, I never thought I would be able to use linux again on this laptop, until I asked chatGPT lmao. so this is what I did, maybe I lose a couple steps because I really don't know what I did all, but based on my chatgpt conversations, I will just show you how to make it not hot, this is the result:
Code:
[hoanghieufro@linux ~]$ sensors
mt7921_phy0-pci-2d00
Adapter: PCI adapter
temp1:        +54.0°C 

asus-isa-000a
Adapter: ISA adapter
cpu_fan:     2800 RPM
gpu_fan:     2800 RPM
pwm1:             N/A
pwm2:             N/A

nvme-pci-e200
Adapter: PCI adapter
Composite:    +45.9°C  (low  = -273.1°C, high = +59.9°C)
                       (crit = +64.8°C)
Sensor 1:     +74.8°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +60.9°C  (low  = -273.1°C, high = +65261.8°C)
ERROR: Can't get value of subfeature temp4_min: I/O error
ERROR: Can't get value of subfeature temp4_max: I/O error
Sensor 3:     +60.9°C  (low  =  +0.0°C, high =  +0.0°C)

BAT1-acpi-0
Adapter: ACPI interface
in0:          12.48 V 
curr1:         0.00 A 

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +63.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +59.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +62.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +62.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +63.0°C  (high = +100.0°C, crit = +100.0°C)
Core 4:        +59.0°C  (high = +100.0°C, crit = +100.0°C)
Core 5:        +63.0°C  (high = +100.0°C, crit = +100.0°C)

nvme-pci-e100
Adapter: PCI adapter
Composite:    +45.9°C  (low  =  -0.1°C, high = +86.8°C)
                       (crit = +89.8°C)
Sensor 1:     +45.9°C  (low  = -273.1°C, high = +65261.8°C)

ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
in0:           0.00 V  (min =  +0.00 V, max =  +0.00 V)
curr1:         0.00 A  (max =  +0.00 A)

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +64.0°C 
temp2:        +27.8°C

First of all, still change the interrupts like others had helped me (Thanks a lot you guys, I still really appreciated it )

Code:
 grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1

Run this to see your number of gpe, mine is gpe06:

Code:
[hoanghieufro@linux ~]$  grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1
/sys/firmware/acpi/interrupts/gpe6E:      57     STS disabled     unmasked

then write this is your crontab, I just use system-d to run a script to automatically run when it boots up, but you for this example, you can just use crontab -e (maybe best to use sudo)
Code:
@reboot /bin/bash -c 'echo disable > /sys/firmware/acpi/interrupts/gpe6E'

then restart and check the above command (the start with grep -Ev...) to see if it's already disabled, if not then please just create a service.

Then add these parameters in this file /etc/default/grub in GRUB_CMDLINE_LINUX_DEFAULT:
pcie_aspm=force nvme.noacpi=1 nvme_core.default_ps_max_latency_us=200


and that's all I did, the temps now never rises to 50 degrees, sometimes, with my normal use, idle use, it's only around 35 degrees :)

Again, thanks all people that has helped me, I don't think I would be able to fix this problem without you guys helps.
 


Follow Linux.org

Members online


Top