Supermicro X9 dual socket (2011) i2c/sensors driver?

Joined
Sep 14, 2008
Messages
1,622
Anyone know what chip these boards use? I am trying to get fan control and temperatures from linux on my X9DR3-LN4F+. I used to be able to get this no problem on my old X8DTH via the w83793 driver on linux but unlike usual supermicro does not list what chip they use. Also the BIOS doesn't list temps or fan control anywhere.. very lame:

Here is the board:

http://www.supermicro.com/products/motherboard/xeon/c600/x9dr3-ln4f_.cfm

I know quite a few of you guys do linux and these types of boards so I was hoping maybe one of you guys knew the answer I was looking for.
 
Try finding an SMCI chip. It's really a Nuvoton (Winbond) but SM-branded.

4P intel board has SMCI (NCT)7904D. Yours might have the same thing.

EDIT: one more thing you should be aware of -- IPMI/BMC may be accessing this chip
over I2C as well. If that's the case (likely), you may run into bus collisions (Linux I2C
vs. IPMI/BMC) which the machine usually doesn't handle very well.

Your options are:
1. Disabling IPMI/BMC (board jumper) and using Linux I2C exclusively
2. Marrying Linux sensors with ipmi-si [not using I2C directly but piggying-back on IPMI]
   -- I don't believe there's any support for that == would need some research/work
   http://bmcsensors-26.sourceforge.net/ -- not sure how well this could work (just found it)
   or if/how it ever made to mainline kernel
 
Last edited:
Thanks for the input tear.

BMC is actually already disabled (via the jumper) mainly due to a problem I was having entering the BIOS as I have a gtx 670 4 GB graphics card in it and it would freeze on a black screen when I tried to enter the BIOS.

I am having a little trouble finding info on the nct 7904d. Do you know if linux supports that.

The main thing I want is the pwm fan control so I can control fan speed at will. Not sure if any IPMI based implementation will give me that. The w83793 driver that I used with my old supermicro board allowed me full fan control.
 
Were you able to confirm you have the 7904d as well?
I searched Linux git tree from about a month ago (local copy) and found no trace
of 7904d support whatsoever :(

There are four PWM sources on the 7904d -- here's how to manipulate them manually
(with IPMI disabled -- just saying for the record); also using bus number 0 in this
example:

Code:
i2cset -y 0 0x2d 0xff 0x03
i2cset -y 0 0x2d 0x10 0xff
i2cset -y 0 0x2d 0x11 0xff
i2cset -y 0 0x2d 0x12 0xff
i2cset -y 0 0x2d 0x13 0xff

First i2cset selects register bank [bank 3]. Other four select PWM duty cycle (0xff -- 100%)
of each source (0x10-0x13).

With Quisarious' help we've determined that X9DRx has 7904d at address 0x2d.
This sequence has been confirmed working with X9QRi (chip at address 0x2e) and should work
on any board with same chip (EDIT: barring I2C address strap configuration).

Make sure you have appropriate bus driver (i2c-i801 IIRC) loaded and are using proper i2c
bus number (to discover, use: ls -l /sys/bus/i2c/devices/ and look for symlink to PCI device
00:1f.3). You'll need i2c-dev module as well.
 
Last edited:
Back
Top