-
Notifications
You must be signed in to change notification settings - Fork 69
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
Indicator only controls one fan #27
Comments
The embedded controller has some debug descriptors at There is a tool that can be used to read them here: |
This is how I have done it for Clevo NH55RDQ and its two fans. Just call function ec_write_fan_duty twice but use different values for the fan number. Like:
Works like a charm. For reading also twice, e.g. for Clevo NH55RDQ
|
@deebfeast can you share your clevo-indicator.c if you still have it. I tried your solution but I don't think I'm doing it right. |
Of course. See attachment. For me e.g. |
I included part of your code into my script but it still only controls 1 fan (left). Would you mind trying mine and see if you have the same result please. |
Here you seem to still fix the fan number on 0x01. Diff:
|
@deebfeast I made the changes and it compiled just fine but is still controlling only one fan. I was thinking of maybe just running the indicator for the second fan alone and two clevo-indicators for each fan but I can't seem to figure out how to do that either. |
Do you have the same model, Clevo NH55RDQ? Perhaps things have changed. You do see the second RPM when you run command "clevo-indicator -?" ? Some other remarks for Linux and Clevo, although you might know already:
|
I have a different Clevo model with Nvidia RTX 2060. I doubt the second fan is controlled by Nvidia. I tried other Nvidia fan controllers and they don't seem to work. This is what I get when I run your script Simple fan control utility for Clevo laptops I wonder if there is a way for me to detect the second fan. |
Try first without the GUI. Just run it clevo-indicator 20 The output should list both fans speeds as it's read again (might take a second to kick in). |
You are right, I got it to work. Now both fans are detected when running from terminal. Simple fan control utility for Clevo laptops Dump fan information Do you have an idea how to make it work with the indicator? Also, thank a million for all of your help |
Yes, I've not finished that part, although it does work -- just not under all conditions. It's that bit of code in function ec_auto_duty_adjust. There the switching points are defined and I'm sure it could be improved. When I start with setting duty on 20 in the widget and then on auto it seems okay though. But I think it still needs improving a bit with all the thresholds or perhaps initial value somewhere. |
@deebfeast If you figure out how to do it, please let me know and I will buy you a beer/coffee/lunch. |
Seems okay for me if I start the indicator for the task bar. Note I changed the string to only show one temperature indicator in my source. Also check out that line "if (val < 40 || val > 100)" and change it to allow lower values, like 10 or 20 as well. You might still want to fine tune the levels in the following block. First when to go level up, second part is when to level down. This way you can find a reasonable setting for your usage pattern. I'd advice to have the fans really bring it down to under 60 or even 55 during use.
|
@deebfeast I just tried your script and the indicator still only controls only one fan. Only when running from the terminal it (clevo-indicator 20) it picks up both fans. Can you PM by any chance? My email is on my profile. |
Hey guys, I have a Clevo NB50TH and I have the same problems. Simple fan control utility for Clevo laptops Dump fan information Could you help me? |
This is the slightly improved code I'm running since last year without issues. I did hear from someone else a small issue with reacting too soon on brief temperature spikes on some models. So some delay would have to be added to prevent the whirring without need. However it's possible some models use different registers for the fans. In other words you need to find out those values from a source of from painstakingly monitoring using SMBIOS. These are the needed values #define EC_REG_FA2_DUTY 0xCF |
Tried your code but nothing change. |
Looks some things have changed. The initial fan duty number comes from EC_REG_FAN_DUTY and EC_REG_FA2_DUTY (for second fan. So like I said your case sounds you need to find another number for 0xCF. In your case some strange number comes back and the program is not filtering that value right now but uses it as base. Here's a comment from : https://www.techinferno.com/index.php?/topic/10746-software-mod-linux-fan-control-for-clevo-p775dm3/
That's another possibility that it might only be filled with a proper value under certain circumstances. My Linux box runs in Intel mode with Nvidia-on-demand feature. |
Any tips on how to find this value? I've researched a lot but I still haven't found much information. |
Sure, this is my road as I started with nfbc a tool used for my last laptop (but doesn't do Clevo)
The reason I switched to clevo_indicator and not nbfc tool is that Clevo chip is using a common port EC_SC 0x66 (in my model) to which is sent the port and value in sequence to set. Alternatively try to find in Google anything on 0x66, clevo, EC 8587 chip or anything in that direction. It's also possible the NVIDIA somehow controls this fan entirely in your setup somehow and the value is ignored. |
I found out if I click fn+1, my notebook turn both fans on at 100%. And with your script, I can slow down theirs speed. This is enough for me for awhile. Thanks for your help! |
Hey that fn+1 combination does same for me! Until my clevo-indicator on AUTO kicks in. It's indeed in the manual, a toggle key for auto on/off. I suppose in default mode the bios overrides at least one of the fans. Might depend on all kinds of variables, BIOS setting or driver. For other seekers I'll put the key page below as PDF. |
It works good ~ Thank you very much!!! |
On my
P7xxDM2(-G)
(according todmidecode -t baseboard
) there are two fans.I am only able to control the one on the left.
Is there another hardware register than can be manipulated to control the other fan? How did you manage to find the address?
The text was updated successfully, but these errors were encountered: