TL;DR If you have an ASUS ROG Strix X570-i Gaming motherboard (or similar) and are having issues with a constant high-pitched fan noise, try the instructions here to enable ASPM and then these instructions to alter the fan curve.
A very niche post, but here it is.
I recently flashed the latest BIOS on my motherboard. It all went fine, but then the sound was back again. I'd completely wiped it from my memory, the huge saga that I went through when I first got the board. The chipset runs real hot, and the fan runs real loud.
I'd fixed it before, so now I'm just writing it up for next time, or for anyone else who's having the same issue. I make no guarantees that you won't brick your motherboard, but I've done this twice now and it's been fine.
Step 1: Enable ASPM.
Using information from this Reddit post, follow the steps below:
- Download this boot file: bootx64.efi
- FAT32 format a USB drive and create a folder
/efi/boot
.
- Put the file in the
boot
folder.
- Restart your PC and boot from the USB drive from your BIOS.
- You will get a GRUB screen and a command prompt.
- Type
setup_var 170 37
and press enter.
- Power off and restart Windows.
- Check HWiNFO64 and search for ASPM settings.
- It should say L1 Entry instead of disabled.
To reset back to default:
- Do the same kind of thing until you get to the GRUB cli.
- type
setup_var 170 00
and press enter.
- Reboot.
Step 2: Tweak the fan curve.
Using instructions from this Reddit post, follow these steps:
- Download modGRUBShell.efi and put it in
/efi/boot
on your USB drive.
- Delete
bootx64.efi
and rename modGRUBShell.efi
to bootx64.efi
. (They may actually do the same thing, but I'm not sure. Better safe than sorry.)
- Boot from the USB drive and you'll get a GRUB screen and a command prompt.
- Type
setup_var_cv QFan 0x3a
and press enter. You should see offset 0x3a is: 0x3c
which means the PCH Fan Middle Temperature is set to 60 degrees. If it doesn't say this, go back to the Reddit post and do "Phase 1: Getting the correct variable offset for your BIOS".
- Type
setup_var_cv QFan 0x3a 0x01 0x50
and press enter. This sets the fan curve to 80 degrees, which means it will wait until the chipset is 80 degrees before it starts ramping up the fan speed. (You can also try 0x55 for the final value to set it to 85 degrees).
- Reboot and you should be golden.
Note: Use LibreHardwareMonitor to get the real chipset temperature and fan speed.
That's it. Remember, I'm not responsible if you enter the wrong values and your motherboard explodes.
Enjoy the quiet!