Laptop overheating on Firefox

Hi, I have an MSI Optimus laptop with latest NVIDIA Drivers and OS version. When I start watching videos on Firefox, the GPU starts overheating and the fans start spinning faster. Is this because of non-working HW acceleration or something else? I also feel like when in fullscreen the temperature goes down and the fans slow down too

Use Powertop :wink:

Overheating is always due to inadequate cooling - a hardware issue. Your fan should be spinning up as much as it can. In some cases, cleaning dust from the fans may help.

I know, but why on Windows, when doing the exact same thing (following online classes) it doesn’t overheat? The only answer I can imagine is because of HW acceleration… But then why isn’t it available in CL?

Well. Aside from cleaning dust, another option is laptop cooling pad, with fans or made from phase changing materials.

Microsoft can ship things like patented codecs, ClearLinux can not. This could be a factor.

You can check https://support.mozilla.org/en-US/kb/performance-settings

I’m not sure if the option is available in the Clear Linux bundled Firefox, i use the Flatpak.

Yeah I guess that could be the reason… Maybe YouTube codecs are proprietary…

Just to give a bit more context:

Maybe this helps: https://askubuntu.com/a/566522

Thanks a lot! I think we are getting closer to the solution, I used to fix symlinks with swupd repair after installing NVIDIA drivers, but now I use this fix, so I’m still not sure what I should do:

I’ve updated my script last month and incorporated these workarounds.

Yep, I’ve been using them… IDK why I get that error then… With the debug environment variable set, as said in the answer linked by @spktkpkt, I now get a more detailed output:

