Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSI Laptop fan control Feature Request #2177

Closed
Destroyarr opened this issue Dec 6, 2023 · 7 comments
Closed

MSI Laptop fan control Feature Request #2177

Destroyarr opened this issue Dec 6, 2023 · 7 comments

Comments

@Destroyarr
Copy link

Destroyarr commented Dec 6, 2023

This is a MSI Laptop fan control Feature Request

I can do some debugging from the official app to capture the signals sent to motherboard.
Or better find id in the Linux source code.

Describe the bug
[A clear and concise description of what the bug is. Screenshots are worth a thousand words. Hardware support requests do NOT count as a bug. See https://github.com/Rem0o/FanControl.Releases#issues-and-hardware-compatibility.]

Is there a log.txt file next to FanControl.exe with recent date entries?
[Link it here]

Relevant hardware specs and setup
[Laptops and most proprietary pre-built desktops are not supported.]

@Rem0o
Copy link
Owner

Rem0o commented Dec 6, 2023

Source code for actual low-level fan control code is here https://github.com/LibreHardwareMonitor/LibreHardwareMonitor.

You can open a branch/PR and develop support in there. FanControl will then pick it up.

@Rem0o Rem0o closed this as completed Dec 6, 2023
@Twisted6
Copy link

Please save us MSI laptop owners from this hell. I'm having to play games at 30fps just to keep the fans below 6000 rpm :')

@Destroyarr
Copy link
Author

@Twisted6 @Rem0o
LibreHardwareMonitor/LibreHardwareMonitor#1314

Requsted many MSI laptops with FAN type 3

If you know where we can copy source code or which DLL file controls the fans, please let us know 👍😁

@Rem0o
Copy link
Owner

Rem0o commented Apr 17, 2024

@Destroyarr I like your enthusiasm, but a bunch of compiled dlls from various sources won't get you far if nothing tells you how to use them.

@Destroyarr
Copy link
Author

Destroyarr commented Apr 17, 2024

There is addresses on which we talk to the EC this data can be reverse-engineered easily with debugger tools basically havent tried Ghidra. This is pretty cool due to the visual representation of the code which is very helpful and makes things easy.

This is evident from the Linux msi-ec.c driver.

As well as the nbfc documentation which shows how to do it manually with RW-Everything tool.

Pretty cool stuff this EC also this EC can deviate from optimal settings and persist bugs across cold reboots and reinstalls on some systems so we press and hold power and/or reset on some machines sometimes. And use vendor tools (like the attached driver, service, power management driver, ) that talk to these EC to fix some functions if they get stuck.

Also useful for OC/ undervolt.

So very very interesting all around.

And even if we make use of the MSI driver/service we can make a plugin like that ASUS WMI plugin, right? That's also a pretty cool option but talking directly to the EC is ultimately the coolest.

@Rem0o So having basic idea what to look for + looking for it with the debug tools, will get you what you need to make your own version. How to look for it with the debug tools - there are tutorials how to use them on youtube and probably on frostwire too I havent used that one.

@BletaJonatan
Copy link

i'm not smart and i'm not a good developer but could you look at:
https://github.com/kykc/MsiFanControl
https://github.com/Microsoft/Windows-driver-samples/tree/main/wmi/wmiacpi
maybe it could help you :)

@Destroyarr
Copy link
Author

Ideally I will find a way to capture the exact bytes sent to where to the motherboard - to some memory address defined by some driver?

  • to switch between the power modes
  • to control the fan curves
  • anything else of interest from official app sent to MB.

So far I havent found an accessible way for me to do that. Especially given its not related to my day job. And the burden of RL.

May someone else pickup the olympic torch for the time being.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants