Fan Speed Control Trouble on Asrock E3C226D2I


Recommended Posts

I'm having difficulty getting PWM fan speed control to work for the case intake/exhaust fans.  Currently running unRAID v6.0b14 on a Asrock E3C226D2I motherboard.  Three Noctua 120mm PWM NF-S12A fans are being used - 2 split from front_chassis header and 1 from rear_chassis header.  Both are 4-pins.  In the BIOS, the fan speed RPM is accurately reported and the fan speed can be manually set to different speed levels or to SmartFan, which varies the speed based on CPU temperature.  Both of these options work fine.  However, the fan speed should be based on array temperature.

 

In the BIOS and motherboard web GUI, the chassis fan speeds are reported correctly.  When running 'sensors' it shows the following:

 

coretemp-isa-0000

*CPU related temps

 

nct6776-isa-0290

fan1:        0 RPM  (min =    0 RPM)

fan2:        0 RPM  (min =    0 RPM)

 

In the Dynamix Fan Auto Control interface, it has PWM controller options for nct6776 - pwm 1 and nct6776 - pwm 2, but with either selected, it can't detect 'PWM fan' or 'Min PWM value'.

 

What else can be tried to get this working?

Link to comment

I don't think you can get it working. Check the Asrock section on tweaktown. The fans are not controlled by the nct6776 chip. They are controlled by the BMC. So unless you get the raw values to use with ipmitool you can't control them.

 

I just use the smart fan option in the bios and skew the speeds and temps a little higher. I have noctua fans too.

 

Link to comment

I don't think you can get it working. Check the Asrock section on tweakforums. The fans are not controlled by the nct6776 chip. They are controlled by the BMC. So unless you get the raw values to use with ipmitool you can't control them.

 

I just use the smart fan option in the bios and skew the speeds and temps a little higher. I have noctua fans too.

 

Ahh that's disappointing to hear.  Probably would have went with a different motherboard selection knowing that earlier haha.  I guess your method is the best choice for this board then.  Considering it's in a small case, a rise in array temp would very likely raise the cpu temp (and vice versa), so the smart fan option should be okay.

Link to comment

Maybe if we pester them enough on that forum they'll have an engineer give up the ipmi values. They did respond with the correct multipliers for lm-sensors data.

 

We can only hope!  I submitted a support ticket regarding this, but my expectations are low.  In the meantime, I'm considering using an arduino to control all of them.  Do something like the link below:

 

http://www.electroschematics.com/9540/arduino-fan-speed-controlled-temperature/

Link to comment

Maybe if we pester them enough on that forum they'll have an engineer give up the ipmi values. They did respond with the correct multipliers for lm-sensors data.

 

We can only hope!  I submitted a support ticket regarding this, but my expectations are low.  In the meantime, I'm considering using an arduino to control all of them.  Do something like the link below:

 

http://www.electroschematics.com/9540/arduino-fan-speed-controlled-temperature/

I may give that a shot. I have some extra arduinos laying around. I have something similar on a small reef tank with temp sensors and an lcd but doesn't control anything yet. Just reports and displays temps. I guess I'm not ready to rely completely on an arduino because I've had to reset them in the past. Although this one has been up for months. I have one with 4 relays to replace my zwave devices on the reef tank but have yet to make the switch.

Link to comment

This is the response so far from ASRock:

 

"Thank you for your effort in reaching out to us for your question! Please bear with me for a few moment, I will try to get some more information from the BIOS engineering dept to see if it’s possible. Once I have any update, I will let you know immediately. Thank you!"

 

Fingers crossed!

 

Depending on their response, the arduino rig is looking pretty nice.  Just a basic $28 uno and a few electrical components.  Hopefully it doesn't experience the issue you mentioned of having to restart.  If this is an issue, maybe you could do something with the watchdog to reset itself every X amount of time?

 

