My MacBook Pro has high temp issues running Nouveau driver

Hii everybody!! :grinning:
My old 2009 MacBook Pro 13 has a Nvidia Geforce 9400M graphics card, it runs the 340xx driver. I know that its support will end sooner than later, then I will only have the option to go with Nouveau if I still want to use Linux.

The problem is that with Nouveau the laptop's temperature is 10 or 15 degrees hotter than the propietary drivers. An example of what I say, the first screenshot is with Nvidia-340xx driver on idle:

This screenshot is taken with the Nouveau driver, also on idle:

So, I wonder if there is a way to reduce the temperature without loosing too much performance.

That's my inxi:

Summary
System:    Host: MacbookPro Kernel: 4.19.91-1-MANJARO x86_64 bits: 64 compiler: gcc v: 9.2.0 
           Desktop: KDE Plasma 5.17.4 Distro: Manjaro Linux 
Machine:   Type: Laptop System: Apple product: MacBookPro5,5 v: 1.0 serial: <filter> 
           Mobo: Apple model: Mac-F2268AC8 serial: <filter> UEFI: Apple 
           v: MBP55.88Z.00AC.B03.0906151708 date: 06/15/09 
Battery:   ID-1: BAT0 charge: 61.9 Wh condition: 62.0/64.8 Wh (96%) model: SLODA A1322 status: Full 
CPU:       Topology: Dual Core model: Intel Core2 Duo P8700 bits: 64 type: MCP arch: Penryn rev: A 
           L2 cache: 3072 KiB 
           flags: lm nx pae sse sse2 sse3 sse4_1 ssse3 vmx bogomips: 10083 
           Speed: 2189 MHz min/max: 798/2527 MHz Core speeds (MHz): 1: 2189 2: 2121 
Graphics:  Device-1: NVIDIA C79 [GeForce 9400M] vendor: Apple driver: nvidia v: 340.108 
           bus ID: 02:00.0 
           Display: x11 server: X.Org 1.20.6 driver: nvidia tty: N/A 
           OpenGL: renderer: GeForce 9400M/integrated/SSE2 v: 3.3.0 NVIDIA 340.108 
           direct render: Yes 
Audio:     Device-1: NVIDIA MCP79 High Definition Audio driver: snd_hda_intel v: kernel 
           bus ID: 00:08.0 
           Sound Server: ALSA v: k4.19.91-1-MANJARO 
Network:   Device-1: NVIDIA MCP79 Ethernet driver: forcedeth v: kernel port: 21e0 bus ID: 00:0a.0 
           IF: enp0s10 state: down mac: <filter> 
           Device-2: Broadcom and subsidiaries BCM4322 802.11a/b/g/n Wireless LAN 
           vendor: Apple AirPort Extreme driver: wl v: kernel port: 1000 bus ID: 03:00.0 
           IF: wlp3s0 state: up mac: <filter> 
Drives:    Local Storage: total: 447.13 GiB used: 167.74 GiB (37.5%) 
           ID-1: /dev/sda vendor: LONDISK model: SSD 480GB size: 447.13 GiB 
Partition: ID-1: / size: 19.56 GiB used: 12.42 GiB (63.5%) fs: ext4 dev: /dev/sda2 
           ID-2: /home size: 417.31 GiB used: 155.30 GiB (37.2%) fs: ext4 dev: /dev/sda3 
           ID-3: swap-1 size: 2.00 GiB used: 19.5 MiB (1.0%) fs: swap dev: /dev/sda4 
Sensors:   System Temperatures: cpu: 67.0 C mobo: N/A gpu: nvidia temp: 63 C 
           Fan Speeds (RPM): N/A 
Info:      Processes: 209 Uptime: 23h 42m Memory: 7.54 GiB used: 2.61 GiB (34.6%) Init: systemd 
           Compilers: gcc: 9.2.0 Shell: bash v: 5.0.11 inxi: 3.0.37

Best regards!! :grinning:

can you first add

sudo pacman -S lm_sensors

then

sudo sensors-detect

and always answers in Capital for Y or N ( N in case of i2c for videos cards ) if
text proposal is on Uppercase only Y

Hi!!
Here is the output to sensors-detect with 340xx:

