Replies: 43 comments
-
|
Looks nice I would add it in snippets |
Beta Was this translation helpful? Give feedback.
-
|
Weirdly for me fans are auto managed, if temps goes higher fan boost itself without and manual systemd service |
Beta Was this translation helpful? Give feedback.
-
|
It's managed from bios, but it's not good enough 🙂 I've created a new branch and I'm planning to rewrite this in C. |
Beta Was this translation helpful? Give feedback.
-
|
The current workarounds seem limited (only 3 boost levels for example) or dangerous (lm-sensors can damage the hardware with wrong usage): https://wiki.archlinux.org/title/Fan_speed_control#Dell_laptops autoboost will be safe and flexible, just an automation of awcc boost control functionality. |
Beta Was this translation helpful? Give feedback.
-
Well Thats awesome i could add cpu and gpu temps and fans rpm fetching in awcc itself as there are acpi calls for them too |
Beta Was this translation helpful? Give feedback.
-
|
That's great! I think my progress will be slow for the C part, I'm busy now, you can wait until I rewrite this in C and then help with acpi calls. I don't want you to do the acpi part and wait for me )) I've also added 10s delay before downboosting. Seems it's ready to be rewritten in C. This is what goings on: https://chatgpt.com/share/6851194a-5000-8013-bfb7-a78ea86cdc30 |
Beta Was this translation helpful? Give feedback.
-
|
I've added a systemd unit file, can you try and it? Does the current algorithm work well? |
Beta Was this translation helpful? Give feedback.
-
|
@GasparVardanyan could you add a dry run flag? which would only show what changes it would make ? not actually execute them |
Beta Was this translation helpful? Give feedback.
-
|
Done. Now you can run script like sudo ./awcc_autoboost.sh dry. It will print the awcc scb and sgb commands instead of actually running them. I can't avoid sudo because it needs for qm. Also logging to /var/run/awcc is kept running, I think you don't have problem with it. |
Beta Was this translation helpful? Give feedback.
-
|
I think it will be cool to give an option in configuration to switch modes too. |
Beta Was this translation helpful? Give feedback.
-
|
I want to have the full picture what config file will look like to start implementing the basic stuff. |
Beta Was this translation helpful? Give feedback.
-
|
We use 0xA1 for "Performance" mode in ACPI calls, but according to kernel.org it's the "Balanced Performance" mode, and there's a separate "Performance" mode 0xA4: https://docs.kernel.org/wmi/devices/alienware-wmi.html |
Beta Was this translation helpful? Give feedback.
-
I think a bash daemon would be better than c? cuz its just a serivce right? dosent matter if its c and ig bash would be better as we could skip complexity |
Beta Was this translation helpful? Give feedback.
-
I was thinking that of too with gui |
Beta Was this translation helpful? Give feedback.
-
Just noticed that But oddly 0xA1 is the performance mode as i have experienced #!/bin/bash
c(){ echo "$1" | sudo tee /proc/acpi/call >/dev/null && sudo cat /proc/acpi/call;echo;}
for mode in 0xa{0..9} 0xa{a..b}
do
echo "Trying mode ${mode}"
echo "\_SB.AMWW.WMAX 0 0x15 {0x01, ${mode}, 0x00, 0x00}"
c "\_SB.AMWW.WMAX 0 0x15 {0x01, ${mode}, 0x00, 0x00}"
done
echo "Reverting to balanced."
c "\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa0, 0x00, 0x00}"you could run this and see it on your own if you get any difference b/w 0xA1 and 0xA4 Gmode replaces performance mode is about platform profiles i suppose In kernel docs |
Beta Was this translation helpful? Give feedback.
-
|
@GasparVardanyan I reviewed and compiled it myself
Idk if this is correct but i hope this is how it works IF your cpu boost is 20% it means it would take ur current cpu fan rpm and add 20% of total rpm to it (cuz i have noticed my fan goes to full speed at 50% boost
Ex: Saying me to get to 60% boost while dell itself dont turn on fans at 65+ ( i know you could manually configure them but we have to still get close default values)
I would try to reverse engineer windows' awcc to see if we could get some resource neither we have to work on assumptions The code looks good to me turn out to be great |
Beta Was this translation helpful? Give feedback.
-
That's weird. I've tested this: enum AWCCMode_t modes [] = {
AWCCModeQuiet,
AWCCModeBatterySaver,
AWCCModeBalanced,
AWCCModePerformance,
AWCCModeG,
};
for (size_t i = 0; i < sizeof (modes) / sizeof (* modes); i++) {
AWCC.SetMode (modes [i]);
const enum AWCCMode_t mode = AWCC.GetMode ();
assert (mode == modes [i]);
printf ("::: Current Mode: %s\n", AWCC.GetModeName (mode));
system ("awcc qm");
thrd_sleep (& (struct timespec) {.tv_sec = 2}, NULL);
}and the output was:
But nothing changes when I exectue awcc scb 20 multiple times. I think "boost" works like 'level of additional power'.
That's from the default config: AWCCConfig.c. I'll work on config file support so you can set these values without recompiling awcc.
Do modes e.g. Balanced, Performance differ just in fan speed control? If not, don't we need to have customizable boost levels available with these modes? Currently we have separate boost levels and modes for different temperature ranges. For mode I take maximum value of temperatures of cpu and gpu and then select the appropriate mode based on the config.
Can I help you with this? I have saved my windows partitions on a separate hard drive with dd, so I have dell's official software for my device, but I don't have a bootable windows available. The final goal for boost/mode management is to have a central place to do the acpi calls: the daemon, but for now I can edit awcc's main.c to use autoboost's AWCC.h interface so we can easily identify bugs if any. Also after this it'll be easier to integrate the light management to AWCC.h, it's flexible, it read's a value and set's a value, then you decide you want to just print it or do something else. |
Beta Was this translation helpful? Give feedback.
-
I figured it out. Because seems you use DRY_RUN:
SetMode doesn't actually change the mode, and GetMode returns the actual mode. After it GetModeName works according to the actual current mode. |
Beta Was this translation helpful? Give feedback.
-
|
I've added logging on /var/run/awcc |
Beta Was this translation helpful? Give feedback.
-
|
@GasparVardanyan do you happen to have a discord account if yes we could connect there im tr1x_em at discord Or matrix |
Beta Was this translation helpful? Give feedback.
-
|
Here are my values for boost levels At Boost = 0% (It goes to 0 rpm if temp are under 60) 10% Boost = 1330 RPM GMODE = 5100 RPM |
Beta Was this translation helpful? Give feedback.
-
The thing i was talking about |
Beta Was this translation helpful? Give feedback.
-
It does more than that as if you see in quite mode ur gpu is locked to 30watt it manages power and diff stuffs too
Thanks but i have dell's offical software installed too
yup thats great i would add A device identifier this sunday if you merge it so that we could modify it for diff devices Eg: Suppose i get performance mode but u dont so we could remove that map if device found, i quite like your approach honestly making it a like a library Still have to figure out why lights are bugged in your model and "GUI" a lots of todo lol |
Beta Was this translation helpful? Give feedback.
-
|
Ok, I'll work on merging. I've sent you a friend request on discord |
Beta Was this translation helpful? Give feedback.
-
|
I would be working on device identifiers and lights |
Beta Was this translation helpful? Give feedback.
-
|
Now we have an intelligent boost down mechanism 🙂 |
Beta Was this translation helpful? Give feedback.
-
|
Hi, is the auto fan boost still actively being worked on? Appreciate your work. |
Beta Was this translation helpful? Give feedback.
-
|
@Bdem1rel https://github.com/tr1xem/AWCC/tree/main/autoboost u can build it and test it works for me and gaspar |
Beta Was this translation helpful? Give feedback.
-
|
Hi! Current state is good enough, but things get complicated and I started rewriting it in a better, flexible way. Not ready yet. |
Beta Was this translation helpful? Give feedback.
-
|
@Bdem1rel Autoboost if merged into main its working and is stable |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
With help of AI I created a script to control fan boost based on cpu/gpu temperatures:
auto_fan.conf:
I don't make a pull request because I want to write it in C, but have no enough time right now.
Just wanted to share this script, and maybe someone will have a time to rewrite in C or review the code 🙂.
Would be nice to have a systemd unit with fan management.
The ChatGPT conversation: https://chatgpt.com/share/6851194a-5000-8013-bfb7-a78ea86cdc30
Beta Was this translation helpful? Give feedback.
All reactions