Another random thought was to have the fans (power, gnd, and pwm pins) hooked up to the arduino setup and then the fan tach pin hooked up to the motherboard, so that you can still view the fan RPM in the motherboard web interface.  Does anyone know if only having the tach wire connected to a motherboard header would give a correct readout or does it need all pins connected?  Research looks like the tach signal is just generated from a hall effect sensor, so I don't see why the signal wouldn't be generated.  Only questionable area would be if the motherboard essentially 'ignores' the header if the power/gnd pins are connected.

Link to comment
Another random thought was to have the fans (power, gnd, and pwm pins) hooked up to the arduino setup and then the fan tach pin hooked up to the motherboard, so that you can still view the fan RPM in the motherboard web interface.  Does anyone know if only having the tach wire connected to a motherboard header would give a correct readout or does it need all pins connected?
I only have direct experience with 3 pin fans, (pwr,gnd,tach) and those headers generally work with just the ground and tach leads. I had a few power supplies that had just the two wires to plug into the motherboard fan header so the PSU regulated the speed of the internal fan but allowed the motherboard to monitor it. I would think adding the pwm power feed into the equation wouldn't change the monitoring side, but I could be wrong.
Link to comment

Another random thought was to have the fans (power, gnd, and pwm pins) hooked up to the arduino setup and then the fan tach pin hooked up to the motherboard, so that you can still view the fan RPM in the motherboard web interface.  Does anyone know if only having the tach wire connected to a motherboard header would give a correct readout or does it need all pins connected?
I only have direct experience with 3 pin fans, (pwr,gnd,tach) and those headers generally work with just the ground and tach leads. I had a few power supplies that had just the two wires to plug into the motherboard fan header so the PSU regulated the speed of the internal fan but allowed the motherboard to monitor it. I would think adding the pwm power feed into the equation wouldn't change the monitoring side, but I could be wrong.

 

Cool!  Also found this:

 

http://forums.anandtech.com/showthread.php?t=1749130

 

Looks like all you need to do is have your power, ground, and pwm signal on the fan controller (arduino in this case), and then get another 3/4-pin fan header to hook up ONLY the tach to the motherboard for RPM measurement.  It doesn't seem like you would need the ground wire connected to the motherboard, but who knows.  Hopefully ASRock replies and pushes a fan control via motherboard solution and we don't need to worry about this!

Link to comment
It doesn't seem like you would need the ground wire connected to the motherboard, but who knows.
If you don't have a common ground state to measure against, the signal may not be reliable, or even readable. Whether or not the ground path could be through a common PSU ground instead of the ground pin on the fan header is the question. I think it would work fine, but without testing or finding documentation, it's hard to say for sure.
Link to comment

It doesn't seem like you would need the ground wire connected to the motherboard, but who knows.
If you don't have a common ground state to measure against, the signal may not be reliable, or even readable. Whether or not the ground path could be through a common PSU ground instead of the ground pin on the fan header is the question. I think it would work fine, but without testing or finding documentation, it's hard to say for sure.

 

I agree.  Either way, it's not too difficult to run the extra ground wire if need be.

Link to comment
  • 4 weeks later...

Bit of an update - here's the reply:

 

To control fan speed under OS, if you need to go with the Smart Fan based on the HDD temperature, you need to write a command under unRAID v6.0b14 your own using IPMITOOL. Please download it from the attachment.

 

Ipmitool raw 0x3a 0x01 0xAA 0xBB 0xCC 0xDD 0xEE 0xFF 0xGG 0xHH

 

AA: CPU_FAN1(PWM Value)

 

BB: Reserved(Set to 0)

 

CC: REAR_FAN1(PWM Value)

 

DD: Reserved(Set to 0)

 

EE: FRNT_FAN1(PWM Value)

 

FF: Reserved(Set to 0)

 

GG: Reserved(Set to 0)

 

HH: Reserved(Set to 0)

 

 

PWM Value:    00h -> smart fan mode

 

01h~64h -> manual fan mode(1%~100%)

 

 

 

Honestly, this is above my level of knowledge, but if someone is interested and thinks they can get something working, feel free to reply here or message me and I can send the IPMI tool that they passed along.

