Fan control can bring various benefits to your system, such as quieter working system and power saving by completely stopping fans on low CPU load.
- Mac Manual Fan Control Software
- Hand Fan
- Best Mac Fan Control
- Download Mac Fan Control
- Mac Manual Fan Controller
- Macs Fan Control Settings
- Macs Fan Control Review
Warning: Configuring or completely stopping fans on high system load might result in permanently damaged hardware.
Overview
Note: Laptop users should be aware about how cooling system works in their hardware. Some laptops have single fan for both CPU and GPU and cools both at the same time. Some laptops have two fans for CPU and GPU, but the first fan cools down CPU and GPU at the same time, while the other one cools CPU only. In some cases, you will not be able to use Fancontrol script due to incompatible cooling architecture (e.g. one fan for both GPU and CPU). Here is some more information about this topic.
There are multiple working solutions for fan control for both desktops and notebooks. Depending on your needs:
Macs Fan Control. Unlike its name, it’s not only limited to Mac operators. It is compatible with both Windows and Mac OS. And can be used for Windows particularly. This app was mainly created to control the fan on both computers. To detect the fan speed, it has real-time monitoring. It has numerous fans, and you can switch among them anytime. An obsessive Apple fan has created what he describes as perfect reproductions of the original Apple I manuals. To do so, he says, he had to position individual letters by hand. Provided by: macfanctld0.6+repack1-1build1amd64 NAME macfanctld - Fan control for MacBook SYNOPSIS macfanctld -f DESCRIPTION macfanctld is a daemon that reads temperature sensors and adjust the fan(s) speed on MacBook's. Macfanctld is configurable and logs temp and fan data to a file. By default, Apple runs your Mac’s fans automatically—with no way to configure them—and it ramps them up when your system gets too hot. The free Macs Fan Control app lets you manually control your fans. There are two reasons you’d want to do this—to allow your Mac to run faster but louder, or slower but quieter. Apple’s auto control aims for somewhere in the middle. See the smc manual page for more options. Since Mac OS X 10.5, you need to use a third party piece of software to access the fan speed information. It appears no tool, installed by default on OS X, exposes this information through the terminal. The open source project Fan Control includes.
- Fancontrol (lm-sensors) - Script (written in Bash) to configure fan speeds. Most suitable for desktops and laptops, where fan controls are available via sysfs.
- NoteBook Fan Control (NBFC) - Cross-platform solution for laptop fan control, written in C# and works under Mono runtime. Most suitable for latest, unsupported by Fancontrol laptops.
- Dell laptops - Alternative fan control daemon for some Dell laptops.
- ThinkPad laptops - Fan configuration for some ThinkPad laptops.
- ASUS laptops - Configure some ASUS laptops for Fancontrol or manual control.
Fancontrol (lm-sensors)
fancontrol
is a part of lm_sensors, which can be used to control the speed of CPU/case fans.Support for newer motherboards may not yet be in the Linux kernel. Check the official lm-sensors devices table to see if experimental drivers are available for such motherboards.
lm-sensors
The first thing to do is to run
This will detect all of the sensors present and they will be used for fancontrol. After that, run the following to check if it detected the sensors correctly:
Note: If the output does not display an RPM value for the CPU fan, one may need to #Increase the fan divisor for sensors. If the fan speed is shown and higher than 0, this is fine.
Configuration
Once the sensors are properly configured, use
pwmconfig
to test and configure fan speed control. Following the guide should create /etc/fancontrol a customized configuration file. In the guide, the default answers are in parenthesis if you press enter without typing anything. Enter 'y' for yes, 'n' for no.Note: Some users may experience issues when using /sys/class/hwmon/ paths for their configuration file. hwmon class device symlinks points to the absolute paths, and are used to group all of the hwmon sensors together into one folder for easier access. Sometimes, the order of the hwmon devices change from a reboot, causing fancontrol to stop working. Go to #Device Paths have Changed in /etc/fancontrol for more information on how to fix this.
Tweaking
Mac Manual Fan Control Software
Some users may want to manually tweak the config file after running pwmconfig, usually to fix something. For manually tweaking the
/etc/fancontrol
configuration file, see the fancontrol(8) manual page for the definitions of the variables.Users will probably encounter the hwmon path issues as noted above in #Fancontrol (lm-sensors). Look at #Device Paths have Changed in /etc/fancontrol for more information.
Tip: Use
MAXPWM
and MINPWM
options that limit fan speed range. See the fancontrol(8) manual page for details.Note: Temperature and fan sensor paths could change as well (usually on a kernel update) (e.g.
hwmon0/device/temp1_input
becomes hwmon0/temp1_input
). Check the system log to find out which path is the troublemaker:and correct your config file accordingly.Running Fancontrol
Try to run fancontrol:
A properly configured setup will not output errors and will take control of the system fans. Users should hear system fans starting shortly after executing this command. fancontrol can also be ran by starting/enabling
fancontrol.service
.For an unofficial GUI, installfancontrol-guiAUR or fancontrol-kcmAUR.
Fancontrol stops working after suspend–wake cycles
Unfortunately, fancontrol does not work after suspending. As per the filed bug, you will have to restart fancontrol after suspending. This can be achieved automatically by a systemd hook.
NBFC
NBFC is a cross-platform fan control solution for notebooks. It comes with a powerful configuration system, which allows to adjust it to many different notebook models, including some of the latest ones.
Installation
NBFC can be installed as nbfcAUR or nbfc-gitAUR. Also start and enable
nbfc.service
.Configuration
NBFC comes with pre-made profiles. You can find them in
/opt/nbfc/Configs/
directory. When applying them, use exact profile name without extension (e.g. some profile.xml
becomes 'some profile'
).Check if there is anything NBFC can recommend:
If there is at least one model, try to apply this profile and see how fan speeds are being handled. For example:
Note: If you are getting File Descriptor does not support writing
, delete StagWare.Plugins.ECSysLinux.dll
[1] and restartnbfc.service
:If above solution did not help, try appending
ec_sys.write_support=1
to kernel parameters.If there are no recommended models, go to NBFC git repository or
/opt/nbfc/Configs/
and check if there are any similar models available from the same manufacturer. For example, on Asus Zenbook UX430UQ, the configuration Asus Zenbook UX430UA did not work well (fans completelly stopped all the time), but Asus Zenbook UX410UQ worked fantastically.Run
nbfc
to see all options. More information about configuration is available at upstream wiki.NBFC-Linux
NBFC-Linux is a lightweight implementation of NBFC, written in C. It does not depend on the Mono framework. It can be installed as nbfc-linuxAUR or nbfc-linux-gitAUR.
Dell laptops
i8kutils
is a daemon to configure fan speed according to CPU temperatures on some Dell Inspiron and Latitude laptops. It uses the /proc/i8k
interface provided by the dell_smm_hwmon
driver (formerly i8k
). Results will vary depending on the exact model of laptop.Warning: i8kutils BIOS system calls stop the kernel for a moment on some systems (confirmed on Dell 9560), this can lead to side effects like audio dropouts, see https://bugzilla.kernel.org/show_bug.cgi?id=201097
Installation
i8kutilsAUR is the main package to control fan speed. Additionally, you might want to install these:
- acpi - must be installed to use
i8kmon
. - tcl - must be installed in order to run
i8kmon
as a background service (using the--daemon
option). - tk - must be installed together with tcl to run as X11 desktop applet.
- dell-bios-fan-control-gitAUR - recommended if your BIOS overrides fan control
Configuration
The temperature points at which the fan changes speed can be adjusted in the same configuration file. Only three fans speeds are supported (high, low, and off). Look for a section similar to the following:
This example starts the fan at low speed when the CPU temperature reaches 55 °C, switching to high speed at 75 °C. The fan will switch back to low speed once the temperature drops to 65 °C, and turns off completely at 45 °C.
Tip: if when running
i8kmon
with verbose option you notice that the state changes (example of an output: # (57>=55), state=1, low=45, high=75
) but right and left fans report state 0, you might consider changing the speed value of the first state in the config file from default 1000 to 2000 or higher.Installation as a service
i8kmon can be started automatically by starting/enabling
i8kmon.service
.BIOS overriding fan control
Some newer laptops have BIOS fan control in place which will override the OS level fan control. To test if this the case, run
i8kmon
with verbose mode in a command line, make sure the CPU is idle, then see if the fan is turned off or turned down accordingly.If the BIOS fan control is in place, you can try using dell-bios-fan-control-gitAUR:
Warning: Turning off BIOS fan control could result in damage to your hardware. Make sure you have i8kmon properly set up beforehand, or leave the CPU idle while you test this program.
To enable BIOS fan control:
To disable BIOS fan control:
BIOS fan control can be automatically disabled by starting/enabling
dell-bios-fan-control.service
.ThinkPad laptops
Current fan control daemons available in the AUR are simpfand-gitAUR and thinkfanAUR (recommended).
Installation
Install thinkfanAUR or thinkfan-gitAUR. Optionally, but recommended, install lm_sensors. Then have a look at the files:
Note that the thinkfan package installs
/usr/lib/modprobe.d/thinkpad_acpi.conf
, which containsSo fan control is enabled by default.
Now, load the module:
You should see that the fan level is 'auto' by default, but you can echo a level command to the same file to control the fan speed manually:
Level | Effect |
---|---|
0 | off |
2 | low speed |
4 | medium speed |
7 | maximum speed |
auto | default - automatic |
full-speed | real maximum speed |
The thinkfan daemon will do this automatically.
'7' is not the same as 'full-speed'. '7' is the maximum regulated speed. full-speed is the maximum unregulated speed.
Finally, enable the
thinkfan.service
.To configure the temperature thresholds, you will need to copy the example config file (
/usr/share/doc/thinkfan/examples/thinkfan.yaml
) to /etc/thinkfan.conf
, and modify to taste. This file specifies which sensors to read, and which interface to use to control the fan. Some systems have /proc/acpi/ibm/fan
and /proc/acpi/ibm/thermal
available; on others, you will need to specify something like:to use generic hwmon sensors instead of thinkpad-specific ones.
Running
You can test your configuration first by running thinkfan manually (as root):
and see how it reacts to the load level of whatever other programs you have running.
When you have it configured correctly, start/enable
thinkfan.service
.ASUS laptops
This topic will cover drivers configuration on ASUS laptops for Fancontrol (lm-sensors).
Kernel modules
In configuration files, we are going to use full paths to sysfs files (e.g.
/sys/devices/platform/asus-nb-wmi/hwmon/hwmon[[:print:]]*/pwm1
). This is because hwmon1 might change to any other number after reboot. Fancontrol (lm-sensors) is written in Bash, so using these paths in configuration file is completely acceptable. You can find complete /etc/fancontrol
configuration file examples at ASUS N550JV#Fan control.asus-nb-wmi
asus-nb-wmi
is a kernel module, which is included in the Linux kernel and is loaded automatically on Asus laptops. It will only allow to control a single fan and if there is a second fan you will not have any controls over it. Note that blacklisting this module will prevent keyboard backlight to work.Below are the commands to control it. Check if you have any controls over your fan:
If you were able to modify fan speed with above commands, then continue with #Generate config file with pwmconfig.
asus_fan
asus_fan
is a kernel module, which allows to control both fans on some older Asus laptops. It does not work with the most recent models.Install the DKMSasus-fan-dkms-gitAURkernel module, providing
asus_fan
:Check if you have any control over both fans:
If everything works, you might want to load this kernel module on boot:
Continue with #Generate config file with pwmconfig. https://apnew600.weebly.com/driver-talent-70110-serial-key.html.
Generate config file with pwmconfig
If you get an error
There are no working fan sensors, all readings are 0
while generating config file with pwmconfig
, open first console and execute:If you use
asus_fan
kernel module and have 2nd fan, in second console:And finally, in the third console:
Once you are done and the configuration file is generated, you should stop the first and second consoles. Continue with Fancontrol (lm-sensors). After config file is generated, you might need to manually replace PWM values with full sysfs paths as they are used in these steps, because hwmon number values might change after reboot.
Alternative method using EC registers
If the above methods do not work for you, an alternative method is to directly write to certain registers in the embedded controller (EC). Using the EC-Probe tool, you can set the fan mode to one of the three fan speed modes, provided your model offers such feature in Windows.
In ASUS FX504GD model setting the fan speed to one of the three modes uses these register values:
Here we write to register 0x5e that is responsible in setting the fan speed mode.
If these values do not work for you, run the ec-probe tool in monitor mode in Windows and try to identify which register in the EC changes value when switching through fan speed modes.
Setting thermal throttle policy
Instead of manually controlling fan speed using
asus-nb-wmi
, it is also possible to set the thermal throttling policy to have a more or less aggressive fan control policy. Possible values are 0
(default), 1
(overboost) and 2
(silent).Fan control modes on certain TUF series laptops
On certain ASUS TUF series laptops, performance and fan control modes can be changed using
Fn+F5
key. The current mode can be viewed by running the following command:You can view the value changing as you use
Fn+F5
key. 0 is 'Normal Mode', 1 is 'Performance Mode', 2 is most likely 'Silent Mode'. [2] It is also possible to write these values into the the fan_boost_mode
file as root and have the desired effect.This was tested on the ASUS TUF FX504GE and ASUS TUF FX504GD models and found to be working.
AMDGPU sysfs fan control
AMDGPU kernel driver offers fan control for graphics cards via hwmon in sysfs.
Configuration of manual control
To switch to manual fan control from automatic, run
Set up fan speed to e.g. 50% (100% are 255 PWM cycles, thus calculate desired fan speed percentage by multiplying its value by 2.55):
To reset to automatic fan control, run
Warning: Resetting fan speed to auto may not work due to a driver bug and instead a restart of the driver may be required as a workaround.
amdgpu-fan
The amdgpu-fanAUR package is an automated fan controller for AMDGPU-enabled video cards written in Python. It uses a 'speed-matrix' to match the frequency of the fans with the temperature of the GPU, for example:
Launch the fan control service by starting/enabling
amdgpu-fan.service
.amdfand-bin
Then amdfand-binAUR package is an native alternative to amdgpu-fanAUR. Launch the fan control service by starting/enabling
amdfand.service
.fancurve script
Not just fan controls are offered via hwmon in sysfs, but also GPU temperature reading:
This outputs GPU temperature in °C + three zeroes, e.g.
33000
for 33°C.The bash script amdgpu-fancontrol by grmat offers a fully automatic fan control by using the described sysfs hwmon functionality.It also allows to comfortably adjust the fancurve's temperature/PWM cycles assignments and a hysteresis by offering abstracted configuration fields at the top of the script.
Hand Fan
Tip: In order to function correctly, the script needs at least three defined temperature/PWM cycles assignments.
For safety reasons, the script sets fan control again to auto when shutting down. This may cause spinning up of fans, which can be worked around at cost of security by setting
set_fanmode 1
in the section function reset_on_fail
.Setting up fancurve script
To start the script, it is recommend to do so via systemd init system. This way the script's verbose output can be read via journalctl/systemctl status. For this purpose, a .service configuration file is already included in the GitHub repository.
It may also be required to restart the script via a root-resume.service after hibernation in order to make it automatically function properly again:
Troubleshooting
Increase the fan divisor for sensors
If sensors does not output the CPU fan RPM, it may be necessary to change the fan divisor.
The first line of the sensors output is the chipset used by the motherboard for readings of temperatures and voltages.
Create a file in
/etc/sensors.d/
:Replacing coretemp-isa- with name of the chipset and X with the number of the CPU fan to change.
Save the file, and run as root:
which will reload the configuration files.
Run
sensors
again, and check if there is an RPM readout. If not, increase the divisor to 8, 16, or 32. YMMV!Device Paths have Changed in /etc/fancontrol
The enumerated hwmon symlinks located in /sys/class/hwmon/ might vary in order because the kernel modules do not load in a consistent order per boot. Because of this, it may cause fancontrol to not function correctly. The error is 'Configuration appears to be outdated, please run pwmconfig again'. Upstream bug.
Solution
In
/etc/conf.d/lm_sensors
, there are 2 arrays that list all of the modules detected when you execute sensors-detect
. These get loaded in by fancontrol. If the file does not exist, run sensors-detect
as root, accepting the defaults. Open (or create) /etc/modules-load.d/modules.conf
. Get all of the modules listed from the 2 variables in /etc/conf.d/lm_sensors/
and place them into the /etc/modules-load.d/modules.conf
file, one module per line. Specifying them like this should make a defined order for the modules to load in, which should make the hwmon paths stay where they are and not change orders for every boot. If this doesnt work, I highly recommend finding another program to control your fans. If you cannot find any, then you could try using the alternative solution below.Alternative Solution: Absolute paths
Using absolute file paths in fancontrol does not work by default, as its helper script
pwmconfig
is programmed to only use the hwmon paths to get the files. The way it does this is that it detects whether the hwmon path that is provided in its config file /etc/fancontrol
did not change, and uses the variables DEVNAME
and DEVPATH
to determine such change. If your hwmon paths keep changing, this will prevent fancontrol from running no matter what you do. However, one can circumvent this problem. Open /usr/bin/fancontrol
, and comment out this part of the script:Note: Doing this may make fancontrol write into files you gave it in the config file, no matter what the file is. This can corrupt files if you provide the wrong path. Be sure that you are using the correct path for your files.
Another thing to note is that while doing this workaround, using
pwmconfig
to create your script again will overwrite all of your absolute paths that you have configured. Therefore, it is better to manually change the old paths to the new paths if it is needed instead of using pwmconfig.Commenting this out should effectively ignore the hwmon validation checks. You can also ignore the variables
DEVNAME
and DEVPATH
in the config file as well. After this, replace all of the hwmon paths in the other variables with its absolute path. To make it easier, rerun pwmconfig
to refresh the hwmon devices. The hwmon paths in the config file should now point to the correct absolute paths. For each hwmon path, run the following command:This will give you the absolute path of the device.
For example, a /etc/fancontrol file lists FCTEMPS as this:
Executing
readlink -f /sys/class/hwmon/hwmon3/device
can, for example, output /sys/devices/platform/coretemp.0/
. cd
into this directory. If you see a /hwmon/hwmon#/
directory, you have to do this in your fancontrol config file to replace the hwmon# path. From the previous example:Best Mac Fan Control
Essentially, you must replace the hwmon path with the absolute path, concatenated with
/hwmon/[[:print:]]*/
so that bash can catch the random enumerated hwmon name.If you do not see the
/hwmon/hwmon#/
directory, then you do not have to worry about this. This means that the temperature files are in the root of the device folder. Just replace hwmon#/
with the absolute file path. For example:After replacing all of paths, fancontrol should work fine.
Retrieved from 'https://wiki.archlinux.org/index.php?title=Fan_speed_control&oldid=688775'
Today it has become more important for MacBook users to monitor macs fan speed. The probable reason is more advanced hardware and software technologies in these devices. But most users don’t monitor macs fan speed, as a result, they often deal with MacBook overheating issues.
However, there are the best mac fan control utilities which will be discussed in this article with a guide to controlling mac fan speed.
If you are one of them and you are feeling MacBook pro fan noise or your MacBook fan has stopped working, causing an increase in Mac temperature. Then you should probably get serious and start to monitor macs fan speed with the best mac fan speed controller software.
But which fan control mac app is more reliable that fulfills your needs? And how to use macs fan control software? These are the question which most mac users ask. Luckily, we have explained here the best macs fan control software which can monitor macs fan speed.
This macs fan control software is a free program that allows you to check your mac’s temperature. You can also solve overheating problems in MacBook Pro with this mac temperature monitor.
How To Check Mac Temperature
You can download mac fan controller software to monitor CPU temperature in Mac. CrystalIdea Software has developed this fan control for mac software which is available for free and supports most mac OS Sierra.
Along with CPU monitoring, Mac fan speed control also lets you check details around the fan. Once you download this notebook fan control app, you can simply move it into the Applications folder, and launch the app.
Download Mac Fan Control
How To Use Macbook Fan Control
To use this mac fan control gadget first, visit Macs Fan Controller download page and download mac version. You can also download the windows fan control app which is its alternate version but ignore it.
When you click on the download button, it’s file will open in the ZIP folder which you can UNZIP it simply by clicking on it.
Now take the app icon to the application folder and open it up. (Note: Sometimes MacBook pro fan control doesn’t work on IMac having Windows operating system).
But if you download Bootcamp on Windows then via Boot Camp sharing you get to use macs fan controller with the same easy-to-use interface on Windows 10/8/7/Vista/XP.
A list will appear showing macs fan on the left side and all other temperature emitting components on the right side.
There you can check CPU temperature which always remains high than any other mac’s component. Another point to remember here is that you should always monitor your CPU temperature as it’s the most important component of every system.
Mac Manual Fan Controller
But this post only concerned with how to monitor MacBook pro fan speed so we will stick to it. The mac fan control app settings display minimum, current, and maximum speed in clean order. This order helps you as to when the fan speed should be increased and when to decrease.
Macs Fan Control Settings
For instance, while checking CPU temperature if it’s reaching 80 degrees Celsius or above. It means that mac fans are not running properly. So, you should manually increase macs fan speed. On the contrary, if the displayed figure of CPU temperature is low e.g. 45 degrees Celsius or even lower, but the fans are constantly running. It also shows that your macs fans have some technical issues that need to be fixed.
To make sure if it’s the macs fan that is causing the problem. You can click the “Custom” fan speed button.
When you click on that button, fans start running now try to hear fan sound. If you cannot hear the fan sound that means your macs fans have some issue.
At this particular moment, do not try to disable automatic fan control options because if you disabled automatic fan control your macs fan will run constantly resulting in a waste of energy and depreciation of hardware.
On the other hand, this attempt can also cause a mac CPU overheating problem. The manual control feature of this application is only suitable when you want to test your mac fans.
How to Solve Your Mac’s Fans Problem
If you are certain that you are listening to MacBook air fan noise than the first thing you should do is to launch Apple Diagnostics built-in tool.
To launch this built-in the program, first, turn off your computer, and while it turns on press and holds the “D” key. By doing this your mac book will diagnose hardware and if there is any problem with a fan it will let you know.
Macs Fan Control Review
If the diagnose shows that you have a faulty macs fan then replace it. But hold on, only make contact with an authorized apple store in case you want to purchase mac hardware.
Don’t try to replace it on your own because MacBook Pro is now involved with a great deal of expertise. Although, it’s not impossible for home repair for that you should visit iFixIt and read guides before you attempt.
But if the diagnosis report tells you that macs fan hardware is good, then your issue is related to software. If that’s the case, try to reset SMC.
The SMC is a low-level controller that manages thermal management and other things. Usually, it solves the problem but if the issue persists then visit Apple Store or another authorized repair shop.
If you don’t like mac’s fan control app then you have other options too. Most famous mac fan control apps include SMC Fan Control, iStat Menus, and SSD Fan Control.
These Mac applications also allow users to monitor macs fan speed by manually increasing or decreasing fan speed.
Well, this is how we tried to monitor macs fan speed on MacBook devices. If you have an alternate method to monitor macs fan speed or you have tried other mac fan control software. Then tell us your views by posting a comment.