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

Port to Windows possible? #164

Open
symonxdd opened this issue Jun 26, 2023 · 6 comments
Open

Port to Windows possible? #164

symonxdd opened this issue Jun 26, 2023 · 6 comments

Comments

@symonxdd
Copy link

Hi!

This is rather an advice request, than an issue report. You haven't been active on Twitter since months and neither do you have an email in your bio, so I thought I'd have higher chances posting here!

I'd like to ask how you went about making this app? I mean, how did you know the exact code instructions for the list of compatible msi models in the README?

I for a fact own a GS66 10SE. How would I go about implementing the compatibility for my model? Also I'm a Windows guy, would it be straightforward to port it to Windows?

Thanks!

@Alcartez
Copy link

Alcartez commented Jun 30, 2023

Try dualbooting your preferred distro using an external hdd or flashdrive.

@ThibaultLemaire
Copy link

ThibaultLemaire commented Jul 19, 2023

This script reads/writes from/to the /sys/kernel/debug/ec/ec0/io file-like object exposed by the ec_sys linux kernel module.

I doubt that qualifies it for a "straight-forward" port to windows.

@symonxdd
Copy link
Author

Thanks for replying!

How did you figure out what file / module needs to be accessed / modified to be able to change the fan speeds?

How did you start with this project? Because the official Dragon Center software is Windows only, right?

Would you know where I could start being on Windows?

@ThibaultLemaire
Copy link

I'm not a contributor here. I just came to change my battery charge threshold. So what I'm gonna tell you is only gathered from poking at the source code for an hour.

The file-like path as well as the ec_sys kernel module I mentioned above can both be easily found in the source code. By level 60 of linux savviness, I'd say, this is stuff you're familiar with, and by level 70 that's exactly what you'd expect of a program configuring hardware settings.

These EC (Embedded Controller) mappings are probably a small area of flash memory on the motherboard that the kernel exposes as a file-like object that you can read and write binary data from and to. The kernel has no clue what those values mean (this is what this project is trying to reverse engineer) it's just passing them along.

If I were to take a guess, I'd say @YoCodingMonster used the Dragon Center on a windows dual-boot to set one setting at a time, then went back to linux to figure out which bytes changed. At least that's how I'd do it.

As for accessing the EC memory on Windows... I'm sorry but you're on your own, pal :)

@symonxdd
Copy link
Author

Thank you very much for the explanation! I understand it better now. I'll try to research a little and see if I can move forward.

@YoCodingMonster
Copy link
Owner

You can use software to read EC Bytes in real-time in windows itself

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