Link to comment

Bit of an update - here's the reply:

 

To control fan speed under OS, if you need to go with the Smart Fan based on the HDD temperature, you need to write a command under unRAID v6.0b14 your own using IPMITOOL. Please download it from the attachment.

 

Ipmitool raw 0x3a 0x01 0xAA 0xBB 0xCC 0xDD 0xEE 0xFF 0xGG 0xHH

 

AA: CPU_FAN1(PWM Value)

 

BB: Reserved(Set to 0)

 

CC: REAR_FAN1(PWM Value)

 

DD: Reserved(Set to 0)

 

EE: FRNT_FAN1(PWM Value)

 

FF: Reserved(Set to 0)

 

GG: Reserved(Set to 0)

 

HH: Reserved(Set to 0)

 

 

PWM Value:    00h -> smart fan mode

 

01h~64h -> manual fan mode(1%~100%)

 

 

 

Honestly, this is above my level of knowledge, but if someone is interested and thinks they can get something working, feel free to reply here or message me and I can send the IPMI tool that they passed along.

Thank you so much for getting back with this. I already made a basic ipmitool plugin for viewing the sensors in the unRAID webgui and was working on viewing the bmc event log but cleared it lol. So now I need to figure out how to create some events so I can format the output. Now I'll have to think about incorporating fan speed. Maybe merge fan control script and ipmitool commands.

 

Does your board only have 3 fan inputs? Mine has six but I only have 3 fans.  AA and CC are the same.  And EE is probably too but I have my 3rd fan connected to front fan2 so I tried FF.  This is the command I used

ipmitool raw 0x3a 0x01 0x64 0x00 0x64 0x00 0x00 0x64 0x00 0x00

And magic. All fans went full speed. I tried them individually too. Changed 64's back to 00 and fans went back to smart fan mode. So I would assume for the my c2750 this would apply:

 

AA: CPU_FAN1(PWM Value) Tested

 

BB: CPU_FAN2(PWM Value) ? Untested

 

CC: REAR_FAN1(PWM Value) Tested

 

DD: REAR_FAN2(PWM Value) ? Untested

 

EE: FRNT_FAN1(PWM Value)

 

FF: FRNT_FAN2(PWM Value) Tested

 

GG: Reserved(Set to 0) ?

 

HH: Reserved(Set to 0) ?

 

This is the ipmitool I use.  https://github.com/dmacias72/unRAID_6.0/raw/master/ipmitool-1.8.13-x86_64-1_slack.txz

9ea20abb6410d4012fa8760b7a48987d.jpg

93a4e75cfac0c4edcbf325d2e9a8bf0e.jpg

 

Link to comment

dmacias I have the low power M.B that you have, Can I Test your plugin?

I'm Interested to stop fans when all HDD are spin down

 

In groups

 

Grup A (disk1,disk2, disk3) if All disk of GroupA is spin down then stop FAN 1

Group B(disk4,disk5)  if All disk of GroupB is spin down then stop FAN 2

if(CPU lower 40º) then stop FAN3

Link to comment

Looks like you've made good progress!  Keep us updated!

 

I'd also be interested in the plugin you whipped up to be able to play around with this more!

 

EDIT:  Also, that github link seems to be down.  Copying from your other post though:

https://github.com/dmacias72/unRAID_6.0/releases/download/2015.03.22/ipmitool-1.8.13-x86_64-1_fs.tgz

 

EDIT2:  Using your ipmitool, the original values for the ASRock E3C226D2I board are verified.  I was able to control them with AA being CPU, CC as REAR_FAN and EE as FRNT_FAN.

 

I would be interested in working on this if you could point me in the direction of how to start a basic script (such as reading fan speed, and hard drive temps).  Decent with code, just never in this environment.

 

EDIT3:  Looking at the fan control script posted on the forums, it seems like it could be easily updated to account for our needs.

Found here: http://lime-technology.com/forum/index.php?topic=11310.msg108144#msg108144

 