Summary
[albert@MacbookPro ~]$ sudo sensors-detect
[sudo] password for albert: 
# sensors-detect version 3.6.0
# System: Apple Inc. MacBookPro5,5 [1.0] (laptop)
# Board: Apple Inc. Mac-F2268AC8
# Kernel: 4.19.91-1-MANJARO x86_64
# Processor: Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz (6/23/10)

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
Module cpuid loaded successfully.
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...                           No
AMD Family 15h power sensors...                             No
AMD Family 16h power sensors...                             No
Hygon Family 18h thermal sensors...                         No
Intel digital thermal sensor...                             Success!
    (driver `coretemp')
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'...                                      No
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'...                                      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-nforce2' for device 0000:00:03.2: nVidia Corporation nForce SMBus (MCP79)
Module i2c-dev loaded successfully.

Next adapter: SMBus nForce2 adapter at 2140 (i2c-0)
Do you want to scan it? (YES/no/selectively): YES
Client found at address 0x50
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 Yes
    (confidence 8, not a hardware monitoring chip)
Probing for `EDID EEPROM'...                                No
Client found at address 0x51
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 Yes
    (confidence 8, not a hardware monitoring chip)

Next adapter: SMBus nForce2 adapter at 2100 (i2c-1)
Do you want to scan it? (YES/no/selectively): YES
Client found at address 0x2c
Probing for `Myson MTP008'...                               No
Probing for `National Semiconductor LM78'...                No
Probing for `National Semiconductor LM79'...                No
Probing for `National Semiconductor LM80'...                No
Probing for `National Semiconductor LM96080'...             No
Probing for `National Semiconductor LM85'...                No
Probing for `National Semiconductor LM96000 or PC8374L'...  No
Probing for `Analog Devices ADM1027'...                     No
Probing for `Analog Devices ADT7460 or ADT7463'...          No
Probing for `SMSC EMC6D100 or EMC6D101'...                  No
Probing for `SMSC EMC6D102'...                              No
Probing for `SMSC EMC6D103'...                              No
Probing for `SMSC EMC6D103S or EMC2300'...                  No
Probing for `SMSC EMC6W201'...                              No
Probing for `Winbond WPCD377I'...                           No
Probing for `Analog Devices ADT7470'...                     No
Probing for `Analog Devices ADT7473'...                     No
Probing for `Analog Devices ADT7476'...                     No
Probing for `Analog Devices ADT7490'...                     No
Probing for `Andigilog aSC7611'...                          No
Probing for `Andigilog aSC7621'...                          No
Probing for `National Semiconductor LM87'...                No
Probing for `Analog Devices ADM1024'...                     No
Probing for `National Semiconductor LM93'...                No
Probing for `National Semiconductor LM94 or LM96194'...     No
Probing for `Winbond W83781D'...                            No
Probing for `Winbond W83782D'...                            No
Probing for `Winbond W83791D'...                            No
Probing for `Winbond W83792D'...                            No
Probing for `Winbond W83793R/G'...                          No
Probing for `Nuvoton W83795G/ADG'...                        No
Probing for `Nuvoton NCT7802Y'...                           No
Probing for `Winbond W83627HF'...                           No
Probing for `Winbond W83627EHF'...                          No
Probing for `Winbond W83627DHG/W83667HG/W83677HG'...        No
Probing for `Asus AS99127F (rev.1)'...                      No
Probing for `Asus AS99127F (rev.2)'...                      No
Probing for `Asus ASB100 Bach'...                           No
Probing for `Genesys Logic GL518SM'...                      No
Probing for `Genesys Logic GL520SM'...                      No
Probing for `Analog Devices ADM9240'...                     No
Probing for `Dallas Semiconductor DS1780'...                No
Probing for `National Semiconductor LM81'...                No
Probing for `Analog Devices ADM1026'...                     No
Probing for `Analog Devices ADM1025'...                     No
Probing for `Philips NE1619'...                             No
Probing for `Maxim MAX6639'...                              No
Probing for `Texas Instruments AMC6821'...                  No
Probing for `Analog Devices ADM1029'...                     No
Probing for `Analog Devices ADM1030'...                     No
Probing for `Analog Devices ADM1031'...                     No
Probing for `Analog Devices ADM1022'...                     No
Probing for `Texas Instruments THMC50'...                   No
Probing for `ITE IT8712F'...                                No
Probing for `ALi M5879'...                                  No
Probing for `SMSC LPC47M15x/192/292/997'...                 No
Probing for `SMSC DME1737'...                               No
Probing for `SMSC SCH5027D-NW'...                           No
Probing for `SMSC EMC1072'...                               No
Probing for `SMSC EMC1073'...                               No
Probing for `SMSC EMC1074'...                               No
Probing for `Winbond W83791SD'...                           No

Next adapter: NVIDIA i2c adapter 0 at 2:00.0 (i2c-2)
Do you want to scan it? (yes/NO/selectively): YES

Next adapter: NVIDIA i2c adapter 2 at 2:00.0 (i2c-3)
Do you want to scan it? (yes/NO/selectively): YES
Client found at address 0x28
Probing for `National Semiconductor LM78'...                No
Probing for `National Semiconductor LM79'...                No
Probing for `National Semiconductor LM80'...                No
Probing for `National Semiconductor LM96080'...             No
Probing for `Winbond W83781D'...                            No
Probing for `Winbond W83782D'...                            No
Probing for `Nuvoton NCT7802Y'...                           No
Probing for `Winbond W83627HF'...                           No
Probing for `Winbond W83627EHF'...                          No
Probing for `Winbond W83627DHG/W83667HG/W83677HG'...        No
Probing for `Asus AS99127F (rev.1)'...                      No
Probing for `Asus AS99127F (rev.2)'...                      No
Probing for `Asus ASB100 Bach'...                           No
Probing for `Analog Devices ADM1029'...                     No
Probing for `ITE IT8712F'...                                No

Next adapter: NVIDIA i2c adapter 3 at 2:00.0 (i2c-4)
Do you want to scan it? (yes/NO/selectively): YES

Next adapter: NVIDIA i2c adapter 8 at 2:00.0 (i2c-5)
Do you want to scan it? (yes/NO/selectively): YES
Adapter cannot be probed, skipping.

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

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Do you want to overwrite /etc/conf.d/lm_sensors? (YES/no): YES
Unloading i2c-dev... OK
Unloading cpuid... OK

[albert@MacbookPro ~]$

Here is the output to sensors-detect with Nouveau:

Summary
 [albert@MacbookPro ~]$ sudo sensors-detect
[sudo] password for albert: 
# sensors-detect version 3.6.0
# System: Apple Inc. MacBookPro5,5 [1.0] (laptop)
# Board: Apple Inc. Mac-F2268AC8
# Kernel: 4.19.91-1-MANJARO x86_64
# Processor: Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz (6/23/10)

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
Module cpuid loaded successfully.
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...                           No
AMD Family 15h power sensors...                             No
AMD Family 16h power sensors...                             No
Hygon Family 18h thermal sensors...                         No
Intel digital thermal sensor...                             Success!
    (driver `coretemp')
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'...                                      No
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'...                                      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-nforce2' for device 0000:00:03.2: nVidia Corporation nForce SMBus (MCP79)
Module i2c-dev loaded successfully.

Next adapter: SMBus nForce2 adapter at 2140 (i2c-0)
Do you want to scan it? (YES/no/selectively): YES
Client found at address 0x50
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 Yes
    (confidence 8, not a hardware monitoring chip)
Probing for `EDID EEPROM'...                                No
Client found at address 0x51
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 Yes
    (confidence 8, not a hardware monitoring chip)

Next adapter: SMBus nForce2 adapter at 2100 (i2c-1)
Do you want to scan it? (YES/no/selectively): YES
Client found at address 0x2c
Probing for `Myson MTP008'...                               No
Probing for `National Semiconductor LM78'...                No
Probing for `National Semiconductor LM79'...                No
Probing for `National Semiconductor LM80'...                No
Probing for `National Semiconductor LM96080'...             No
Probing for `National Semiconductor LM85'...                No
Probing for `National Semiconductor LM96000 or PC8374L'...  No
Probing for `Analog Devices ADM1027'...                     No
Probing for `Analog Devices ADT7460 or ADT7463'...          No
Probing for `SMSC EMC6D100 or EMC6D101'...                  No
Probing for `SMSC EMC6D102'...                              No
Probing for `SMSC EMC6D103'...                              No
Probing for `SMSC EMC6D103S or EMC2300'...                  No
Probing for `SMSC EMC6W201'...                              No
Probing for `Winbond WPCD377I'...                           No
Probing for `Analog Devices ADT7470'...                     No
Probing for `Analog Devices ADT7473'...                     No
Probing for `Analog Devices ADT7476'...                     No
Probing for `Analog Devices ADT7490'...                     No
Probing for `Andigilog aSC7611'...                          No
Probing for `Andigilog aSC7621'...                          No
Probing for `National Semiconductor LM87'...                No
Probing for `Analog Devices ADM1024'...                     No
Probing for `National Semiconductor LM93'...                No
Probing for `National Semiconductor LM94 or LM96194'...     No
Probing for `Winbond W83781D'...                            No
Probing for `Winbond W83782D'...                            No
Probing for `Winbond W83791D'...                            No
Probing for `Winbond W83792D'...                            No
Probing for `Winbond W83793R/G'...                          No
Probing for `Nuvoton W83795G/ADG'...                        No
Probing for `Nuvoton NCT7802Y'...                           No
Probing for `Winbond W83627HF'...                           No
Probing for `Winbond W83627EHF'...                          No
Probing for `Winbond W83627DHG/W83667HG/W83677HG'...        No
Probing for `Asus AS99127F (rev.1)'...                      No
Probing for `Asus AS99127F (rev.2)'...                      No
Probing for `Asus ASB100 Bach'...                           No
Probing for `Genesys Logic GL518SM'...                      No
Probing for `Genesys Logic GL520SM'...                      No
Probing for `Analog Devices ADM9240'...                     No
Probing for `Dallas Semiconductor DS1780'...                No
Probing for `National Semiconductor LM81'...                No
Probing for `Analog Devices ADM1026'...                     No
Probing for `Analog Devices ADM1025'...                     No
Probing for `Philips NE1619'...                             No
Probing for `Maxim MAX6639'...                              No
Probing for `Texas Instruments AMC6821'...                  No
Probing for `Analog Devices ADM1029'...                     No
Probing for `Analog Devices ADM1030'...                     No
Probing for `Analog Devices ADM1031'...                     No
Probing for `Analog Devices ADM1022'...                     No
Probing for `Texas Instruments THMC50'...                   No
Probing for `ITE IT8712F'...                                No
Probing for `ALi M5879'...                                  No
Probing for `SMSC LPC47M15x/192/292/997'...                 No
Probing for `SMSC DME1737'...                               No
Probing for `SMSC SCH5027D-NW'...                           No
Probing for `SMSC EMC1072'...                               No
Probing for `SMSC EMC1073'...                               No
Probing for `SMSC EMC1074'...                               No
Probing for `Winbond W83791SD'...                           No

Next adapter: nvkm-0000:02:00.0-bus-0000 (i2c-2)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: nvkm-0000:02:00.0-bus-0002 (i2c-3)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: nvkm-0000:02:00.0-bus-0003 (i2c-4)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: nvkm-0000:02:00.0-aux-0008 (i2c-5)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: nvkm-0000:02:00.0-aux-0009 (i2c-6)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: nvkm-0000:02:00.0-aux-000a (i2c-7)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: nvkm-0000:02:00.0-aux-000b (i2c-8)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: 0000:02:00.0 (i2c-9)
Do you want to scan it? (yes/NO/selectively): NO


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

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Do you want to overwrite /etc/conf.d/lm_sensors? (YES/no): YES
Unloading i2c-dev... OK
Unloading cpuid... OK

With Nouveau I also notice poor performance in general (lag, scrolling websites on Firefox or Chrome, etc)

:grinning:

I use an almost identical MBP 5,4 and I also prefer the nvidia driver. Deactivating "Hardware accelerated decoding" in vlc player has fixed occasional freezes under heavy load. I'm also still on the 4.19 kernel until the new one gets the 'recommended'.
I noticed that the fan control seemed different and more prone to bursts with nouveau. My temps show in a conky: normal use then would be around 75C going up to 90C with worrying peaks above 100C when watching video/football.

About 2 month ago I replaced the 8% original battery, did a much needed clean-up of the fan and created some space for better air flow by taking out the dead superdrive and swapping the hd with a small msata drive (very user friendly MBP, very easy access: https://youtu.be/p8geztxn9Yw ).

It's unrecognisable; fast and effortless due to the msata and 'cool' - while writing this 100km from the equator :sweat_smile: with browser, terminal, messenger and flameshot open I get:

2020-01-25_14-16

When trying to get temps down my ranking for best effect would be:

  1. clean out lap and fan
  2. replace hd with ssd (10Watt vs 3Watt, fixes "poor performance in general")
  3. limit desktop effects and panel items

I know that the drivers give slightly different results but I have lived for years with either and the difference is marginal (with nvidia ahead for me due to easier config via 'Nserver-settings'), however, heat-throttling due to blocked airflow will affect both setups much more dramatically.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by