Storm Posted June 17, 2022 Share Posted June 17, 2022 Does anyone know how to enable the fan speed sensors on my Fujitsu D3644-B motherboard with NCT6796D-sensor? sensors-detect output for Super-I/O is the following: Some Super I/O chips contain embedded sensors. We have to write to standard I/O ports to probe them. This is usually safe. Do you want to scan for Super I/O sensors? (YES/no): Probing for Super-I/O at 0x2e/0x2f Trying family `VIA/Winbond/Nuvoton/Fintek'... Yes Found `Nuvoton NCT6796D Super IO Sensors' (but not activated) dmesg | grep -i nct gives me that: nct6775: Refusing to enable a Super-I/O device with a base I/O port 0 Help please Quote Link to comment
Storm Posted June 23, 2022 Author Share Posted June 23, 2022 Any ideas how to achieve this? Quote Link to comment
bullsei Posted July 5, 2022 Share Posted July 5, 2022 Hi, i just found this thread on google. I also struggled with this using the same motherboard. I found this: https://gist.github.com/superbaud/651d898b3958be552e8d3c403c988fad This script works fine for me to control the fan speed Quote Link to comment
Storm Posted July 6, 2022 Author Share Posted July 6, 2022 Thanks for the reply! but the script seems to be for the D3641 but I have the D3644 with Nuvoton Chip Quote Link to comment
bullsei Posted July 7, 2022 Share Posted July 7, 2022 Yes, I see the same chip when running the sensors-detect but actually the script works. I am also using the D3644B. Give it a try and you will see that it works. Quote Link to comment
Storm Posted July 7, 2022 Author Share Posted July 7, 2022 What parameters I have to use with the script? Just executing does nothing Quote Link to comment
bullsei Posted July 7, 2022 Share Posted July 7, 2022 (edited) you first have to execute the command (ls /sys/bus/i2c/devices/*/hwmon/hwmon*/fan1_input) as stated in the script to figure out the i2c bus number/id. for exmaple for me it outputs /sys/bus/i2c/devices/0-0073/hwmon/hwmon3/fan1_input This means the bus id is 0 ( first number after devices/ - before the dash ) after the dash 0073 is the device id of the chip Then you have to find out the Id of the fan you want to control, in my case thats 0x48 (depending on where your fans are plugged in. 4 available IDs, goes from 0x48 to 0x4b) then you have to play around with the fan speed, from 0 to 255, 255 being 100% fan speed. I am using 2 Noctua NF-A12x25 and i figured the minimum speed i set them to is like 75(not 75%) which should correlate to 75/255 = 0.29 => 29 % fan speed. Then i use the script the following: sudo /path/to/your/script.sh 0 0x48 150 0 being the bus number (could be different for you) 0x48 being the id of the fan you want to set the speed of 150 being the fan speed (from 0 to 255) But please read the script carefully, you might be able to mess things up if you are not careful Edited July 7, 2022 by bullsei fixed small mistakes Quote Link to comment
Storm Posted July 8, 2022 Author Share Posted July 8, 2022 Thanks! Now I have the problem that i2cset is not installed on my machine Where to get the i2ctools and how to install them on unraid? Quote Link to comment
bullsei Posted July 8, 2022 Share Posted July 8, 2022 So I don't use unRAID myself, but I found this via Google I hope this helps getting it installed 🙂 Quote Link to comment
Minion Posted April 30, 2023 Share Posted April 30, 2023 (edited) On 7/5/2022 at 9:09 PM, bullsei said: Hi, i just found this thread on google. I also struggled with this using the same motherboard. I found this: https://gist.github.com/superbaud/651d898b3958be552e8d3c403c988fad This script works fine for me to control the fan speed That GIT link is down. Anyone still has this script? I have a FUJITSU D3633-S12 with the same output: Found `Nuvoton NCT6796D Super IO Sensors' (but not activated) Probing for Super-I/O at 0x4e/0x4f Edited April 30, 2023 by Minion Quote Link to comment
bullsei Posted July 12, 2023 Share Posted July 12, 2023 i dont know how but i just stumbled on this thread again. i still got the script for you. #!/bin/bash # Copyright (C) 2020 Kia # Licensed under Zero Clause BSD License if [[ $# -ne 3 ]]; then echo "usage: $0 (BMC I2C BUS NUMBER) (FAN PAGE) (DUTY CYCLE FLOOR)" echo "" echo "BMC I2C BUS NUMBER can be found as follows" echo "$ ls /sys/bus/i2c/devices/*/hwmon/hwmon*/fan1_input" echo "" echo "if the output of that command is:" echo "/sys/bus/i2c/devices/7-0073/hwmon/hwmon4/fan1_input" echo "that means that the I2C bus number is 7" echo "Check /sys/module/ftsteutates/drivers/i2c\:ftsteutates/ to be sure" echo "" echo "FAN PAGE = 0x48 + index of fan" echo "On my system, FAN PAGE can be (0x48, 0x49, 0x4a, 0x4b)" echo "" echo "DUTY CYCLE FLOOR can be any number from 0 to 255, but please" echo "don't set it lower than it already is." echo "" echo "This tool asks the Teutates BMC (in a way that does not survive" echo "reboots/power-cycles/shutdowns) to keep the PWM waveform that is" echo "fed to the fan corresponding to FAN PAGE to have a duty cycle that" echo "is greater or equal to (DUTY CYCLE FLOOR) / 255" echo "" echo "A fan that runs at MAX_RPM without a PWM signal (or with a DC PWM" echo "signal) will never run slower than MAX_RPM * (DUTY CYCLE FLOOR) / 255" echo "" echo "#########################################################################" echo " ☢CAUTION!!☢" echo "The supplied I2C bus number MUST correspond to the bus where the" echo "Teutates BMC lives on." echo "" echo "The supplied fan page must be between 0x48-0x4f inclusive and" echo "must correspond to a fan in your system connected to the Teutates BMC." echo "" echo "Incorrectly specifying the I2C bus number or fan page may BRICK" echo "or IRREVERSIBLY DESTROY your system!" echo " ☢CAUTION!!☢" echo "#########################################################################" echo "" echo "It is likely that this tool will not produce expected results if" echo "SilentFanConfig-Manager has been run -- which writes fan config stuff" echo "into nonvolatile storage. The aforementioned fan config stuff might" echo "set a different set of control modes, causing the write to 0x86 to" echo "not have the desired effect. I don't have the full Teutates" echo "documentation, so i do not know any of the control laws are." echo "" echo "However, if you have access to SilentFanConfig-Manager, why do you even" echo "need this?" echo "" echo "This tool has only been tested on a single motherboard:" echo "FUJITSU /D3641-S1, BIOS V5.0.0.13 R1.7.0 for D3641-S1x" echo "with FTS Teutates chip revision: 3.11" echo "" echo "FOR USE ONLY ON FUJITSU/KONTRON MOTHERBOARDS WITH TEUTATES BMC" echo "" exit 1 fi case $2 in 0x48|0x49|0x4a|0x4b|0x4c|0x4d|0x4e|0x4f) echo "supplied fan page is "$2 ;; *) echo "INVALID FAN PAGE!!" exit 2 ;; esac set -e echo -n "Testing for Teutates BMC presence... " # test that we have a teutates bmc, ideally this modprobe fails otherwise sudo modprobe ftsteutates # but we need it not be loaded, so we can have the i2c bus to ourselves sudo rmmod ftsteutates echo "present" # this lets us do i2cset sudo modprobe i2c-dev # switch the page for the fan in question. the user is responsible # for making sure this is between 0x48 and 0x4f echo "writing to the i2c bus; hope you gave us the correct one!" sudo i2cset -y $1 0x73 0x7f $2 # set PWM duty cycle sudo i2cset -y $1 0x73 0x86 $3 # set the page back to 0x00 just to be kind to whoever (the kernel module) talks with the BMC after us sudo i2cset -y $1 0x73 0x7f 0x00 echo "writes done" # let us look at our handiwork via sensors(1). # be patient, i think the BMC only updates RPM every second or so sudo modprobe ftsteutates echo "testing" Quote Link to comment
StancuFlorin Posted March 24 Share Posted March 24 Hello, Did anyone solved the problem with Nuvoton not activated? I am using a similar Fujitsu motherboard (D3402) with the latest BIOS installed and I have the same problem. The nice part is that on my backup unRAID server where I am using a Fujitsu D3401 motherboard (with an old BIOS from 2017) and everything worked out of the box. Thanks! Quote Link to comment
softminus Posted April 6 Share Posted April 6 Hey, I'm the author of the script (found this thread because I got a notification on the gist which prompted me to search "Teutates" "fan page" which got me here), it 404's because I changed my github username, here's the new link to the same script (even has the same hash in the URL, just username difference) which should work: https://gist.github.com/softminus/651d898b3958be552e8d3c403c988fad I'm thrilled there's people still using this script! Quote Link to comment
Recommended Posts
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.