Does your board only have 3 fan inputs? Mine has six but I only have 3 fans.  AA and CC are the same.

 

Yes, front, rear, and cpu headers.  The exact board is below:

http://www.asrockrack.com/general/productdetail.asp?Model=E3C226D2I#Specifications

Link to comment

dmacias I have the low power M.B that you have, Can I Test your plugin?

I'm Interested to stop fans when all HDD are spin down

 

In groups

 

Grup A (disk1,disk2, disk3) if All disk of GroupA is spin down then stop FAN 1

Group B(disk4,disk5)  if All disk of GroupB is spin down then stop FAN 2

if(CPU lower 40º) then stop FAN3

I posted the plugin in the plugin section.

http://lime-technology.com/forum/index.php?topic=39787.msg372425.msg#372425 Right now it just installs ipmitool, does a few modprobe ipmi..., displays sensor and event log. The sensors are color coded based on value. Green = good, yellow then red. The event log can be viewed and cleared. I will add another tab for fan control and work on that later.

Link to comment

Looks like you've made good progress!  Keep us updated!

 

I'd also be interested in the plugin you whipped up to be able to play around with this more!

 

EDIT:  Also, that github link seems to be down.  Copying from your other post though:

https://github.com/dmacias72/unRAID_6.0/releases/download/2015.03.22/ipmitool-1.8.13-x86_64-1_fs.tgz

 

EDIT2:  Using your ipmitool, the original values for the ASRock E3C226D2I board are verified.  I was able to control them with AA being CPU, CC as REAR_FAN and EE as FRNT_FAN.

 

I would be interested in working on this if you could point me in the direction of how to start a basic script (such as reading fan speed, and hard drive temps).  Decent with code, just never in this environment.

 

EDIT3:  Looking at the fan control script posted on the forums, it seems like it could be easily updated to account for our needs.

Found here: http://lime-technology.com/forum/index.php?topic=11310.msg108144#msg108144

 

Does your board only have 3 fan inputs? Mine has six but I only have 3 fans.  AA and CC are the same.

 

Yes, front, rear, and cpu headers.  The exact board is below:

http://www.asrockrack.com/general/productdetail.asp?Model=E3C226D2I#Specifications

I modified my php script I use for the plugin. I would probably be converting the fan control script to php. But it gives you an idea. I just take the output of the ipmitool command separated by commas with the -c option. And convert it into an array. I then take each sensor data separated by commas and convert those into separate arrays. So I have one big array with separate arrays for each sensor. Then you can get whatever values you need from the multi array.

<?php
$command = "/usr/bin/ipmitool -c sdr";
exec($command, $output);
$array = array();
for ($i = 0; $i < sizeof($output); $i++) {
$value = explode(",", $output[$i]);
$array[] = $value;
}
echo json_encode($array);
?>

 

Link to comment

I modified my php script I use for the plugin. I would probably be converting the fan control script to php.

 

 

I will save you from the work, since I've done that some time ago:

 

#!/usr/bin/php
<?PHP
##############################
######  DEAMON SECTION  ######
##############################
$cron         = FALSE;
$DEBUG        = FALSE;

# DO NOT TOUCH
set_time_limit(0);
$program_name = pathinfo(__FILE__, PATHINFO_FILENAME);
$lockfile     = "/var/run/${program_name}.pid";
$service_file = __FILE__;
openlog($program_name, LOG_PID | LOG_PERROR, LOG_LOCAL0);

$usage = <<<EOT
Usage: $program_name         = start the daemon
       $program_name -q      = quit the program if it is running

EOT;

function debug($m){
  global $program_name, $DEBUG;
  if($DEBUG){
    $STDERR = fopen('php://stderr', 'w+');
    fwrite($STDERR, $m."\n");
    fclose($STDERR);
  }
}

