Replies: 16 comments 82 replies
-
|
For majority of devices you support you can get rid of kernel driver and use only WMI, but only for Generation 2 devices, which MSI call WMI2 |
Beta Was this translation helpful? Give feedback.
-
|
Oh, this was a bit unexpected. Hello! I actually already had a look at the MSI EC project before, that's how I implemented the Fan Mode feature. But thanks for the links, I will be looking at them again at some point.
I have absolutely no idea how to call WMI for MSI laptops, or if the temperature thresholds (as far as I can tell, a unique feature to YAMDCC) are even supported via WMI. If you have more information, please reply. EDIT: Knowing how to read/write the EC using WMI would be very beneficial to this project, as the current way it is done is through a kernel driver (as you pointed out). This works, but comes with stability issues that I haven't been able to fix that manifest as anything from the fan profile not applying correctly (mainly after waking from sleep), to the battery state exhibiting various issues (laptop thinking it has no battery installed, thinking it is plugged in when it is not, and even registering as having >100% charge when checked with BatteryInfoView), to disabling the fans entirely (the latter two cases require an EC reset). I wish I had screenshots for some of these, because all of the above have happened from my personal usage of YAMDCC. Also, there's the fact that Microsoft recently decided that WinRing0 was insecure enough to the point of blocking it with Windows Defender (and likely other antiviruses picked up on this as well), despite my... borrowed workaround. |
Beta Was this translation helpful? Give feedback.
-
|
WMI is mapped to next addresses (check pics). Map is sourced from DSDT tables of some devices. For calling WMI on MSI laptops you need to install Sadly, not all addresses are mapped on older WMI1 devices.
Also:
|
Beta Was this translation helpful? Give feedback.
-
|
As Linux GUI we use MControlCenter, which is currently being updated https://github.com/dmitry-s93/MControlCenter |
Beta Was this translation helpful? Give feedback.
-
|
About battery issues you've mentioned - not sure what you trying to write, or what is really being written, because last time I experimented with Windows, I had ability to only write 4 byte blocks, which is dumb and unsafe. |
Beta Was this translation helpful? Give feedback.
-
|
What I meant is that I think my EC access conflicts with the OS's EC access (i.e. a race condition). Basically if my service accesses the EC at the same time as the OS does, my service may end up inadvertently writing to the wrong EC register, for example. But that's just a theory. I agree that is is probably unsafe, but it's the only way I can achieve EC access currently*. *was typing on phone and accidentally closed the issue... |
Beta Was this translation helpful? Give feedback.
-
|
Laptops have keyboard backlight register, and devices with RGB keyboards should have disabled backlight regulator logic. For long time I had question - why this happens. But then I discovered that few devices under same EC name might have single- and RGB colored backlight. For mute leds - you probably can subscribe to Windows audio stack issues and write to led bits. On Linux we have problem, because audio stack often don't mark sound device as primary, so kernel don't monitor it's state. |
Beta Was this translation helpful? Give feedback.
-
|
Have you seen reddit post with "check backdoor" function? EC is accessible not only through EC calls, but it's mapped to system memory space, which you can read/write on Linux and Windows (highly unsafe, but used you know where). |
Beta Was this translation helpful? Give feedback.
-
|
If you've used ImHex you can try to use my patterns, which maps dump to WMI-like arrays https://github.com/glpnk/hexpats |
Beta Was this translation helpful? Give feedback.
-
|
Would be fun if you implement WMI events. You need to enable events with some bit and subscribe to events class |
Beta Was this translation helpful? Give feedback.
-
|
Okay, sorry for the delay in replying. This will be a long one.
Do you know which laptops use WMI1 specifically? Is it all the old pre-10th-gen Intel laptops, or even older than that?
I have heard of this project before (it's even linked somewhere as an alternative for Linux users).
Yes, this is how I control keyboard backlight through YAMDCC. Currently I don't detect which laptops have this functionality (well, I sort of do, but it could be better), but it appears that the MSB of register
I can look into this at some point if I have time.
I have not heard of this function, and I've decompiled Feature Manager (basically MSI Center for the Turkish, who have stricter privacy/data collection laws) to try to understand the GPU switch feature.
I don't. (...you're not talking about YAMDCC, are you??)
I haven't used ImHex (HxD is my current hex editor).
Not sure what they would be useful for (note to self: look at the WMI mappings again lol) |
Beta Was this translation helpful? Give feedback.
-
|
Okay, I had a look at the full decompiled MOF table. Assuming I can get WMI access working, would it be OK for me to incorporate those MOF definitions into YAMDCC directly? I can give @Wer-Wolf and/or the msi-ec team a shoutout in a special thanks section of some description (README/in-app?) Also, do those MOF definitions work on both WMI1 and WMI2 laptops? Or do I need a separate one for WMI1 and WMI2 laptops? |
Beta Was this translation helpful? Give feedback.
-
|
You've dig into UEFI variables. One of them is intended for persistence of settings after reboot. It is "MsiDCVarData". But I've only found how to swap win-fn and (un)hide this option from bios |
Beta Was this translation helpful? Give feedback.
-
|
MSI center S isn't exclusive to WMI2-S devices, but supports regular WMI2 BeardOverflow/msi-ec#311 (comment) |
Beta Was this translation helpful? Give feedback.
-
|
@Sparronator9999 Hi, can you add ASCII preview to dump for I will mention this method in msi-ec guide |
Beta Was this translation helpful? Give feedback.
-
|
@Sparronator9999 hi, pls reply in matrix |
Beta Was this translation helpful? Give feedback.



Uh oh!
There was an error while loading. Please reload this page.
-
We have bunch of research data which might help you:
List of supported devices with linked issues:
Beta Was this translation helpful? Give feedback.
All reactions