-
-
Notifications
You must be signed in to change notification settings - Fork 23
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
Problem with fan2go fan init on Dell Inspiron 5370 #161
Comments
Did you wait for the fan curve measurement to finish? I just checked the code for the log output of the PWM settings and its really odd that you get a value of |
Output after doing a "fan reset": Log (expand)
It looks like this laptop's fan can only be set to three states using lm-sensors. Maybe that is affecting fan2go?
Output from fan init (verbose, color and style flags don't seem to have any effect):
(edit: here's the YAML config for fans, sensors, curves). I lowered the max temp to 65 degrees to try and (safely) trigger the maxPWM, but it doesn't kick in if a start a stress test...)
|
I found an issue with the config overrides for the pwm values not beeing applied correctly, I am working on a fix for that, so thx for making me aware 🤓 However, I don't think this will help you much because of the "three steps" you discovered. PS: I think you have a typo in the input range here:
|
Actually, now that I think about it, it might still work, but only for those three fan speeds. |
The fan curve measurement looks like nonesense to me. I guess something is still also controlling fan speeds, in a more precise way, even if you change between those 3 speeds though lm-sensors. You might be able to overcome this with the pwm overrides in the config though. I have merged the fix and you should be able to update immediately and retest. |
Ah, good that you've found something! I think you're right regarding "fan mode". I used to use i8kutils before the kernel change deprecated the /proc/i8k interface. I think that was the same. Using a userspace fan control is still beneficial though, as the BIOS fan control on this Dell Inspiron doesn't kick in until the CPU is at ~75 degrees! Fan is off before that point... |
Pulled the changes and now fan2go now shows my maxPwd of 195 during initialisation (thanks), but I still can't get it to react to CPU temperature changes. E.g. For the following configuration (and initial conditions cpu temp 30 degrees, BIOS fan control disabled, fan rpm 0)...
... I was expecting fan2go to set RPM to 0 when entering its "controller loop" (as CPU temp is less than min curve temp). fan2go sets the PWM to 128 on entering its "controller loop" (or maybe the PWM 128 value set during initialisation doesn't get changed???). Performing a stress test still doesn't trigger the max PWM at 65 degrees... Running Any thoughts? New log of sudo fan2go -v (for completeness). Can we get some debug after fan2go enters its "controller loop"?: New Log (expand)``` INFO: Using configuration file at: /etc/fan2go/fan2go.yaml INFO: Gathering sensor data for cpu... INFO: Loading fan curve data for fan 'cpu'... WARNING: Fan 'cpu' has not yet been analyzed, starting initialization sequence... INFO: Computing pwm map... DEBUG: Setting Fan PWM of 'cpu' to 255 ... DEBUG: Setting Fan PWM of 'cpu' to 254 ... DEBUG: Setting Fan PWM of 'cpu' to 253 ... DEBUG: Setting Fan PWM of 'cpu' to 252 ... DEBUG: Setting Fan PWM of 'cpu' to 251 ... DEBUG: Setting Fan PWM of 'cpu' to 250 ... DEBUG: Setting Fan PWM of 'cpu' to 249 ... DEBUG: Setting Fan PWM of 'cpu' to 248 ... DEBUG: Setting Fan PWM of 'cpu' to 247 ... DEBUG: Setting Fan PWM of 'cpu' to 246 ... DEBUG: Setting Fan PWM of 'cpu' to 245 ... DEBUG: Setting Fan PWM of 'cpu' to 244 ... DEBUG: Setting Fan PWM of 'cpu' to 243 ... DEBUG: Setting Fan PWM of 'cpu' to 242 ... DEBUG: Setting Fan PWM of 'cpu' to 241 ... DEBUG: Setting Fan PWM of 'cpu' to 240 ... DEBUG: Setting Fan PWM of 'cpu' to 239 ... DEBUG: Setting Fan PWM of 'cpu' to 238 ... DEBUG: Setting Fan PWM of 'cpu' to 237 ... DEBUG: Setting Fan PWM of 'cpu' to 236 ... DEBUG: Setting Fan PWM of 'cpu' to 235 ... DEBUG: Setting Fan PWM of 'cpu' to 234 ... DEBUG: Setting Fan PWM of 'cpu' to 233 ... DEBUG: Setting Fan PWM of 'cpu' to 232 ... DEBUG: Setting Fan PWM of 'cpu' to 231 ... DEBUG: Setting Fan PWM of 'cpu' to 230 ... DEBUG: Setting Fan PWM of 'cpu' to 229 ... DEBUG: Setting Fan PWM of 'cpu' to 228 ... DEBUG: Setting Fan PWM of 'cpu' to 227 ... DEBUG: Setting Fan PWM of 'cpu' to 226 ... DEBUG: Setting Fan PWM of 'cpu' to 225 ... DEBUG: Setting Fan PWM of 'cpu' to 224 ... DEBUG: Setting Fan PWM of 'cpu' to 223 ... DEBUG: Setting Fan PWM of 'cpu' to 222 ... DEBUG: Setting Fan PWM of 'cpu' to 221 ... DEBUG: Setting Fan PWM of 'cpu' to 220 ... DEBUG: Setting Fan PWM of 'cpu' to 219 ... DEBUG: Setting Fan PWM of 'cpu' to 218 ... DEBUG: Setting Fan PWM of 'cpu' to 217 ... DEBUG: Setting Fan PWM of 'cpu' to 216 ... DEBUG: Setting Fan PWM of 'cpu' to 215 ... DEBUG: Setting Fan PWM of 'cpu' to 214 ... DEBUG: Setting Fan PWM of 'cpu' to 213 ... DEBUG: Setting Fan PWM of 'cpu' to 212 ... DEBUG: Setting Fan PWM of 'cpu' to 211 ... DEBUG: Setting Fan PWM of 'cpu' to 210 ... DEBUG: Setting Fan PWM of 'cpu' to 209 ... DEBUG: Setting Fan PWM of 'cpu' to 208 ... DEBUG: Setting Fan PWM of 'cpu' to 207 ... DEBUG: Setting Fan PWM of 'cpu' to 206 ... DEBUG: Setting Fan PWM of 'cpu' to 205 ... DEBUG: Setting Fan PWM of 'cpu' to 204 ... DEBUG: Setting Fan PWM of 'cpu' to 203 ... DEBUG: Setting Fan PWM of 'cpu' to 202 ... DEBUG: Setting Fan PWM of 'cpu' to 201 ... DEBUG: Setting Fan PWM of 'cpu' to 200 ... DEBUG: Setting Fan PWM of 'cpu' to 199 ... DEBUG: Setting Fan PWM of 'cpu' to 198 ... DEBUG: Setting Fan PWM of 'cpu' to 197 ... DEBUG: Setting Fan PWM of 'cpu' to 196 ... DEBUG: Setting Fan PWM of 'cpu' to 195 ... DEBUG: Setting Fan PWM of 'cpu' to 194 ... DEBUG: Setting Fan PWM of 'cpu' to 193 ... DEBUG: Setting Fan PWM of 'cpu' to 192 ... DEBUG: Setting Fan PWM of 'cpu' to 191 ... DEBUG: Setting Fan PWM of 'cpu' to 190 ... DEBUG: Setting Fan PWM of 'cpu' to 189 ... DEBUG: Setting Fan PWM of 'cpu' to 188 ... DEBUG: Setting Fan PWM of 'cpu' to 187 ... DEBUG: Setting Fan PWM of 'cpu' to 186 ... DEBUG: Setting Fan PWM of 'cpu' to 185 ... DEBUG: Setting Fan PWM of 'cpu' to 184 ... DEBUG: Setting Fan PWM of 'cpu' to 183 ... DEBUG: Setting Fan PWM of 'cpu' to 182 ... DEBUG: Setting Fan PWM of 'cpu' to 181 ... DEBUG: Setting Fan PWM of 'cpu' to 180 ... DEBUG: Setting Fan PWM of 'cpu' to 179 ... DEBUG: Setting Fan PWM of 'cpu' to 178 ... DEBUG: Setting Fan PWM of 'cpu' to 177 ... DEBUG: Setting Fan PWM of 'cpu' to 176 ... DEBUG: Setting Fan PWM of 'cpu' to 175 ... DEBUG: Setting Fan PWM of 'cpu' to 174 ... DEBUG: Setting Fan PWM of 'cpu' to 173 ... DEBUG: Setting Fan PWM of 'cpu' to 172 ... DEBUG: Setting Fan PWM of 'cpu' to 171 ... DEBUG: Setting Fan PWM of 'cpu' to 170 ... DEBUG: Setting Fan PWM of 'cpu' to 169 ... DEBUG: Setting Fan PWM of 'cpu' to 168 ... DEBUG: Setting Fan PWM of 'cpu' to 167 ... DEBUG: Setting Fan PWM of 'cpu' to 166 ... DEBUG: Setting Fan PWM of 'cpu' to 165 ... DEBUG: Setting Fan PWM of 'cpu' to 164 ... DEBUG: Setting Fan PWM of 'cpu' to 163 ... DEBUG: Setting Fan PWM of 'cpu' to 162 ... DEBUG: Setting Fan PWM of 'cpu' to 161 ... DEBUG: Setting Fan PWM of 'cpu' to 160 ... DEBUG: Setting Fan PWM of 'cpu' to 159 ... DEBUG: Setting Fan PWM of 'cpu' to 158 ... DEBUG: Setting Fan PWM of 'cpu' to 157 ... DEBUG: Setting Fan PWM of 'cpu' to 156 ... DEBUG: Setting Fan PWM of 'cpu' to 155 ... DEBUG: Setting Fan PWM of 'cpu' to 154 ... DEBUG: Setting Fan PWM of 'cpu' to 153 ... DEBUG: Setting Fan PWM of 'cpu' to 152 ... DEBUG: Setting Fan PWM of 'cpu' to 151 ... DEBUG: Setting Fan PWM of 'cpu' to 150 ... DEBUG: Setting Fan PWM of 'cpu' to 149 ... DEBUG: Setting Fan PWM of 'cpu' to 148 ... DEBUG: Setting Fan PWM of 'cpu' to 147 ... DEBUG: Setting Fan PWM of 'cpu' to 146 ... DEBUG: Setting Fan PWM of 'cpu' to 145 ... DEBUG: Setting Fan PWM of 'cpu' to 144 ... DEBUG: Setting Fan PWM of 'cpu' to 143 ... DEBUG: Setting Fan PWM of 'cpu' to 142 ... DEBUG: Setting Fan PWM of 'cpu' to 141 ... DEBUG: Setting Fan PWM of 'cpu' to 140 ... DEBUG: Setting Fan PWM of 'cpu' to 139 ... DEBUG: Setting Fan PWM of 'cpu' to 138 ... DEBUG: Setting Fan PWM of 'cpu' to 137 ... DEBUG: Setting Fan PWM of 'cpu' to 136 ... DEBUG: Setting Fan PWM of 'cpu' to 135 ... DEBUG: Setting Fan PWM of 'cpu' to 134 ... DEBUG: Setting Fan PWM of 'cpu' to 133 ... DEBUG: Setting Fan PWM of 'cpu' to 132 ... DEBUG: Setting Fan PWM of 'cpu' to 131 ... DEBUG: Setting Fan PWM of 'cpu' to 130 ... DEBUG: Setting Fan PWM of 'cpu' to 129 ... DEBUG: Setting Fan PWM of 'cpu' to 128 ... DEBUG: Setting Fan PWM of 'cpu' to 127 ... DEBUG: Setting Fan PWM of 'cpu' to 126 ... DEBUG: Setting Fan PWM of 'cpu' to 125 ... DEBUG: Setting Fan PWM of 'cpu' to 124 ... DEBUG: Setting Fan PWM of 'cpu' to 123 ... DEBUG: Setting Fan PWM of 'cpu' to 122 ... DEBUG: Setting Fan PWM of 'cpu' to 121 ... DEBUG: Setting Fan PWM of 'cpu' to 120 ... DEBUG: Setting Fan PWM of 'cpu' to 119 ... DEBUG: Setting Fan PWM of 'cpu' to 118 ... DEBUG: Setting Fan PWM of 'cpu' to 117 ... DEBUG: Setting Fan PWM of 'cpu' to 116 ... DEBUG: Setting Fan PWM of 'cpu' to 115 ... DEBUG: Setting Fan PWM of 'cpu' to 114 ... DEBUG: Setting Fan PWM of 'cpu' to 113 ... DEBUG: Setting Fan PWM of 'cpu' to 112 ... DEBUG: Setting Fan PWM of 'cpu' to 111 ... DEBUG: Setting Fan PWM of 'cpu' to 110 ... DEBUG: Setting Fan PWM of 'cpu' to 109 ... DEBUG: Setting Fan PWM of 'cpu' to 108 ... DEBUG: Setting Fan PWM of 'cpu' to 107 ... DEBUG: Setting Fan PWM of 'cpu' to 106 ... DEBUG: Setting Fan PWM of 'cpu' to 105 ... DEBUG: Setting Fan PWM of 'cpu' to 104 ... DEBUG: Setting Fan PWM of 'cpu' to 103 ... DEBUG: Setting Fan PWM of 'cpu' to 102 ... DEBUG: Setting Fan PWM of 'cpu' to 101 ... DEBUG: Setting Fan PWM of 'cpu' to 100 ... DEBUG: Setting Fan PWM of 'cpu' to 99 ... DEBUG: Setting Fan PWM of 'cpu' to 98 ... DEBUG: Setting Fan PWM of 'cpu' to 97 ... DEBUG: Setting Fan PWM of 'cpu' to 96 ... DEBUG: Setting Fan PWM of 'cpu' to 95 ... DEBUG: Setting Fan PWM of 'cpu' to 94 ... DEBUG: Setting Fan PWM of 'cpu' to 93 ... DEBUG: Setting Fan PWM of 'cpu' to 92 ... DEBUG: Setting Fan PWM of 'cpu' to 91 ... DEBUG: Setting Fan PWM of 'cpu' to 90 ... DEBUG: Setting Fan PWM of 'cpu' to 89 ... DEBUG: Setting Fan PWM of 'cpu' to 88 ... DEBUG: Setting Fan PWM of 'cpu' to 87 ... DEBUG: Setting Fan PWM of 'cpu' to 86 ... DEBUG: Setting Fan PWM of 'cpu' to 85 ... DEBUG: Setting Fan PWM of 'cpu' to 84 ... DEBUG: Setting Fan PWM of 'cpu' to 83 ... DEBUG: Setting Fan PWM of 'cpu' to 82 ... DEBUG: Setting Fan PWM of 'cpu' to 81 ... DEBUG: Setting Fan PWM of 'cpu' to 80 ... DEBUG: Setting Fan PWM of 'cpu' to 79 ... DEBUG: Setting Fan PWM of 'cpu' to 78 ... DEBUG: Setting Fan PWM of 'cpu' to 77 ... DEBUG: Setting Fan PWM of 'cpu' to 76 ... DEBUG: Setting Fan PWM of 'cpu' to 75 ... DEBUG: Setting Fan PWM of 'cpu' to 74 ... DEBUG: Setting Fan PWM of 'cpu' to 73 ... DEBUG: Setting Fan PWM of 'cpu' to 72 ... DEBUG: Setting Fan PWM of 'cpu' to 71 ... DEBUG: Setting Fan PWM of 'cpu' to 70 ... DEBUG: Setting Fan PWM of 'cpu' to 69 ... DEBUG: Setting Fan PWM of 'cpu' to 68 ... DEBUG: Setting Fan PWM of 'cpu' to 67 ... DEBUG: Setting Fan PWM of 'cpu' to 66 ... DEBUG: Setting Fan PWM of 'cpu' to 65 ... DEBUG: Setting Fan PWM of 'cpu' to 64 ... DEBUG: Setting Fan PWM of 'cpu' to 63 ... DEBUG: Setting Fan PWM of 'cpu' to 62 ... DEBUG: Setting Fan PWM of 'cpu' to 61 ... DEBUG: Setting Fan PWM of 'cpu' to 60 ... DEBUG: Setting Fan PWM of 'cpu' to 59 ... DEBUG: Setting Fan PWM of 'cpu' to 58 ... DEBUG: Setting Fan PWM of 'cpu' to 57 ... DEBUG: Setting Fan PWM of 'cpu' to 56 ... DEBUG: Setting Fan PWM of 'cpu' to 55 ... DEBUG: Setting Fan PWM of 'cpu' to 54 ... DEBUG: Setting Fan PWM of 'cpu' to 53 ... DEBUG: Setting Fan PWM of 'cpu' to 52 ... DEBUG: Setting Fan PWM of 'cpu' to 51 ... DEBUG: Setting Fan PWM of 'cpu' to 50 ... DEBUG: Setting Fan PWM of 'cpu' to 49 ... DEBUG: Setting Fan PWM of 'cpu' to 48 ... DEBUG: Setting Fan PWM of 'cpu' to 47 ... DEBUG: Setting Fan PWM of 'cpu' to 46 ... DEBUG: Setting Fan PWM of 'cpu' to 45 ... DEBUG: Setting Fan PWM of 'cpu' to 44 ... DEBUG: Setting Fan PWM of 'cpu' to 43 ... DEBUG: Setting Fan PWM of 'cpu' to 42 ... DEBUG: Setting Fan PWM of 'cpu' to 41 ... DEBUG: Setting Fan PWM of 'cpu' to 40 ... DEBUG: Setting Fan PWM of 'cpu' to 39 ... DEBUG: Setting Fan PWM of 'cpu' to 38 ... DEBUG: Setting Fan PWM of 'cpu' to 37 ... DEBUG: Setting Fan PWM of 'cpu' to 36 ... DEBUG: Setting Fan PWM of 'cpu' to 35 ... DEBUG: Setting Fan PWM of 'cpu' to 34 ... DEBUG: Setting Fan PWM of 'cpu' to 33 ... DEBUG: Setting Fan PWM of 'cpu' to 32 ... DEBUG: Setting Fan PWM of 'cpu' to 31 ... DEBUG: Setting Fan PWM of 'cpu' to 30 ... DEBUG: Setting Fan PWM of 'cpu' to 29 ... DEBUG: Setting Fan PWM of 'cpu' to 28 ... DEBUG: Setting Fan PWM of 'cpu' to 27 ... DEBUG: Setting Fan PWM of 'cpu' to 26 ... DEBUG: Setting Fan PWM of 'cpu' to 25 ... DEBUG: Setting Fan PWM of 'cpu' to 24 ... DEBUG: Setting Fan PWM of 'cpu' to 23 ... DEBUG: Setting Fan PWM of 'cpu' to 22 ... DEBUG: Setting Fan PWM of 'cpu' to 21 ... DEBUG: Setting Fan PWM of 'cpu' to 20 ... DEBUG: Setting Fan PWM of 'cpu' to 19 ... DEBUG: Setting Fan PWM of 'cpu' to 18 ... DEBUG: Setting Fan PWM of 'cpu' to 17 ... DEBUG: Setting Fan PWM of 'cpu' to 16 ... DEBUG: Setting Fan PWM of 'cpu' to 15 ... DEBUG: Setting Fan PWM of 'cpu' to 14 ... DEBUG: Setting Fan PWM of 'cpu' to 13 ... DEBUG: Setting Fan PWM of 'cpu' to 12 ... DEBUG: Setting Fan PWM of 'cpu' to 11 ... DEBUG: Setting Fan PWM of 'cpu' to 10 ... DEBUG: Setting Fan PWM of 'cpu' to 9 ... DEBUG: Setting Fan PWM of 'cpu' to 8 ... DEBUG: Setting Fan PWM of 'cpu' to 7 ... DEBUG: Setting Fan PWM of 'cpu' to 6 ... DEBUG: Setting Fan PWM of 'cpu' to 5 ... DEBUG: Setting Fan PWM of 'cpu' to 4 ... DEBUG: Setting Fan PWM of 'cpu' to 3 ... DEBUG: Setting Fan PWM of 'cpu' to 2 ... DEBUG: Setting Fan PWM of 'cpu' to 1 ... DEBUG: Setting Fan PWM of 'cpu' to 0 ... DEBUG: Setting Fan PWM of 'cpu' to 128 ... INFO: Measuring RPM curve... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 20.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 2674.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 198.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 172.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 167.000000)... DEBUG: Waiting for fan cpu to settle (current RPM max diff: 27.000000)... DEBUG: Fan cpu has settled (current RPM max diff: 4.000000) DEBUG: Measuring RPM of cpu at PWM 0: 2511 DEBUG: Measured RPM of 2511 at PWM 0 for fan cpu DEBUG: Setting Fan PWM of 'cpu' to 1 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 1 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 2 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 3 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 4 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 5 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 6 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 7 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 8 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 9 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 10 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 11 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 12 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 13 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 14 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 15 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 16 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 17 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 18 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 19 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 20 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 21 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 22 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 23 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 24 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 25 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 26 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 27 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 28 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 29 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 30 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 31 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 32 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 33 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 34 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 35 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 36 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 37 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 38 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 39 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 40 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 41 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 42 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 43 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 44 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 45 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 46 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 47 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 48 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 49 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 50 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 51 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 52 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 53 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 54 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 55 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 56 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 57 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 58 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 59 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 60 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 61 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 62 Actual: 0 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 63 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 64 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 64 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 65 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 65 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 66 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 66 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 67 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 67 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 68 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 68 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 69 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 69 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 70 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 70 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 71 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 71 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 72 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 72 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 73 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 73 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 74 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 74 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 75 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 75 Actual: 0 DEBUG: Setting Fan PWM of 'cpu' to 76 ... DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 76 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 77 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 78 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 79 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 80 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 81 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 82 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 83 Actual: 128 DEBUG: Fan cpu: Actual PWM value differs from requested one, skipping. Requested: 84 Actual: 128 INFO: PWM settings of fan 'cpu': Min 0, Start 100, Max 195 INFO: Starting controller loop for fan 'cpu'
|
Hmmm, an extra line has now appeared on the debug after an unknown time period (minutes?), which has turned the fan off:
Running a further stress test doesn't illicit any (immediate) response from fan2go... |
Just to be precise here: fan2go only sets PWM values, it (currently) cannot set target RPM values.
After computing the "pwm map" fan2go sets the PWM to the It doesn't look right that the initialization stops at a pwm value of just
Please update again and rerun to see what those output. Also keep in mind that fan2go by default reacts relatively slowly to changes in temperature, so be sure to give it a couple of seconds before giving up, or change the configuration for determining how fast fan2go should update and make changes.
I think there is currently only log output if the pwm needs to changed from its previously set value. If fan2go figures that |
Thanks! Ah, I thought startPwm was the "safe start" PWM value as per FanControl. i.e. If you're turning the fan on, when its current RPM is 0, use this startPWM value... I think I'm giving it enough time. After fan2go stopped the fan (see my post just before yours), I reran my (slow) stress test. It takes about 15 secs to ramp the temp from 30 to 75 degrees, so there should be enough time for a reaction. My YAML config has default values for all the timing settings. I've included my full config for reference at the end. Pulled the change. New log. There seems to be some strange values at the end of the PWM map...: New log (Expand)
Full YAML config (Expand)
|
Regarding the above. This extra line appears after about 5 minutes. Is that a built-in delay? Or are my temperature polling values being misinterpreted?
|
Ok so the distinct values are all over the place, when they should really only contain 3 values. This is caused by the fact that you seem to get a value of I have done some changes which should improve this, in addition to some tests. With those changes the resulting distinct pwm targets are: However, fan2go considering Is it possible that the "pwm value" changes on its own depending on the speed of the fan and that its not actually a writable value but can only be read? We have observed similar behavior in some GPU fan driver implementations.
There is definitely no built-in delay of 5 minutes anywhere. The config you posted will result in a sensor value that shifts from one value to the next over the course of 10 * 200ms. A sensor value change from 51000 to 50000 will take 2 seconds to complete, but update to values between "start" (51000) and "end" (50000) 10 times in total, each update every 200 milliseconds. In addition to that, the fan controller uses a PID controller function that (depending on its configuration) will also add some delay to changes in the calculated target PWM, but it should definitely not take as long as 5 minutes with the default values. |
Btw you can make text sections collapsable, please consider editing your comments for better readability of this whole thread. See here: https://gist.github.com/pierrejoubert73/902cc94d79424356a8d20be2b382e1ab
|
Why does the initialisation process detect this '0' value at the top end, when I can set the fan PWM to [192-255] with e.g.
So there should be a reaction in about 2 seconds, once the temperature crosses my temp curve boundary. That still doesn't seem to be happening. Although after initialisation, the fan is now shut off straight away rather than after 5 mins (yay), running the stress test (30 to 75 degrees in 15 seconds) still gets no reaction from fan2go...(the fan stays at 0 RPM throughout). Regarding the new log below:
New Log (Expand)
|
Thats a very good question I currently don't have an answer to. I would expect the same thing as you do. It may be due to the "pwm map creation" taking place within only a very short a mount of time, which could lead to weird behavior. This process actually tries to set every possible PWM value in the range 0-255 (as you can see in the log) and "waits" a really short amount of time before reading back what PWM value actually got set afterwards. If you do this test manually and continuously without fan2go daemon running, using f.ex. a
There really was nothing changed in the code for that to happen. The commands for reading and setting stuff are completely independent from the logic of the daemon. There is no pwm map calculation f.ex., so maybe the system acts weird because we messed around to much or possibly there was a mistake on your end?
Well, on a "normal" system I would answer with a resounding "yes, it certainly would". However on your system, because of the extremely limited range of distinct PWM values at hand, you would only start to notice a change after the fan control loop decides to increase the fan speed to a level that is closer to
I think it would be helpful to see statistics not only for the fans, sensors and curves but also the internal state of fan controller itself to better visualize what is happening on the inside while the fan2go daemon is running. I will add some statistics for that, but it will take some time to do that.
It sure doesn't look healthy, yes. I cannot tell what will happen because this is not a "supported" state. I will need to invest more time into this to come up with a solution that can remedy this. In a "perfect" fan this would be a
No. While the configuration overrides what the fan control loop should use as PWM boundaries for a specific fan, the distinct pwm value targets are calculated from the pwm map, which in turn is calculcated by trying out all PWM values (as mentioned above). It has nothing to do with what the config contains, only what fan2go sees when it tries to interact with the fan's "PWM knob". Thx for sticking with this for so long btw, its really helpful and constructive to work on this with you ❤️ 🤓 |
Ah, that was interesting (and probably significant)...
Looking at the boundary [191,192], this switches from half fan speed to full fan speed. So with the initial condition of fan at half speed (2400rpm), if you do This would seem to indicate you'd need to wait > 8 seconds to detect this step change in PWM... The same thing happens going from full speed (rpm) to half speed. i.e. Full speed initial condition, set PWM to 191 --> wait 8 seconds for flip to 128 PWM. Setting PWM to ranges [64-190] or [193-255] have no effect on RPM or PWM values, if the value is in the same range. (There's also no fluctuation). At the bottom end, it's different. I think the take home is that you need to watch and wait for a stable RPM before reading the resulting PWM value in the hwmon area, whenever you set the PWM value in the initialisation procedure... (Pretty much a "asked for", "wait for stability" "got" function)
Sorry, that was noise from me! I ran the commands from the build directory, which picked up the YAML config supplied with the build instead for my /etc/fan2go based config!
That's why I set the values I did [0, 64, 195]. This should provide two linear ranges where the end points are the trigger values for changing PWM to one of 0, 128, 255. (I left a bit of stack in the top value to ensure the PWM 255 will be triggered). It should work, I think. (Also see my answer to the last but one point).
I think it will work OK, once the PWM Map is straightened out in line with the first part of this post, and my reasoning regarding values [0, 64, 195]. I don't think anything else will need attention.
My understanding is I have a linear temp range of [35-45] with a corresponding PWM range of [0-64]. So reacting to a temp rise from say 35 to 45, you (linearly) ramp PWM from 0 to 64 (not physically applying each value?). When the temp hits 45, the PWM hits 64, which (in this designed case) triggers the fan to half speed. Similarily for the [45-65] temp range ([65-195] PWM range). You ramp PWM from 65 to 195 as the temp increases from 45 to 65. At 65 degrees, PWM = 195 triggers (if applied) full fan speed. (Actually 192 triggers full speed). I'm not quite sure how the value PWM 244 plays into this?
No worries! |
Ah, that explains why the fast PWM map creation is not working as intended. 👍
For detecting the fan RPM curve fan2go actually already does this, but its obviously failing too since your fan curve is a flatline at 2525 RPM, so I am not sure if it will work for the PWM map creation 🤔 The only real fix I can see for this that would work 100% is to allow specifying a custom PWM map in the config and skip the automatic detection entirely. I still don't understand why its detecting a mapping to
Yes, I think so too, I just need to cover this scenario with more tests to make sure its working just like the "normal" case does. Also, you will probably see lots of warnings from fan2go, due to it thinking that an external program is also changing the PWM values, because fan2go constantly compares the "set" PWM value with the one reported by the system currently, and those will only match up after some time. It would be completely fine to ignore those though.
I hope so too 🤞
You're spot on, thats the exact behavior I want to see as well.
Thats were I got the 244 from. But the logic you wrote applies to it just as well, the tipping point is just a different one. And of course you would want to specify a value closer to the actual tipping point, like the 195 you mentioned. I will report back when I have something new to test. |
…ap_from_config Feature/#161 override pwm map from config
…tistics Feature/#161 controller statistics
I haven't finished the documentation yet, but you can now specify the pwm map in the config, something like this:
I have done some testing and it behaves as I would expect (and we previously discussed). |
Thanks for the update. It's controlling the laptop fan nicely now! Also runs fine as a systemd service. My only criticism is the journalctl log spam created when moving between half-speed and full-speed and vice versa. You get around 40 "PWM of cpu was changed by a third party!" warning messages per PWM change... If you remember, I commented that moving from half speed (2400rpm) to full speed (4800rpm) takes about 16 seconds, but the PWM values stays at 128 until about 3600rpm, where it "flips" to 255. So when fan2go "asks for" PWM=255 when current PWM is 128, it will take about 8 secs until the hwmon value shows 255. It's the same when fan2go "asks for" PWM=128, when current PWM is 255. I realise you've commented about the "PWM of cpu was changed by a third party!" in https://github.com/markusressel/fan2go/issues/64 but can something be done to mitigate this particular situation? EDIT: Maybe it's better that I just mask that particular warning message in the fan2go.service...
Thanks again for the work you've done helping me with this problem. I appreciate it. |
Great trick with the grep 👍 Glad its working 💪 |
I will close this issue. Feel free to open another if something comes up. |
Describe the bug
Turning off BIOS fan control (AUR: dell-bios-fan-control) and then running sudo fan2go (or sudo fan2go fan init -icpu) for a new configuration displays the following:
The fan is turned on (previously 0 RPM, CPU at rest). The RPM is set to 2566 and PWM is 128, but stress testing the CPU indicates that fan2go isn't controlling the fan speed and I'm forced to re-enable BIOS fan control.
To Reproduce
Expected behavior
Presumably, the PWM settings should match my configuration:
Desktop:
sudo dell-bios-fan-control 0
Additional context
fan2go can read my temp sensor
fan2go sensor -icpu_package
and fan rpmfan2go fan rpm -icpu
.fan2go can set the fan rpm
sudo fan2go fan speed nnn -icpu
, with BIOS fan control disabled.FanControl (lm-sensors) works OK, but I'm looking to solve the "enumerated hwmon links changing issue" with fan2go.
Any ideas?
The text was updated successfully, but these errors were encountered: