Please note that if you plan on using alfc
with a CPU other than the i7-10875H on something other than Windows 11, you would have to look up and set the PL1 and PL2 values in order not to possibly limit the performance of your CPU - e.g. tech powerup database. (alfc
will attempt to set those levels whenever it starts or you change them, using Intel XTU on Windows 10 and constraint_0_power_limit_uw
and constraint_1_power_limit_uw
on Linux. Windows 11 forbids using Intel XTU, at least for this. As far as I'm aware, there's no danger to setting those values too high, since CPUs won't consume more than a certain maximum, regardless of these values. Throttling is possible though!)
Model | Fan control | CPU limits tweaking | GPU boost |
---|---|---|---|
Aorus 15G | W10, W11, Linux | W10, Linux | W10, W11, Linux |
Aorus 15G XC | W10, Linux | W10, Linux | |
Aorus 15P XD | W10 | W10 | |
Aorus 15 FSB | W11 | ||
Aorus 5 SE4 | W11 | ||
Aero 15 SA | W10, W11, Linux |
Please submit a PR, an issue or send me an e-mail if you can confirm something that's not yet in the table.
GPU boost is likely to not work on models other than the 15G though because the way that is controlled is highly model-dependent.
- Web interface available @
http://localhost:5522
- Ramping up and down doesn't happen immediately, to prevent frequent fluctuations. (Ramping up happens quite quickly while ramping down requires the temperature to be lower for a while.)
- Fans are controlled as if they were one (since most heat pipes are shared). And so whatever is the higher target fan speed gets applied.
- Config is stored in
alfc.config.json
. If you prefer not to use the UI, you can edit this and restart the service to apply your changes. - Uses about
0.4%
CPU and500 mW
package power. (Measured in Windows at idle using hwinfo.)
See HERE.
If you want to use this to reduce noise, ensure that "USB Selective Suspend" is always enabled in your power plan! Having it disabled can cause significant CPU power consumption and thus drive temperatures up.
- Download the latest release and extract it to wherever you want to run it.
- Run
install.bat
. It takes about 20 seconds, the installer is not frozen. 😉 (In case you need to allow firewall access, you might find it interesting to know that the UI only responds to requests from your local machine.)
You can also simply run run.bat
from an admin command prompt to run the fan
control temporarily or to try it out before installing it as a service.
Once you either uninstall the tool or quit after running it using run.bat
, it
is recommended to reboot your machine to ensure that control is handed back to
either BIOS or Gigabyte's Control Center.
If that is something you're interested in, you need to do this:
- Install Intel XTU
- Extract the Control Center installer and copy
acpimof.dll
toC:\Windows\SysWOW64
, create a string value in the Registy atComputer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WmiAcpi
calledMofImagePath
that containsC:\Windows\SysWOW64\acpimof.dll
and reboot. (For more on this, see here)
If you want to keep using the color profiles:
- Extract the Control Center installer and install the ICM file for the color temperature you
want yourself. Unfortunately, I don't remember how I figured out the model name of the panel in the Aorus 15G (
color\P75\SHP14C5
).
sudo yarn start
- Frontend is available at port 3000.
In the direction frontend -> server, arguments are not provided as hex strings, since WMI uses named arguments and it is easier to strip this info and convert to a hex string for Linux.
On Windows, there is a service.log
file in the alfc root directory that might contain useful information.
A websocket went rogue once and kept sending status requests even though the UI wasn't open any more. Probably due to dev stuff with hot reload. Still - if a user ever experiences this, it can be resolved through running Resource Monitor as admin, finding what is connected to port 5522 and killing it.
Contributions welcome, as always. 🙂
- Make charge stop work. Based on
SmartManager.dll
, it's quite simple:cwmi.CallMethod("ROOT\\WMI", "GB_WMIACPI_Set", "SetChargeStop", array);
Yet,GetChargeStop
shows that the value set withSetChargeStop
doesn't stick. Does that feature even work? I don't have the Control Center installed any more and don't want to install it again...
On Linux, this might be possible like so. - Make ramping up/down times configurable.
- Prettier status UI.
- Using RGB lighting to highlight caps/num lock. There's something here for the Gigabyte Aero that could potentially be reused.
- Refactor styles so there aren't as many inline ones.
- Make it possible to supply decent service Name and Description, especially on Windows, where it
sticks out like a sore thumb. (Requires modifying
os-service
, since it currently uses the name one can supply also as the file name for Linux services, so spaces might be problematic.)