Jump to content

How to control your laptop fan speed

wasab

As the title suggest, this is a guide on how to control your laptop's fan speed.

 

First, why would you want to control your laptop fan speed? Well, because many OEMs like to throttle your cpu's and gpu frequencies under heavy load instead of cranking up the fan speed to deal with the high heat. Apple does this on their macs and so do many OEMs. Why is that you ask? well, its because at max fan speed, your laptop's cooling fan sounds like a jet engine. However, you know what's worse? Your game fps dips to the low 10s and your keyboard feels like a boiling pot whenever you touch it all because the OEM refuses to scale up the fans. 

 

Well, today, I am gonna show you how to ignore whatever fan scaling profile your OEM sets for you and crank up your laptop's fan speed manually. On custom built computer, this is straight forward, you just go into the bios to set the cpu fan and then use something like afterburner to set your gpu fan speed if you happen to have discrete Nvidia cards, on laptop, no such thing. Your bios is locked or lack options and your gpu doesn't come with its own fan so out of control of both the nvidia driver and application like afterburner. Luckily there is software called notebook fan control that will allow us to do this regardless.

 

STEP 1: Get Notebook Fan Control(NBFC) from GitHub

Download Link

If you are on Windows, just download the .exe file from the link above and run it. For Linux user such as myself, there are additional steps so read on if you are team penguin like me. 

 

EVERYTHING BELOW IS RELEVANT TO LINUX ONLY

 

For clarification, my guide is relevant to Ubuntu based distros like Mint and Pop OS. If you have anything else, you need to google up your distros' relevant command for its package manager since it may not use apt.

Anyways, this is build guide from the developer if you want to try it out on none Ubuntu based distros. 

Build guide

 

Open up your terminal and run:

cd && git clone https://github.com/hirschmann/nbfc.git 

 

 

STEP 2: Install the dependencies for compiling. 

Run the command below.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && sudo apt update && sudo apt install mono-complete

 

