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. maffle

    maffle Notebook Evangelist

    Reputations:
    179
    Messages:
    545
    Likes Received:
    506
    Trophy Points:
    106
    @Aaron44126 Any news on building the driver? I actually hate it btw, if devs put up crippled projects and you cant compile it and have to find out why. Especially c++ Windows projects are mostly a mess. Also I dont think it has to do with "cut off time", if it works on the 9560.
     
  2. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    874
    Messages:
    5,548
    Likes Received:
    2,058
    Trophy Points:
    331
    I haven't had time to dig any deeper (probably will be a couple of days there). It's kind of sad that it isn't set up for "open and build" but I think the expectation here is that you would know a thing or two about driver development before you make the attempt (which I don't, really) ... It's more a matter of getting Visual Studio set up properly with the WDK than anything else. In any case, if we didn't have this code, this project wouldn't have gotten off the ground.

    I was wondering if you could attempt this. This is manually loading and starting the driver from outside of the app. It probably won't work on your system but I'm wondering if any additional interesting error information will pop out. (If you're using the bzh_dell_smm_io_x64.sys file that I signed, you don't need to be in test signing mode or anything.)

    Open an administrative command prompt and run the command:
    sc create dellsmm type=kernel binpath="C:\Full\path\to\bzh_dell_smm_io_x64.sys"
    (replace the underlined bit)

    Then:
    sc start dellsmm

    You're supposed to get output like:
    Code:
    SERVICE_NAME: dellsmm
            TYPE               : 1  KERNEL_DRIVER
            STATE              : 4  RUNNING
                                    (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
            WIN32_EXIT_CODE    : 0  (0x0)
            SERVICE_EXIT_CODE  : 0  (0x0)
            CHECKPOINT         : 0x0
            WAIT_HINT          : 0x0
            PID                : 0
            FLAGS              :
    ...But I expect that it will error on your system and I want to see if it gives any error details.

    To clean up afterwards:
    sc stop dellsmm
    sc delete dellsmm
     
    Maleko48 and maffle like this.
  3. MikeR_Va

    MikeR_Va Notebook Enthusiast

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

    Check your PM. Your one fan version appears to work. Longer report there so we don't overly clutter the thread.

    Oh, and in answer to your earlier question, I'll check again, but my recollection is that the second fan slider just bounces back to the left (much as I described to Maffle up the thread) and does nothing. But the CPU fan slides normally and controlled the fan. Don't take that to the bank until I check. If useful and I forget, feel free to remind me . . .

    Mike
     
  4. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    874
    Messages:
    5,548
    Likes Received:
    2,058
    Trophy Points:
    331
    It would be odd if my app kills SpeedFan but the GUI app doesn't. I was wondering if I should borrow its "detect second fan" logic if it has any... I don't remember seeing anything like that though.
     
  5. maffle

    maffle Notebook Evangelist

    Reputations:
    179
    Messages:
    545
    Likes Received:
    506
    Trophy Points:
    106
    @Aaron44126 It says, it cant start the service because there is something wrong with the digital signatur, error 577 (Windows cannot verify the digital signature for this file):

    C:\Programme (frei)\DellEC>sc start dellsmm
    [SC] StartService FEHLER 577:
    Die digitale Signatur dieser Datei kann nicht überprüft werden. Möglicherweise wurde durch eine kürzlich durchgeführte Hardware- oder Softwareänderung eine falsch signierte oder beschädigte Datei oder eine Datei, bei der es sich um böswillige Software aus einer unbekannten Quelle handelt, installiert.

    Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software form an unknown source

    So it doesnt even try to load it, because of the signatur not being trusted. Didnt you say you signed it? Right click on it it says it is signed by Aaron Kelley.

    https://i.imgur.com/4GINvtE.png

    Disabling signed driver check it starts and just says:

    C:\WINDOWS\system32>sc start dellsmm
    SERVICE_NAME: dellsmm
    TYPE : 1 KERNEL_DRIVER
    STATE : 4 RUNNING
    (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
    WIN32_EXIT_CODE : 0 (0x0)
    SERVICE_EXIT_CODE : 0 (0x0)
    CHECKPOINT : 0x0
    WAIT_HINT : 0x0
    PID : 0
    FLAGS :

    Didnt change anything though

    C:\Programme (frei)\DellEC>DellFanCmd.exe ec-disable
    DellFanCmd PRE-RELEASE BUILD
    Loading SMM IO driver...
    Failed.
    C:\Programme (frei)\DellEC>DellFanCmd.exe ec-disable-alt
    DellFanCmd PRE-RELEASE BUILD
    Loading SMM IO driver...
    Failed.
     
    Last edited: Jan 20, 2019
    Maleko48 likes this.
  6. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    874
    Messages:
    5,548
    Likes Received:
    2,058
    Trophy Points:
    331
    Strange on the signature thing. You are right, I had the file signed, and I'm not having any trouble loading it with the same command (and also not in "test signing" or "disable driver signature enforcement" mode).

    So it works if you load it manually but not if the program tries to load it. (Signature issue aside.) It might be possible to manually load the driver and then have the program use that. (It does not attempt that right now, it will bail if the load fails.)
     
    Maleko48 likes this.
  7. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    874
    Messages:
    5,548
    Likes Received:
    2,058
    Trophy Points:
    331
    I'm now suspecting that the driver is loading but some step that the program attempts after the driver load is failing. I produced a new build with more verbosity around the SMM IO driver loading. Can you please try it and let me know what the output is. Depending on how far you get before things differ, that will give a hint of where to check next. (Do it in "disable driver signature enforcement" mode because there appears to be an issue with the signature on your system.) Here is the output from a successful run:

    Code:
    DellFanCmd PRE-RELEASE BUILD (verbose)
    
    Loading SMM IO driver...
        Check to see if driver is running already
        Load driver
          Remove previous instance
          Create service
        Start driver
          Open SC manager
          Open service
          Start service
        Get handle to driver
        All good!
     ...Success.
    Attempting to disable EC control of the fan...
     ...Success.
    Setting fan 1 speed to maximum...
    Setting fan 2 speed to maximum...
    Unloading SMM IO driver...
     ...Done.
    Also, to be clear, are you using Windows 10 or something older?

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

    maffle Notebook Evangelist

    Reputations:
    179
    Messages:
    545
    Likes Received:
    506
    Trophy Points:
    106
    @Aaron44126 C:\Programme (frei)\DellFanCmd-Verbose>DellFanCmd.exe ec-disable
    DellFanCmd PRE-RELEASE BUILD (verbose)
    Loading SMM IO driver...
    Check to see if driver is running already
    Load driver
    Remove previous instance
    Create service
    Failed.

    Yes, run as admin. Windows 10 64bit (1809) of course.
     
  9. Aaron44126

    Aaron44126 Notebook Prophet

    Reputations:
    874
    Messages:
    5,548
    Likes Received:
    2,058
    Trophy Points:
    331
    Ok, interesting. To be clear, you tried that with test signing on or driver signature enforcement disabled?

    Please try these commands.

    sc create BZHDELLSMMIO type=kernel binpath="C:\Full\path\to\bzh_dell_smm_io_x64.sys"
    sc start BZHDELLSMMIO
    DellFanCmd ec-disable

    The first two are the same as before but with a different service name. This is the name that the app uses when it loads the driver. It will detect that it is already running and won't try to start it again. I tested this on my machine and it worked. It shortcuts a good bit of the driver load procedure.
    Code:
    Loading SMM IO driver...
        Check to see if driver is running already
        All good!
     ...Success.
    Attempting to disable EC control of the fan...
     ...Success.
    Setting fan 1 speed to maximum...
    Setting fan 2 speed to maximum...
    Unloading SMM IO driver...
     ...Done.
    If it does not work, please clean up afterwards with:
    sc stop BZHDELLSMMIO
    sc delete BZHDELLSMMIO
    (A successful run will actually stop and delete the driver/service automatically, even if it was already running before you started.)
     
    Maleko48 and maffle like this.
  10. maffle

    maffle Notebook Evangelist

    Reputations:
    179
    Messages:
    545
    Likes Received:
    506
    Trophy Points:
    106
    C:\dellfan>DellFanCmd.exe ec-disable
    DellFanCmd PRE-RELEASE BUILD (verbose)
    Loading SMM IO driver...
    Check to see if driver is running already
    Load driver
    Remove previous instance
    Create service
    Start driver
    Open SC manager
    Open service
    Start service
    Failed.
    C:\dellfan>sc delete BZHDELLSMMIO
    [SC] DeleteService ERFOLG

    Doesnt seem so. Why doesnt it clean up afterwards? So I have like a couple of broken driver services registered? Why does the signed driver does not work though for me, I have to disable secure boot again and disable driver check first.

    So after disabling secure boot and driver check... and manual service creation...

    C:\dellfan>sc create BZHDELLSMMIO type=kernel binpath="C:\dellfan\bzh_dell_smm_io_x64.sys"
    [SC] CreateService ERFOLG
    C:\dellfan>sc start BZHDELLSMMIO
    SERVICE_NAME: BZHDELLSMMIO
    TYPE : 1 KERNEL_DRIVER
    STATE : 4 RUNNING
    (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
    WIN32_EXIT_CODE : 0 (0x0)
    SERVICE_EXIT_CODE : 0 (0x0)
    CHECKPOINT : 0x0
    WAIT_HINT : 0x0
    PID : 0
    FLAGS :
    C:\dellfan>DellFanCmd ec-disable
    DellFanCmd PRE-RELEASE BUILD (verbose)
    Loading SMM IO driver...
    Check to see if driver is running already
    All good!
    ...Success.
    Attempting to disable EC control of the fan...
    ...Success.
    Setting fan 1 speed to maximum...
    Setting fan 2 speed to maximum...
    Unloading SMM IO driver...
    ...Done.
    C:\dellfan>

    Ec auto control is now off it seems, so it looks like the driver worked all the long on the 9570, but not creating the service through the tool... and through yours too. Just manual creating seems to work. Controling the fans though through the tool also doesnt work.

    C:\dellfan>DellFanCmd.exe ec-enable
    DellFanCmd PRE-RELEASE BUILD (verbose)
    Loading SMM IO driver...
    Check to see if driver is running already
    Load driver
    Remove previous instance
    Create service
    Start driver
    Open SC manager
    Open service
    Start service
    Get handle to driver
    All good!
    ...Success.
    Attempting to enable EC control of the fan...
    ...Success.
    Unloading SMM IO driver...
    ...Done.
    C:\dellfan>DellFanCmd.exe ec-disable
    DellFanCmd PRE-RELEASE BUILD (verbose)
    Loading SMM IO driver...
    Check to see if driver is running already
    Load driver
    Remove previous instance
    Create service
    Start driver
    Open SC manager
    Open service
    Start service
    Get handle to driver
    All good!
    ...Success.
    Attempting to disable EC control of the fan...
    ...Success.
    Setting fan 1 speed to maximum...
    Setting fan 2 speed to maximum...
    Unloading SMM IO driver...
    ...Done.
    C:\dellfan>

    That is working too now.
     
    Last edited: Jan 20, 2019
    Maleko48 likes this.
Loading...

Share This Page