$background_args = "";
if(isset($argv)){
  for ($i=0; $i <= count($argv); $i++) { 
    switch ($argv[$i]) {
      case '-q':
        $quit = TRUE;
      break;
      case '--background':
        $background = TRUE;
      break;
      case '-c':
        $cron = $argv[$i+1];
        $background_args .= " ${argv[$i]} ${argv[$i+1]}";
      break;
      case '-d':
        $DEBUG = TRUE;
        $background_args .= " ${argv[$i]}";
      break;
      case '-h':
      case '--help':
      echo $usage;
      exit(0);
      # Especific switches:
    }
  }
}

# Deal with cron
if (isset($cron) && is_numeric($cron) && ! isset($quit)){
  exec("crontab -l 2>/dev/null", $crontab);
  $crontab = array_unique($crontab);
  if (! isset($quit)){
    $entry = sprintf("*/%s * * * *  ${service_file}${background_args} 1> /dev/null 2>&1", $cron);
    if (! preg_grep("#${service_file}#", $crontab)){
      $crontab[] = $entry;
      debug("\nCRONTAB\n".implode("\n", $crontab)."\n");
      file_put_contents("/tmp/${program_name}.cron", implode(PHP_EOL, $crontab));
      shell_exec("crontab /tmp/${program_name}.cron");
      unlink("/tmp/$program_name.cron");
    }
  }
  unset($crontab);
} else if (isset($quit)){
  exec("crontab -l 2>/dev/null", $crontab);
  $crontab = array_unique($crontab);
  if (preg_grep("#${service_file}#", $crontab)){
    $crontab = preg_grep("#${service_file}#", $crontab, PREG_GREP_INVERT);
      debug("\nCRONTAB\n".implode("\n", $crontab)."\n");
    file_put_contents("/tmp/${program_name}.cron", implode(PHP_EOL, $crontab));
    shell_exec("crontab /tmp/${program_name}.cron");
    unlink("/tmp/$program_name.cron");
  };
  unset($crontab);
}

if (is_file($lockfile)){
  $lock_pid = file($lockfile, FILE_IGNORE_NEW_LINES)[0];
  $pid_running=preg_replace("/\s+/", "", shell_exec("ps -p ${lock_pid}| grep ${lock_pid}"));
  if (! $pid_running){
    if (! isset($quit)){
      file_put_contents($lockfile, getmypid());
    } else {
      echo "${lock_pid} is not currently running";
      unlink($lockfile);
      exit(0);
    }
  } else {
    if (isset($quit)){
      syslog(LOG_INFO, "killing daemon with PID [${lock_pid}]");
      exec("kill $lock_pid");
      unlink($lockfile);
      if (function_exists('at_exit')) at_exit();
      exit(0);
    } else {
      echo "$program_name is already running [${lock_pid}]".PHP_EOL;
      exit(0);
    }
  }
} else {
  if(isset($quit)){
    echo "$program_name not currently running".PHP_EOL;
    exit(0);
  } else {
    file_put_contents($lockfile, getmypid());
  }
}

if(!isset($background)){
  exec("php $service_file --background $background_args 1>/dev/null ".($DEBUG ? "":"2>&1 ")."&");
  exit(0);
} else {
  syslog(LOG_INFO, "process started. To terminate it, type: $program_name -q");
}

##############################
#####  PROGRAM SECTION  ######
##############################
$plugin       = "dynamix.system.autofan";
$config_file  = "/boot/config/plugins/${plugin}/fan.conf";

function scan_dir($dir, $type = ""){
  $out = array();
  foreach (array_slice(scandir($dir), 2) as $entry){
    $sep   = (preg_match("/\/$/", $dir)) ? "" : "/";
    $out[] = $dir.$sep.$entry ;
  }
  return $out;
}

function get_highest_temp($hdds){
  $highest_temp="0";
  foreach ($hdds as $hdd) {
    if (shell_exec("hdparm -C ${hdd} 2>/dev/null| grep -c standby") == 0){
      $temp = preg_replace("/\s+/", "", shell_exec("smartctl -A ${hdd} 2>/dev/null| grep -m 1 -i Temperature_Celsius | awk '{print $10}'"));
      $highest_temp = ($temp > $highest_temp) ? $temp : $highest_temp;
    }
  } 
  debug("Highest temp is ${highest_temp}ºC");
  return $highest_temp;
}

