Jump to content
XPEnology Community
  • 1

control PWM fan speed


jons

Question

Hi, I've installed xpenology (DSM 6.2.2) on a 1U server, but the fan are way to loud. They are SanAce 40 with PWM control, but in the motherboard (MSI ms-s0121) BIOS I can't find any options for the speed. I've installed Entware and lm-sensors; with "sensors-decect" it find  i/o Fintek F71889A, but when I type "pwmconfig" or "fancontrol" it says ""command non found". There are any ways to control fans through Xpenology?

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Synology natively uses a custom circuit that is connected via serial port.  So it is unlikely that you can use any of the internal Synology code to control your fans.  BIOS is probably the best option but as you found, that is dependent upon motherboard implementation.  I have also done what you have - install lm-sensors etc and that can be made to work with some fiddling.

 

fancontrol and pwmconfig are scripts that are usually installed with lm-sensors.  If you are not able to execute them, this is something to do with your installation.

Link to comment
Share on other sites

  • 0

I was looking for a similar solution as the BIOS is linked to the CPU or motherboard temperature. I too did what @jons did and installed Entware and lm-sensors. Some of the limitations of the lm-sensors distributed via opkg is that it does not include the pwmconfig and fancontrol scripts as mentioend by jons, these can however be copied over from the github repo here.

https://raw.githubusercontent.com/lm-sensors/lm-sensors/master/prog/pwm/pwmconfig
https://raw.githubusercontent.com/lm-sensors/lm-sensors/master/prog/pwm/fancontrol

However the problem remains that lm-sensors fancontrol does not use the HDD temperature to control the fanspeed. To do that I am using the  hddfancontrol app from this repo. (https://github.com/desbma/hddfancontrol). This has an option to use smartctl which is included with DSM. 

 

Still setting this up, shall report progress... This can be useful to others running bare metal and wanting speed control of the fan based on disk rather than CPU or MB temperature.   

Link to comment
Share on other sites

  • 0

Thanks for the links to the pwmconfig and fancontrol scripts, @Zac_Nas

 

I'm new to Xpenology and unfortunately am not a Linux expert either. However, like many others here, I am also trying to reduce the rampant noise from my main fan, ideally it will at least adjust to the hard drive temperatures.

 

It is clear to me that for controlling the fan I need a working lm-sensors first. So I installed Entware with opkg, lm-sensors-detect and lm-sensors.

 

"sensors" as root initially showed only the coretemps, sensors-detect discovered other control chips, namely a nct6775 and a jc42. Both have been activated as modules on the loaderstick (I have activated all modules), but are apparently not loaded by the system, respectively an "insmod nct6775.ko" as root does not work. Apparently these modules are only present as a platform-dependent packed file on the loaderstick. Are they mirrored somewhere in the system or can they somehow be extracted directly from the loaderstick?


"sensors-detect" showed the following after a complete scan:

 

Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Driver `nct6775':
  * ISA bus, address 0xa30
    Chip `Nuvoton NCT5573D/NCT5577D/NCT6776F Super IO Sensors' (confidence: 9)

Driver `jc42':
  * Bus `SMBus I801 adapter at f040'
    Busdriver `i2c_i801', I2C address 0x18
    Chip `ON CAT6095/CAT34TS02' (confidence: 5)

  * Bus `SMBus I801 adapter at f040'
    Busdriver `i2c_i801', I2C address 0x1a
    Chip `ON CAT6095/CAT34TS02' (confidence: 5)

Driver `adm1021':
  * Bus `SMBus I801 adapter at f040'
    Busdriver `i2c_i801', I2C address 0x2b
    Chip `Maxim MAX1617' (confidence: 3)

Do you want to generate /etc/sysconfig/lm_sensors? (YES/no): yes
Copy prog/init/lm_sensors.service to /usr/lib/systemd/system
and run 'systemctl enable lm_sensors.service'
for initialization at boot time.

Unloading i2c-i801... failed


"prog/init/lm_sensors.service" does not exist as well as the folder "/prog" does not exist at all - there is no "lm_sensors.service" file on the whole system. Since I used the same installation via Entware as you, how did you create the "lm_sensors.service" file and solve the problem?

 

To be able to include these drivers somehow, I downloaded the modules directly from the loader's website, created a folder "Drivers" on my hard disk in volume1 and copied the unzipped modules into it. With "insmod /volume1/Drivers/nct6775.ko" the integration worked and "sensors" shows the values of the nct6775. But this seems rather inelegant to me and after a reboot you have to remount the driver every time, which is probably due to the missing "lm_sensors.service" file.

 

Thanks for your help.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

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

×
×
  • Create New...