20

I'm running dualboot Windows 10 and Ubuntu 18.04 (using the respin from this link). Everything works properly, however the fans are continuously going on and off. The CPU temp is between 39 - 42 degrees celsius. I think the fans are activated somewhere within this range, then cool the CPU and thus get the signal again to stop the fans, etc. On Windows, the fans are completely off at idle or light work.

What I already did

  • lm_sensors: cannot find the fans even after "sudo sensors-detect"

  • i8kutils: Cannot find /prod/i8k

  • BIOS updated to version 1.5.0

  • Kernel is version 4.19.2-041902-generic

  • Installed and activated thermald, tlp, powertop and intel-microcode.

  • Set the graphics card to Intel for power-saving

    • "sudo prime-select intel"
  • Undervolt by -140 mV on core and CPU, and -40 mV on iGPU (using this link)

  • Installed smbios-utils and set it to different modes (balanced, cool-bottom, quiet, performance)

  • Disable fan BIOS control (see link)

All without any luck.

What I still want to do

  • Repasting

Stats

sudo tlp stat

+++ System Info

System         = Dell Inc. XPS 15 9570
BIOS           = 1.5.0
Release        = Ubuntu 18.04.1 LTS
Kernel         = 4.19.2-041902-generic #201811132032 SMP Tue Nov 13 20:34:19 UTC 2018 x86_64
/proc/cmdline  = BOOT_IMAGE=/boot/vmlinuz-4.19.2-041902-generic root=UUID=5394fef0-92d3-4753-a6a1-fd7b5c4f9cea ro quiet splash quiet acpi_rev_override=1 acpi_osi=Linux scsi_mod.use_blk_mq=1 nouveau.modeset=0 nouveau.runpm=0 mem_sleep_default=deep vt.handoff=1
Init system    = systemd v237
Boot mode      = UEFI

+++ Temperatures
CPU temp               =    43 [°C]
Fan speed              = (not available)

I guess that Ubuntu is unable to see the fans and is thus unable to take control over them. Any suggestions to gain control over them?

4 Answers4

28

I found a solution to my own problem.

To see the fans with lm_sensors

Add dell-smm-hwmon to modules:

sudo su
echo "options dell-smm-hwmon restricted=0 force=1" > /etc/modprobe.d/dell-smm-hwmon.conf
echo "dell-smm-hwmon" >> /etc/modules  # check manually before
exit
sudo update-initramfs -u

Reboot, and the fans should be visible with:

sensors
dell_smm-virtual-0
Adapter: Virtual device
fan1:           0 RPM
fan2:           0 RPM

To take over control of your fans

Then follow this guide to install i8kutils:

sudo apt install i8kutils
sudo su 
echo "i8k" >> /etc/modules  # check manually before
echo "options i8k force=1" > /etc/modprobe.d/i8k.conf
exit

Reboot:

sudo modprobe i8k force=1

Configure i8kutils:

sudo -H gedit /etc/i8kmon.conf

Finally, disable Dell BIOS Fan Control with this program by TomFreudenberg to let i8kutils take over.

git clone https://github.com/TomFreudenberg/dell-bios-fan-control.git
cd dell-bios-fan-control
make
sudo dell-bios-fan-control 0

Simply i8kmon service will be started and will control your fans. You can also disable i8kmon to try ik8fan to manually control your fans (not recommended as you might turn off your fans and they will never be started putting your CPU and GPU danger!).

i8kfan 2 2
ozgeneral
  • 165
  • 1
  • 7
  • What's inside your`/etc/i8kmon.conf file? When I try using the details I find in the blog post the fans start to work at double speed instead – amarchin Dec 26 '18 at 23:20
  • I just used the default configuration file. There are only three modes available: off, low speed, high speed. – J. Ehrling Jan 13 '19 at 19:55
  • Are the changes made by Dell BIOS Fan Control by TomFreudenberg written to the BIOS firmware ? I have a ubuntu/windows dual boot and would like to make sure that this linux configuration tweaks will not affect the fan control under windows. Thanks!

    EDIT: I meticulously applied all steps above and fans don't spin automatically when dell-bios-fan-control 0 is used, with i8kmon in daemon mode. My CPU temps went up to ~90°C while browsing the web and reading PDFs. Anything missing from this guide to make sure this works ?

    – remi Feb 26 '19 at 14:48
  • Changes are written to the BIOS, so make sure that you re-enable the control when you shutdown your computer. It seems that the Dell BIOS Fan Control works, however did you try to manually control the fans by i8kfan? Also, you could change the /etc/i8kmon.conf to spin at lower temperatures (just to check it works). If not, are you sure the i8k module is loaded? – J. Ehrling Feb 28 '19 at 11:34
  • If this works for you Ehrling, mark this as the accepted answer. – tommy61157 Jun 03 '19 at 13:46
  • 2
    If you use sudo in combination with >, the file redirection takes place in the context of the user, and you get permision denied errors – Ferrybig Jul 28 '20 at 19:55
  • 1
    did you just make me empty my /etc/modules file? – Nicky De Maeyer Oct 14 '20 at 21:38
  • I was looking just to monitor the fan speed, at least initially, and doing just the dell-smm-hwmon section worked for me. Cheers! – chilicheech Jan 05 '22 at 23:11
  • Be VERY careful with this answer since it is overwriting your /etc/modules files !! it should have uses >> instead of > for the 'echo "i8k" > /etc/modules' line – aviv Mar 30 '22 at 15:51
  • @aviv I have already run that command. I am not sure if there was anything in the /etc/modules/ – Sudhir Singh Khanger Apr 29 '22 at 10:48
  • Now I feel that most of the Dell buyers are surviving because of open source community as they are not getting enough solutions from official dell & this issue seems very global to Dell XPS. – Amreesh Tyagi Jul 23 '22 at 18:02