function get_all_hdds(){
  $hdds = array();
  $flash = preg_replace("/\d$/", "", realpath("/dev/disk/by-label/UNRAID"));
  foreach (scan_dir("/dev/") as $dev) {
    if(preg_match("/[sh]d[a-z]+$/", $dev) && $dev != $flash) {
      $hdds[] = $dev;
    }
  }
  return $hdds;
}

$hdds = get_all_hdds();
while(TRUE){ while(TRUE){
####  DO YOUR STUFF HERE  ####

# Load config file or die
if(is_file($config_file)){
  $params  = (is_file($config_file)) ? parse_ini_file($config_file) : array();
  extract($params, EXTR_OVERWRITE);
} else {
  unlink($lockfile);
  exit(1);
}

# Wait probes to become ready
if (! is_file($PWM_CONTROLLER) || ! is_file($PWM_FAN)){
  sleep(15);
  continue;
}

# Set PWM_HIGH and PWM_OFF
$PWM_HIGH = 255;
$PWM_OFF = $PWM_LOW-5;

# Disable fan mininum RPM
$FAN_RPM_MIN = file(split("_", $PWM_FAN)[0]."_min", FILE_IGNORE_NEW_LINES)[0];
$D_FAN_RPM_MIN = ($FAN_RPM_MIN > 0) ? $FAN_RPM_MIN : FALSE;

# Enable speed change on fan
$PWM_MODE=file("${PWM_CONTROLLER}_enable", FILE_IGNORE_NEW_LINES)[0];
if($PWM_MODE != 1){
  $DEFAULT_PWM_MODE = $PWM_MODE;
  file_put_contents("${PWM_CONTROLLER}_enable", 1);
}

# Calculate size of increments.
$TEMP_INCREMENTS     = $TEMP_HIGH-$TEMP_LOW; 
$PWM_INCREMENTS      = round(($PWM_HIGH-$PWM_LOW)/$TEMP_INCREMENTS);
# Get current fan rpm and pwm
$CURRENT_PWM         = preg_replace("/\s*/", "", file_get_contents($PWM_CONTROLLER));
$CURRENT_RPM         = preg_replace("/\s*/", "", file_get_contents($PWM_FAN));
# Get current fan PWM percentage
$CURRENT_PERCENT_PWM = round(($CURRENT_PWM*100)/$PWM_HIGH);
$CURRENT_OUTPUT      = "${CURRENT_PWM} (${CURRENT_PERCENT_PWM}% @ ${CURRENT_RPM}rpm)";

# Calculate a new scenario
# Get highest drive temperature
$HIGHEST_TEMP       = get_highest_temp($hdds);
if ($HIGHEST_TEMP <= $TEMP_LOW){
  $NEW_PWM          = $PWM_OFF;
  $NEW_PERCENT_PWM  = 0;
} else if ($HIGHEST_TEMP >= $TEMP_HIGH){
  $NEW_PWM          = $PWM_HIGH;
  $NEW_PERCENT_PWM  = 100;
} else {
  $NEW_PWM          = (($HIGHEST_TEMP-$TEMP_LOW)*$PWM_INCREMENTS)+$PWM_LOW;
  $NEW_PERCENT_PWM  = round(($NEW_PWM*100)/$PWM_HIGH);
}

# Change the fan speed as needed
if ($CURRENT_PWM != $NEW_PWM){
  file_put_contents($PWM_CONTROLLER, $NEW_PWM);
  sleep(5);
  $NEW_RPM         = preg_replace("/\s*/", "", file_get_contents($PWM_FAN));
  $NEW_PERCENT_PWM = round(($NEW_PWM*100)/$PWM_HIGH);
  $NEW_OUTPUT      = "${NEW_PWM} (${NEW_PERCENT_PWM}% @ ${NEW_RPM}rpm)";
  syslog(LOG_INFO, "highest disk temp is ${HIGHEST_TEMP}ºC, adjusting fan PWM from: $CURRENT_OUTPUT to: $NEW_OUTPUT");
}

# PRINT VARIABLES DEBUG 
$defined_vars = get_defined_vars();
foreach (array("_GET","_POST","_COOKIE","_FILES","argv","argc","_SERVER") as $i) {unset($defined_vars[$i]);}
debug("\nDECLARED VARIABLES:\n".print_r($defined_vars, true));
unset($defined_vars);

$time1 = time();
$MD5 = shell_exec("md5sum $config_file|awk '{print $1}'");
$MD5 = md5_file($config_file);
for ($i=0; $i < $INTERVAL*6 ; $i++) { 
  sleep(10);
  if (md5_file($config_file) != $MD5){syslog(LOG_INFO, "config file updated, reloading."); $i=10000;}
}
debug("Sleeped ".(time()-$time1)." seconds.");

######  END OF SECTION  ######
};};?>

