The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.

[Guide] How to control fans on Dell Laptops under Windows

Discussion in 'Dell' started by valuxin, May 27, 2017.

?

Does this solution work for you?

  1. Yep :)

    19 vote(s)
    51.4%
  2. Nope T_T

    7 vote(s)
    18.9%
  3. Scared to try :c

    11 vote(s)
    29.7%
  1. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    879
    Messages:
    5,549
    Likes Received:
    2,066
    Trophy Points:
    331
    Indeed, there is no reason that it should work on Linux but not be possible on Windows. It's a matter of gathering knowledge and figuring it out — and depending on how deep it goes, that might require driver/ASM code.

    Part of the problem might be, it is already possible to adjust the fans on Windows (SpeedFan can do it), but something else also controlling the fans that needs to be shut off. Have you looked into disabling the Intel thermal framework stuff? A driver gets installed for that. (I remember reading about this when I was looking into stuff with my current project, but haven't dug into it at all because the Intel thermal framework isn't present on older systems like my M6700.)
     
  2. MikeR_Va

    MikeR_Va Notebook Enthusiast

    Reputations:
    1
    Messages:
    21
    Likes Received:
    5
    Trophy Points:
    6
    Aaron:

    Thanks a whole lot for the effort -- this is going to be really good if it works -- and is should. It's going to take me a bit, but I'll sort your instructions, do some testing and report back. And, though I can't seem to find a PM function on the board, and your profile now seems restricted, I'm happy to buy you a beer or two. Just point me to the PM function or some such, and I'll make contact.

    Re: the fan profiles -- Dell's documentation suggests that some of the workstation-like laptops, unlike my XPS 13, may run as many as five fan levels. Seems to depend on what our hardware is. In case that helps.

    Maffle:

    Well, heck. I'll look back over my reading to see if anybody got this to work on newer machines just to be sure, but Aaron's testing suggests that Dell has indeed been up to further locking down the fans. That's just . . . annoying.

    Seems pretty clear now that you were doing all the right things, just as you suggested -- they just made it more "idiot proof" while we were out, preventing us for now from having control on newer machines. Which, given that even the most aggressive fan profiles I've tested from Dell seem to weigh heavily in favor of silence even at temps that look scary to me, isn't really a good thing for those that would like to change them.

    The "best" solution to this would be a DELL BIOS that allows you to set any fan break points you want below Dell's least aggressive option. By definition, if they don't go to 50% fan until 78C, and 100% at 85C (just for example), they're making a judgment that this is safe, so if you or I want more cooling at the expense of noise, why not allow that? If they're going to keep playing cat and mouse locking down the fans, I do wish they'd do that. So far, even the max performance profile lets the machine get way too hot.

    Sorry man. Hope there's a solution for you. If not, happy to join the petition drive . . . I get that this has to be done cautiously, but I don't see how allowing more aggressive use of fans could do much damage. You might wear the fan out sooner if you ran 100% all the time, but come on -- that's not much of risk, is it?

    Mike
     
    Last edited: Jan 18, 2019
  3. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    879
    Messages:
    5,549
    Likes Received:
    2,066
    Trophy Points:
    331
    You can start a private conversation from the "Inbox" option at the top right of the forum. I think you might have to have 10 posts before the function is available (almost there?).
     
  4. MikeR_Va

    MikeR_Va Notebook Enthusiast

    Reputations:
    1
    Messages:
    21
    Likes Received:
    5
    Trophy Points:
    6
    Almost . . . hehe. OK, that should be 10.
     
  5. MikeR_Va

    MikeR_Va Notebook Enthusiast

    Reputations:
    1
    Messages:
    21
    Likes Received:
    5
    Trophy Points:
    6
    Aaron:

    First Beta test report follows:

    Either I'm doing something wrong, or maybe we're not quite there yet.

    1. Unzipped your file to a new folder c:\Utilties\AaronFanUtil . . .

    2. Set up, maybe too soon, an elevated prompt on Task Manager. Set the argument in the separate space for "arguments" in taskman -- looks right when you're done. Specified the above as working folder

    Cold boot -- no result. No error, no control.

    3. Installed C++ Runtime -- maybe the wrong one? Same result on boot.

    4. Disabled Task, rebooted and tried a manual run with elevated command prompt.

    5. No joy, but now useful info.

    First, you need to run from the working directory -- pretty much as expected.

    Once there, the command attempts to execute. This produces three error messages, looking for the following missing dlls. vcruntime140D.dll; ucrtbased.dll, and msvc140D.dll.

    6. Errors suggest a reinstall -- so I ran a repair on the same C++ Runtime. Shut down and cold boot. Same result.

    7. Tried the alt disable command even though I was pretty sure it wouldn't work -- same basic result at 5, though I didn't think to recheck the individual dll names to be sure they were identical.

    Thinking maybe you work this these dlls on your machine all the time, and maybe they're not in the C++ indicated? Or did I screw it up some other way?

    Ready to try again when you are.

    Mike
     
  6. maffle

    maffle Notebook Evangelist

    Reputations:
    179
    Messages:
    545
    Likes Received:
    506
    Trophy Points:
    106
    @Aaron44126 Tried your program but several DLLs are missing, I have installed the vc_redist.x64.exe though. These are installed: https://i.imgur.com/O4oU8aX.png

    Edit: Googling about it, it says the missing DLLs are debug versions (D) at the end, so you didnt compile it properly in retail mode. Please do so and provide new version.
     
    Last edited: Jan 18, 2019
  7. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    879
    Messages:
    5,549
    Likes Received:
    2,066
    Trophy Points:
    331
    I'm attaching a release mode build. Let me know if it is any difference. Tomorrow I will try running it on a machine that *doesn't* have Visual Studio installed so I can see what is actually needed.

    [Edit] Binary removed, see https://github.com/AaronKelley/DellFanCmd/releases
     
    Last edited: Jan 21, 2019
    Maleko48 and maffle like this.
  8. maffle

    maffle Notebook Evangelist

    Reputations:
    179
    Messages:
    545
    Likes Received:
    506
    Trophy Points:
    106
    @Aaron44126 of course it is, I already said where the issues was, the needed DDLs (D) at the end are not included in the VC releases, just in the debug environment you have installed. So I could test it now on the 9570, this is what happens:

    DellFanCmd.exe ec-disable
    DellFanCmd PRE-RELEASE BUILD
    Loading SMM IO driver...
    Failed.

    Run as admin of course. Secure boot normal driver signed requested ect all on default.

    I found this debate, which might be a hint why it doesnt work? This driver is based on this old i8k Linux driver anyway, no?

    https://patchwork.kernel.org/patch/10701619/

    There is the talk about a force=1 option for the Linux i8k driver, does this exist on Windows version too?

    I also found this Linux too to deactivate EC fan control for the 9560 without even a driver?

    https://github.com/TomFreudenberg/dell-bios-fan-control

    Could it be ported to Windows maybe?

    As I see it, they all use the same registers:

    windrv-dell-smm
    #define SMM_DISABLE_BIOS_METHOD1 0x30a3
    #define SMM_ENABLE_BIOS_METHOD1 0x31a3
    #define SMM_DISABLE_BIOS_METHOD2 0x34a3
    #define SMM_ENABLE_BIOS_METHOD2 0x35a3

    TomFreudenberg/dell-bios-fan-control
    #define DISABLE_BIOS_METHOD2 0x34a3
    #define ENABLE_BIOS_METHOD2 0x35a3

    I guess these didnt change for the 9570, so not sure why the driver fails to load. It should be trivial to port this to Windows sending just a EC register, no?
     
    Last edited: Jan 19, 2019
  9. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    879
    Messages:
    5,549
    Likes Received:
    2,066
    Trophy Points:
    331
    Sorry for the mixup, I normally work with C#/.NET and debug builds work fine on other machines without extra libraries in that case. Anyway...

    That code you pointed to uses ioperm which does not have a Windows equivalent. I discussed this a couple of pages back, there is a possible alternate solution. Otherwise it appears to be exactly the same as every other method that I have seen, except for it uses the “alternate method” command to tell the EC to give up fan control. Hmm.

    The output of the app on your system (driver failing to load) is the same as what happens on my Precision 7530. I’ll look into switching to the “giveio” driver which is more generic and might work. Not sure if I will have any time to work on it this weekend. I don’t have access to my 7530 until Monday in any case.

    Anyway, that is for a 9560 XPS which has 7th gen CPU? I think 8th gen might be where they changed things up so it might still not work.
     
    Last edited: Jan 19, 2019
    maffle likes this.
  10. maffle

    maffle Notebook Evangelist

    Reputations:
    179
    Messages:
    545
    Likes Received:
    506
    Trophy Points:
    106
    I dont think so. Please look into the Linux kernel patch debate link I gave: https://patchwork.kernel.org/patch/10701619/

    Just read through the comments if you have 10 minutes of time, it is not that much. It gives a few clues actually. Seems Dell just changed a few temperature names but that is it, as I see it? The register to deactivate fan control should still be the same, or at least in there for the 9570. This i8k driver works it seems under Linux if you start it with a force=1, so that maybe skips something, which is implemented in this driver, which doesnt load? Also what do the "a3" mean for these registers? Arent registers like "0x34" and not "0x34a3"?
     
    Last edited: Jan 19, 2019
Loading...

Share This Page