libGL: screen 0 does not appear to be DRI2 capable
libGL: MESA-LOADER: dlopen(/usr/lib64/dri/swrast_dri.so.avx2)
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL: screen 0 does not appear to be DRI2 capable
libGL: MESA-LOADER: dlopen(/usr/lib64/dri/swrast_dri.so.avx2)
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL: screen 0 does not appear to be DRI2 capable
libGL: MESA-LOADER: dlopen(/usr/lib64/dri/swrast_dri.so.avx2)
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL: screen 0 does not appear to be DRI2 capable
libGL: MESA-LOADER: dlopen(/usr/lib64/dri/swrast_dri.so.avx2)
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
[GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT
libGL: screen 0 does not appear to be DRI2 capable
libGL: MESA-LOADER: dlopen(/usr/lib64/dri/swrast_dri.so.avx2)
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL: Can't open configuration file /etc/drirc: File o directory non esistente.
libGL: Can't open configuration file /home/stefano/.drirc: File o directory non esistente.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
[GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT

I’m not really sure how to help you, but can you do a sudo find / -iname *libgl.so* to identify if there are more then one on your system. If so, try to preload the one matching your GFX driver, like: LD_PRELOAD=/usr/lib64/libGL.so firefox

I think “ldconifg -p” is a better alternative. It only shows those loaded.


@SPAstef
One possibility is, since the tutorial has been updated for several times, and there were different ways of dealing with that opengl problem. You may even employed your own workarounds before.

Can you post the contents of your “/etc/ld.so.conf” and anything included by it?
Also those “LD*” environment variables.

Ok here are the outputs, first one for @spktkpkt:

stefano@MSICL~ $ sudo find /usr/ -iname *libgl.so*
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib64/libGL.so
/usr/lib64/libGL.so.1
/usr/lib64/libGL.so.1.2.0
/usr/lib32/libGL.so
/usr/lib32/libGL.so.1
/usr/lib32/libGL.so.1.2.0
stefano@MSICL~ $ sudo find /opt/ -iname *libgl.so*
/opt/nvidia/lib/libGL.so.1.7.0
/opt/nvidia/lib/libGL.so
/opt/nvidia/lib/libGL.so.1
/opt/nvidia/lib32/libGL.so.1.7.0
/opt/nvidia/lib32/libGL.so
/opt/nvidia/lib32/libGL.so.1

And this for @doct0rHu:

 stefano@MSICL~ $ ldconfig -p | grep gl
	libxcb-glx.so.0 (libc6,x86-64) => /usr/lib64/libxcb-glx.so.0
	libxcb-glx.so.0 (libc6) => /usr/lib32/libxcb-glx.so.0
	libwayland-egl.so.1 (libc6,x86-64) => /usr/lib64/libwayland-egl.so.1
	libwayland-egl.so.1 (libc6) => /usr/lib32/libwayland-egl.so.1
	libwayland-egl.so (libc6,x86-64) => /usr/lib64/libwayland-egl.so
	libwayland-egl.so (libc6) => /usr/lib32/libwayland-egl.so
	libva-glx.so.2 (libc6,x86-64) => /usr/lib64/libva-glx.so.2
	libva-glx.so.2 (libc6) => /usr/lib32/libva-glx.so.2
	libva-glx.so.1 (libc6,x86-64) => /usr/lib64/libva-glx.so.1
	libva-glx.so.1 (libc6) => /usr/lib32/libva-glx.so.1
	libva-glx.so (libc6,x86-64) => /usr/lib64/libva-glx.so
	libva-egl.so.1 (libc6,x86-64) => /usr/lib64/libva-egl.so.1
	libva-egl.so.1 (libc6) => /usr/lib32/libva-egl.so.1
	libupower-glib.so.3 (libc6,x86-64) => /usr/lib64/libupower-glib.so.3
	libqmi-glib.so.5 (libc6,x86-64) => /usr/lib64/libqmi-glib.so.5
	libpulse-mainloop-glib.so.0 (libc6,x86-64) => /usr/lib64/libpulse-mainloop-glib.so.0
	libpulse-mainloop-glib.so.0 (libc6) => /usr/lib32/libpulse-mainloop-glib.so.0
	libpulse-mainloop-glib.so (libc6,x86-64) => /usr/lib64/libpulse-mainloop-glib.so
	libpulse-mainloop-glib.so (libc6) => /usr/lib32/libpulse-mainloop-glib.so
	libpoppler-glib.so.8 (libc6,x86-64, hwcap: 0x0004000000000000) => /usr/lib64/haswell/libpoppler-glib.so.8
	libpoppler-glib.so.8 (libc6,x86-64) => /usr/lib64/libpoppler-glib.so.8
	libpackagekit-glib2.so.18 (libc6,x86-64) => /usr/lib64/libpackagekit-glib2.so.18
	libobsglad.so.0 (libc6,x86-64) => /usr/lib64/libobsglad.so.0
	libobsglad.so (libc6,x86-64) => /usr/lib64/libobsglad.so
	libobs-opengl.so.0 (libc6,x86-64) => /usr/lib64/libobs-opengl.so.0
	libobs-opengl.so (libc6,x86-64) => /usr/lib64/libobs-opengl.so
	libnvidia-glvkspirv.so.440.82 (libc6,x86-64) => /opt/nvidia/lib/libnvidia-glvkspirv.so.440.82
	libnvidia-glvkspirv.so.440.82 (libc6) => /opt/nvidia/lib32/libnvidia-glvkspirv.so.440.82
	libnvidia-glsi.so.440.82 (libc6,x86-64) => /opt/nvidia/lib/libnvidia-glsi.so.440.82
	libnvidia-glsi.so.440.82 (libc6) => /opt/nvidia/lib32/libnvidia-glsi.so.440.82
	libnvidia-glcore.so.440.82 (libc6,x86-64) => /opt/nvidia/lib/libnvidia-glcore.so.440.82
	libnvidia-glcore.so.440.82 (libc6) => /opt/nvidia/lib32/libnvidia-glcore.so.440.82
	libnvidia-eglcore.so.440.82 (libc6,x86-64) => /opt/nvidia/lib/libnvidia-eglcore.so.440.82
	libnvidia-eglcore.so.440.82 (libc6) => /opt/nvidia/lib32/libnvidia-eglcore.so.440.82
	libnvidia-egl-wayland.so.1 (libc6,x86-64) => /opt/nvidia/lib/libnvidia-egl-wayland.so.1
	libmm-glib.so.0 (libc6,x86-64) => /usr/lib64/libmm-glib.so.0
	libmm-glib.so.0 (libc6) => /usr/lib32/libmm-glib.so.0
	libmbim-glib.so.4 (libc6,x86-64) => /usr/lib64/libmbim-glib.so.4
	libjson-glib-1.0.so.0 (libc6,x86-64) => /usr/lib64/libjson-glib-1.0.so.0
	libjson-glib-1.0.so.0 (libc6) => /usr/lib32/libjson-glib-1.0.so.0
	libjson-glib-1.0.so (libc6,x86-64) => /usr/lib64/libjson-glib-1.0.so
	libjson-glib-1.0.so (libc6) => /usr/lib32/libjson-glib-1.0.so
	libical-glib.so.3 (libc6,x86-64) => /usr/lib64/libical-glib.so.3
	libical-glib.so (libc6,x86-64) => /usr/lib64/libical-glib.so
	libgstgl-1.0.so.0 (libc6,x86-64) => /usr/lib64/libgstgl-1.0.so.0
	libgstgl-1.0.so (libc6,x86-64) => /usr/lib64/libgstgl-1.0.so
	libglut.so.3 (libc6,x86-64) => /usr/lib64/libglut.so.3
	libglut.so (libc6,x86-64) => /usr/lib64/libglut.so
	libglslang.so (libc6,x86-64) => /usr/lib64/libglslang.so
	libglslang-default-resource-limits.so (libc6,x86-64) => /usr/lib64/libglslang-default-resource-limits.so
	libglibmm_generate_extra_defs-2.4.so.1 (libc6,x86-64) => /usr/lib64/libglibmm_generate_extra_defs-2.4.so.1
	libglibmm-2.4.so.1 (libc6,x86-64) => /usr/lib64/libglibmm-2.4.so.1
	libglib-2.0.so.0 (libc6,x86-64) => /usr/lib64/libglib-2.0.so.0
	libglib-2.0.so.0 (libc6) => /usr/lib32/libglib-2.0.so.0
	libglib-2.0.so (libc6,x86-64) => /usr/lib64/libglib-2.0.so
	libglib-2.0.so (libc6) => /usr/lib32/libglib-2.0.so
	libglapi.so.0 (libc6,x86-64) => /usr/lib64/libglapi.so.0
	libglapi.so.0 (libc6) => /usr/lib32/libglapi.so.0
	libglapi.so (libc6,x86-64) => /usr/lib64/libglapi.so
	libglapi.so (libc6) => /usr/lib32/libglapi.so
	libglade-2.0.so.0 (libc6,x86-64) => /usr/lib64/libglade-2.0.so.0
	libgeocode-glib.so.0 (libc6,x86-64) => /usr/lib64/libgeocode-glib.so.0
	libgegl-0.4.so.0 (libc6,x86-64) => /usr/lib64/libgegl-0.4.so.0
	libgegl-0.4.so (libc6,x86-64) => /usr/lib64/libgegl-0.4.so
	libgegl-sc-0.4.so (libc6,x86-64) => /usr/lib64/libgegl-sc-0.4.so
	libgegl-npd-0.4.so (libc6,x86-64) => /usr/lib64/libgegl-npd-0.4.so
	libfltk_gl.so.1.3 (libc6,x86-64) => /usr/lib64/libfltk_gl.so.1.3
	libdbusmenu-glib.so.4 (libc6,x86-64) => /usr/lib64/libdbusmenu-glib.so.4
	libdbus-glib-1.so.2 (libc6,x86-64) => /usr/lib64/libdbus-glib-1.so.2
	libdbus-glib-1.so.2 (libc6) => /usr/lib32/libdbus-glib-1.so.2
	libcogl.so.20 (libc6,x86-64) => /usr/lib64/libcogl.so.20
	libcogl.so (libc6,x86-64) => /usr/lib64/libcogl.so
	libcogl-path.so.20 (libc6,x86-64) => /usr/lib64/libcogl-path.so.20
	libcogl-path.so (libc6,x86-64) => /usr/lib64/libcogl-path.so
	libcogl-pango.so.20 (libc6,x86-64) => /usr/lib64/libcogl-pango.so.20
	libcogl-pango.so (libc6,x86-64) => /usr/lib64/libcogl-pango.so
	libcogl-gles2.so.20 (libc6,x86-64) => /usr/lib64/libcogl-gles2.so.20
	libcogl-gles2.so (libc6,x86-64) => /usr/lib64/libcogl-gles2.so
	libclangTidyGoogleModule.so.10 (libc6,x86-64) => /usr/lib64/libclangTidyGoogleModule.so.10
	libclangTidyGoogleModule.so (libc6,x86-64) => /usr/lib64/libclangTidyGoogleModule.so
	libappstream-glib.so.8 (libc6,x86-64) => /usr/lib64/libappstream-glib.so.8
	libQt5EglFsKmsSupport.so.5 (libc6,x86-64, hwcap: 0x0004000000000000) => /usr/lib64/haswell/libQt5EglFsKmsSupport.so.5
	libQt5EglFsKmsSupport.so.5 (libc6,x86-64) => /usr/lib64/libQt5EglFsKmsSupport.so.5
	libQt5EglFsKmsSupport.so (libc6,x86-64, hwcap: 0x0004000000000000) => /usr/lib64/haswell/libQt5EglFsKmsSupport.so
	libQt5EglFsKmsSupport.so (libc6,x86-64) => /usr/lib64/libQt5EglFsKmsSupport.so
	libQt5EglFSDeviceIntegration.so.5 (libc6,x86-64, hwcap: 0x0004000000000000) => /usr/lib64/haswell/libQt5EglFSDeviceIntegration.so.5
	libQt5EglFSDeviceIntegration.so.5 (libc6,x86-64) => /usr/lib64/libQt5EglFSDeviceIntegration.so.5
	libQt5EglFSDeviceIntegration.so (libc6,x86-64, hwcap: 0x0004000000000000) => /usr/lib64/haswell/libQt5EglFSDeviceIntegration.so
	libQt5EglFSDeviceIntegration.so (libc6,x86-64) => /usr/lib64/libQt5EglFSDeviceIntegration.so
stefano@MSICL~ $

When I use LD_PRELOAD=/opt/nvidia/lib/libGL.so firefox I don’t get any errors, and everything seems to be working and running in about:support, though I still get these messages:
image