Link to comment
  • 6 months later...

This is an old topic and it seems that you guy's have fixed your issue around the fan control. But I have a similar issue with the ASRock - E3C224D4I-14S and wanted to understand how you did it.

 

I have attached the screenshot of IPMI Tools that Dmacias kindly provided. Seems that this is how my 4 pin PWM fans are being attached to the mobo:

AA: CPU_FAN1

BB: Rear Fan

CC: Lower Front Fan

DD: Upper Front Fan

EE: Set to 0

FF: Set to 0

GG: Set to 0

HH: Set to 0

 

I was playing around with the ipmi command and this was setting all back to Smart Control Mode:

ipmitool raw 0x3a 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

 

I saw the script from Dmacias and Gfjardim a few post's back but don't know what to do with it.

Second question is: can I remove the "Dynamix Auto Fan Control" as it is not working with this board anyhow?

Thank you very much.

screen_shot_1.jpg.ab1705e24a88d35bf7a147b20f3e1c92.jpg

Link to comment

 

 

This is an old topic and it seems that you guy's have fixed your issue around the fan control. But I have a similar issue with the ASRock - E3C224D4I-14S and wanted to understand how you did it.

 

I have attached the screenshot of IPMI Tools that Dmacias kindly provided. Seems that this is how my 4 pin PWM fans are being attached to the mobo:

AA: CPU_FAN1

BB: Rear Fan

CC: Lower Front Fan

DD: Upper Front Fan

EE: Set to 0

FF: Set to 0

GG: Set to 0

HH: Set to 0

 

I was playing around with the ipmi command and this was setting all back to Smart Control Mode:

ipmitool raw 0x3a 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

 

I saw the script from Dmacias and Gfjardim a few post's back but don't know what to do with it.

Second question is: can I remove the "Dynamix Auto Fan Control" as it is not working with this board anyhow?

Thank you very much.

 

The IPMI plugin already installs ipmitools. I haven't made much progress other than starting an IPMIFans.page for input. The DO YOUR STUFF HERE part of the script is what needs to be modified. The only thing I've added to the plugin is ipmi event monitoring and notifications. I hadn't spent much time on fan control because of limited time and since my heat issues were solved by putting a plastic barrier between the motherboard and fans thus forcing all intake air through the drive cage. I've been meaning to get back to the fan control. I've started working on it some since adding event notifications.

 

You can remove the Dynamix Auto Fan Control.

Link to comment

 

 

Thanks a lot dmacias. I have added the plastic barrier as well for better air flow. Issue is that the fans are running too fast in Smart Control mode.

 

Ipmi event monitoring and notifications are working very well but I don't see the IPMIFans.page....having installed IPMI Tool 2015.11.10b. Do I miss anything?

 

No I didn't commit it since it's not complete and doesn't do anything yet. I'll have to look but I believe I use smart fan for all fans but raised the temps for all the percentages. I'll see if I can make some progress on the fan page.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.