3

A less intrusive method to get less temperature (and therefore no fans are required) is using powertop.

 cat /sys/bus/pci/devices/0000\:01\:00.0/power/control # (on?. That is bad)
 sudo powertop --auto-tune
 cat /sys/bus/pci/devices/0000\:01\:00.0/power/control # (auto?. That is good)

In order to get the changes permanently, see How do I make Powertop changes permanent? . However, in the help of TLP it is said that 'attempting to apply powertop's --auto-tune settings on each boot will conflict with TLP'. By now, it is working fine for me (XPS 15 9570, bios 1.5).

emilio
  • 31
3

My Dell 9570 (Intel i7-8750H) runing on Linux Mint 19.1 and Windows 10.

  • Bios version : 1.10.1
  • Kernel : 4.18.0-21

On Mint, after only repasting of CPU/GPU with Phobya NanoGreace Extreme, I obtain 42° C @Idle ** on "CPU Temperature Indicator" software monitoring. It gives me a gain of approximately -7° C @Idle, the benefit is even greater at full CPU load.

With add Powertop Intel software (available in the software manager), I obtain on my system only 34° C @Idle **, on average I am closer to 38° C.

Official web site : https://01.org/powertop/

First I have calibred Powertop for my sytem (calibration process taking a few minutes and making the computer partially unusable during this time), after this I have execute it.

sudo powertop --calibrate

sudo powertop --auto-tune

Look at the manual of powertop : https://www.systutorials.com/docs/linux/man/8-powertop/

For enable simply Powertop at system boot, I have making a cron fonction file on /etc/cron.d named powertop with right of execution enable containing this fonction :

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

@reboot root powertop --auto-tune

Dont use TLP at the same time, it would cause conflicts.

On Windows after repasting, the low temperature is 38° C @Idle **, on average I am closer to 42° C (on Intel Extreme Tuning Utility software) with Dell Power Manager calibrated to Optimized (standard) or Silence as needed. Dell Power Manager seems to me that he calibrated the bios with this value, this is satisfying for me. Optimized mode seems to the best setting for Linux.

I also realized some hardware optimizations : Opening the air vents (under the case at center of fans), adding two thermal pad (3 x 1 cm / 17 W/mK) on the CPU/GPU heat pipe, one on top left and one on top right just in front of fan.

I do not like undervolt my CPU because Linux does not seem to handle this well.

Through it all I earn approximately -15° C @Idle ** on Linux. My laptop has become very quiet and I am finally fully satisfied with it.

** best score

  • Did you ever try other suggestions like i8kutils? – WinEunuuchs2Unix Jun 03 '19 at 19:48
  • No, I dont use i8kutils. This is a old software in version 1.43 from 02.07.2017. I do not think it fits my Dell 9570. My system work fine, I do not want to make him unstable... – phil995511 - Jun 03 '19 at 21:46
  • I had all kinds of trouble with i8kutils causing machine to pause and videos to stutter when tlp in use. – WinEunuuchs2Unix Jun 03 '19 at 21:49
  • That does not surprise me than i8kutils causing problems. I do not use TLP either. I do not think it's desirable to have 2 optimization programs that work at the same time... This may create instabilities. Powertop work perfecttly. – phil995511 - Jun 03 '19 at 21:58
0

FWIW, below worked for me after wasting a bit of time:

sudo apt-get install ipmitool   # install
sudo ipmitool sdr type fan      # check fan speed
sudo ipmitool raw 0x30 0x30 0x01 0x00       # disable automatic control
sudo ipmitool raw 0x30 0x30 0x02 0xff 0x00  # set fan speed to 0x00

not sure if relevant but also disabled idrac -- ctrl+e during boot & disable services there. (you can safely ignore this if you are not using a server)

ozgeneral
  • 165
  • 1
  • 7