wait a second until it finishes downloading mono.(yes, this app is coded in C# and targets Microsoft .net, crazy right?)

 

STEP 3: Build the application from source

Run the command below

cd ~/nbfc && chmod +x build.sh && ./build.sh 

Wait until it finishes.

 

STEP 4: Moved the binary to /opt

I personally just dump the binary into my bin folder located in my home directory but it requires more steps like editing the service script so for the sake of this guide, I will follow the steps on the github readme which installs the binary to /opt.

run:

sudo mkdir /opt/nbfc/ && sudo cp -r ~/nbfc/Linux/bin/Release/* /opt/nbfc/

 

STEP 5: create the systemd service script

If your distro do not use systemd, you are on your own to figure this out. If you are on ubuntu distros, systemd should be the default init system. 

The service script is already written for us so just copy it to the systemd folder.

run:

sudo cp ~/nbfc/Linux/nbfc.service /etc/systemd/system/ && sudo cp ~/nbfc/Linux/nbfc-sleep.service /etc/systemd/system/

 

STEP 6: Start the service daemon for nbfc

sudo systemctl enable nbfc --now

 

make sure it is up and running using this command 

systemctl status nbfc

You should see something similar to that of below 

926356045_Screenshotfrom2019-09-2420-15-25.png.6f05cf75e29586b6e580f6d171977aaf.png

 

STEP 7: set a profile nbfc

You need to select a profile depending on your specific laptop. First run this command to list the profiles available for your laptops. 

run 

mono /opt/nbfc/nbfc.exe

note it is important to run this with mono command. If you just double click on nbfc without a terminal, your operating system may run it as windows application through WINE which soon enough you will get a warning telling you mono applications should not be run on windows. Anyways, you should see this below if done correctly, ignore the command you see in the image and use the one I post above.

1165849552_Screenshotfrom2019-09-2420-19-17.png.7c4ec691066f15c2bf74c8918b40c146.png

 

My latop is E5-575G so i pick the first one but all the other ones are likely to work as well. 

run

 mono /opt/nbfc/nbfc.exe config -a <config name>

Replace the config with your config file enclosed in double quotes. I picked the 575G so my command would be:

mono /opt/nbfc/nbfc.exe config -a "Acer Aspire E5-575G"

 

STEP 8: Crank up your laptop fan speed to 100%!!!!

run

mono /opt/nbfc/nbfc.exe set -s 100

Now hear your fan roaring like a jet engine. It never gets this loud without manually setting it. You know why? Becuase OEM never sets fans to spin at max speed even if your laptop is crazy hot. They just throttle the performance instead. I guess my fan speed will go up to 80% max under heaviest load on the OEM presets.

 

To reset the fan speed back to original(which is the default set by your oem) just run

mono /opt/nbfc/nbfc.exe set -a

 

Left over things to do. 

 

Delete the project folder from github. It is useless now

rm -rf ~/nbfc

 

To uninstall, just delete the nbfc directory from /opt and the systemd service scripts. PM me if you want clear instructions. 

 

Thats it. Now you can play your favorite games and whatnots without your laptop burning up or your cpu/gpu heavily throttling. 

 

Happy computing and gaming. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

  • 3 years later...

got a bad luck, can anyone help me with this...??

 

System Model: Acer Nitro 5 AN515-43

 

~$ mono /opt/nbfc/nbfc.exe status -a
Service enabled        : False
Read-only        : False
Selected config name    : 
Temperature        : 0

~$ mono /opt/nbfc/nbfc.exe start -e
Could not load a  plugin which implements StagWare.FanControl.Plugins.IEmbeddedController

Link to comment
Share on other sites

Link to post
Share on other sites

10 minutes ago, avneeshyewale said:

got a bad luck, can anyone help me with this...??

 

System Model: Acer Nitro 5 AN515-43

 

~$ mono /opt/nbfc/nbfc.exe status -a
Service enabled        : False
Read-only        : False
Selected config name    : 
Temperature        : 0

~$ mono /opt/nbfc/nbfc.exe start -e
Could not load a  plugin which implements StagWare.FanControl.Plugins.IEmbeddedController

notebook fan control daemon might not be running. Can you verify with systemctl status nbfc?

 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, wasab said:

notebook fan control daemon might not be running. Can you verify with systemctl status nbfc?

 

here it is..
 

~$ systemctl status nbfc
● nbfc.service - NoteBook FanControl service
     Loaded: loaded (/etc/systemd/system/nbfc.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-09-03 22:07:17 IST; 2min 3s ago
    Process: 11830 ExecStart=/opt/nbfc/nbfcservice.sh start (code=exited, status=0/SUCCESS)
   Main PID: 11833 (mono)
      Tasks: 10 (limit: 6933)
     Memory: 26.1M
        CPU: 761ms
     CGroup: /system.slice/nbfc.service
             └─11833 /usr/bin/mono /usr/lib/mono/4.5/mono-service.exe -l:/run/nbfc.pid -m:NbfcService /o>

Sep 03 22:07:17 ANR2M9-3400 systemd[1]: Starting NoteBook FanControl service...
Sep 03 22:07:17 ANR2M9-3400 systemd[1]: nbfc.service: Can't open PID file /run/nbfc.pid (yet?) after sta>
Sep 03 22:07:17 ANR2M9-3400 systemd[1]: Started NoteBook FanControl service.
Sep 03 22:07:17 ANR2M9-3400 mono[11833]: NbfcService: Service NoteBookFanControlService started
lines 1-15/15 (END)

 

I guess the problem is with the plugin "StagWare.FanControl.Plugins.IEmbeddedController"

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, avneeshyewale said:

here it is..
 

~$ systemctl status nbfc
● nbfc.service - NoteBook FanControl service
     Loaded: loaded (/etc/systemd/system/nbfc.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-09-03 22:07:17 IST; 2min 3s ago
    Process: 11830 ExecStart=/opt/nbfc/nbfcservice.sh start (code=exited, status=0/SUCCESS)
   Main PID: 11833 (mono)
      Tasks: 10 (limit: 6933)
     Memory: 26.1M
        CPU: 761ms
     CGroup: /system.slice/nbfc.service
             └─11833 /usr/bin/mono /usr/lib/mono/4.5/mono-service.exe -l:/run/nbfc.pid -m:NbfcService /o>

Sep 03 22:07:17 ANR2M9-3400 systemd[1]: Starting NoteBook FanControl service...
Sep 03 22:07:17 ANR2M9-3400 systemd[1]: nbfc.service: Can't open PID file /run/nbfc.pid (yet?) after sta>
Sep 03 22:07:17 ANR2M9-3400 systemd[1]: Started NoteBook FanControl service.
Sep 03 22:07:17 ANR2M9-3400 mono[11833]: NbfcService: Service NoteBookFanControlService started
lines 1-15/15 (END)

 

I guess the problem is with the plugin "StagWare.FanControl.Plugins.IEmbeddedController"

seem to be some missing dependencies. This guide is almost 4 years old. pretty sure a lot of changes occurred since then. The latest merge to the projects master branch seems to be 4 years ago. i am not sure if this project is abandoned or not. I do see some active pull requests and open issues, however.

 

I can take a look sometime in the future. I got a new laptop and I plan to dual-boot ubuntu on it. I will release a new updated guide for the notebook fan control when i get the chance.  

 

Edit: seems like the original project is no longer maintained but forks of it exist and are under active maintenance. 

UraniumDonut/nbfc-revive: NoteBook FanControl (github.com)

I encourage you to clone the above repo because it is more likely to have the profile file that matches your specific laptop.

 

Also. from the arch wiki

Fan speed control - ArchWiki (archlinux.org)

you probably need to run

mv /opt/nbfc/Plugins/StagWare.Plugins.ECSysLinux.dll /opt/nbfc/Plugins/StagWare.Plugins.ECSysLinux.dll.old

like what the arch wiki suggests to fix your issue. Please read the full wiki page for details. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

Alternatively, you can get a large industrial fan from your local home improvement store and have it blowing on your naked laptop while you game.

 

Don't mind the noise... ITS ALL PART OF THE EXPERIENCE

 

LOL

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×