kykc / MsiFanControl

Fan control utility for MSI laptops
MIT License
37 stars 8 forks source link

Linux support #9

Open Xieyt opened 5 years ago

Xieyt commented 5 years ago

Hello I am new to all this.Can plzz port it to linux or guide me how to do it .I am just a student and not able to use linux in msi .. thanks

kykc commented 5 years ago

Sadly, this is rather involved process, as MSI uses WMI (Windows Instrumentation) to communicate with ACPI and control fans. It's almost surely can be done on linux too, but it wouldn't be an easy thing to do. Some info can be found here: https://wiki.ubuntu.com/Kernel/Reference/WMI Also it seems that acpica-tools ubuntu package has some tools to manipulate ACPI tables. Maybe someday I'll do something more, but as for now I do not have enough spare time, sorry

kykc commented 5 years ago

The thing that I can possibly do is try to migrate this repo to .NET Core 2.x, this shouldn't be too involved and will be some start towards portability

KaKi87 commented 4 years ago

+1 for Linux support, I didn't dare asking because I figured out the project is Windows-dependant, but it would be very nice : I have a dual boot, and everytime I choose Linux in GRUB, the first thing I think about is "from this moment I pressed Enter, my laptop will start overheating all day". Thanks

kykc commented 4 years ago

Sadly, free time is still a problem for me. I'll try to port it to .net core at least.

Also, I don't think fan control will solve your overheating issues. MSI laptops usually have rather aggressive fan policy by default, and I've used this utility to actually reduce fan speeds to make my laptop more quiet. As for temperature issues, that's sadly rather generic problem with modern desktop linux - it sucks in terms of power efficiency. I also have dual boot on my laptop, and under the same load linux looses to windows in terms of battery life/fan noise/temperature. Of course this could be investigated, how frequencies/voltages of CPU are managed, does discrete GPU got suspended when it's not used, etc. But that's beyond the scope of this simple utility, just thinking out loud.

KaKi87 commented 4 years ago

MSI laptops usually have rather aggressive fan policy by default, and I've used this utility to actually reduce fan speeds to make my laptop more quiet

Well, on the contrary, noise isn't a problem for me since I always work with headphones.

I don't think fan control will solve your overheating issues

Actually, it does. Forcing fan speed to 100% on Windows prevents my CPU temperature to exceed 40°C

I however think that the root cause is that my computer is a WS60-IQJ aka. one of the few consumer laptops equipped with server hardware, e.g. Intel Xeon CPU 😂

As for temperature issues, that's sadly rather generic problem with modern desktop linux - it sucks in terms of power efficiency.

Oh really ?

under the same load linux looses to windows in terms of battery life/fan noise/temperature

This is disappointing since Linux is supposed to be the symbol of sustainable development... 🙄

kykc commented 4 years ago

Actually, it does. Forcing fan speed to 100% on Windows prevents my CPU temperature to exceed 40°C

I however think that the root cause is that my computer is a WS60-IQJ aka. one of the few consumer laptops equipped with server hardware, e.g. Intel Xeon CPU 😂

OK, got your point. My situation was different as the main problem in my case was desktop version of nvidia gtx1060 GPU.

This is disappointing since Linux is supposed to be the symbol of sustainable development... 🙄

Totally agree, but my experience so far was like this.

As I've expected porting the executable to .net core 2.2 is almost effortless, I've just needed to figure out a few dependencies and write a correct project file: https://github.com/kykc/MsiFanControl/blob/migrate-to-dotnet-core/MsiFanControlCore/MsiFanControlCore.csproj

I'll try to dig something about WMI and linux.

KaKi87 commented 4 years ago

Thanks !

KaKi87 commented 4 years ago

Hello, any news on this ? Thanks !

Xieyt commented 4 years ago

@KaKi87 after so much digging out. I found that someone has made it for linux. Maybe you should give it a try https://github.com/YoyPa/isw

KaKi87 commented 4 years ago

It's interesting, but it doesn't seem very easy to use 😅

KaKi87 commented 2 years ago

Hello, I would like to report that the isw project is not maintained and doesn't seem to support my device. Thanks

feelingwalnut commented 2 years ago

Hello, I would like to report that the isw project is not maintained and doesn't seem to support my device. Thanks

that project has active forks with minor commits as recent as days ago, they may still not support your device. at a minimum it shows the project is still relevant.

KaKi87 commented 2 years ago

I found said fork, and even thought it would replace the main project, but turns out it was created only to add suppport for a single other device, which means the owner doesn't want to become a maintainer.

feelingwalnut commented 2 years ago

I found said fork, and even thought it would replace the main project, but turns out it was created only to add suppport for a single other device, which means the owner doesn't want to become a maintainer.

look at some of the forks that added device support and see how it is done. I have so many other issues with linux running smoothly on my MSI laptop that i've not sat and tried to find the fan addesses to try and add support for it. but it doesnt appear to require "coding" on first glance, just marking addresses and changes and noting them in the config file. I believe this may be helpful to see how linux handles the fan speeds on each device. https://github.com/YoyPa/isw/issues/247

KaKi87 commented 2 years ago

Well, unless there's a proper tutorial explaining how to do it, from beggining to end, starting with the meaning of "EC", then I won't be able to do it.

feelingwalnut commented 2 years ago

this project is active. it at least supports my gf63. https://github.com/YoCodingMonster/OpenFreezeCenter