bubbaQ Posted March 9, 2010 Share Posted March 9, 2010 There have been several threads regarding automatically adjusting fan speeds based on drive/system temps. Some motherboards support variable-speed fan headers, but the ones that do, often only support it on one fan header. It also limits your mobo choices if you need fan speed control on the mobo. And you run into driver issues under Linux. I decided to look at hardware based solutions independent of the mobo. What I really would like, is the Sunbeam Theta, with a few changes.... but alas, it is long out of production. I got a Matrix Orbital LED MX-series matrix display, not necessarily for the display, but because it had headers for variable seed fan control, and temperature sensors. There is decent documentation for the MX, but I had to develop for it in C. I now have a C class for reading and storing all unRAID server info (output from /proc/mdcmd) and the prototype of the unraid-specific fan control is working. I got the Matrix Orbital since it has largest market share and community support. However, the Crystal Fontz CFA633 series has similar abilities for a little less, about $60. http://www.crystalfontz.com/product/CFA633TMCKU I also found the T-Balancer? bigNG MultiFunction Fan / Pump Controller which sits in an empty slot cover... so no drive bay is needed.... but it is the most expensive at $90. http://www.sidewindercomputers.com/tbalancerbigng.html Comments? Link to comment
prostuff1 Posted March 9, 2010 Share Posted March 9, 2010 I like the idea of an LCD screen to display stuff, but frankly I would probably never see it unless I was working on the server. My server sits in the basement out of the way, so as not to be seen or heard. I use the email notifications to keep on top of things that are happening to the system. I like the internal T-Balancer for that reason. I wish it was a little less expensive but I could probably foot out for it. Link to comment
jdmlight Posted March 9, 2010 Share Posted March 9, 2010 I got a Matrix Orbital LED MX-series matrix display, not necessarily for the display, but because it had headers for variable seed fan control, and temperature sensors. Would we be able to use the LCD to display information about the server (drive status, temperatures, free space, etc - the kind of stuff available in the unRAID main webpage)? Or would it simply to be for fan control? If it could display server information, I'd be interested; otherwise, $60 is kinda high to just control fan speeds IMHO. Link to comment
jpimlott Posted March 9, 2010 Share Posted March 9, 2010 I got a Matrix Orbital LED MX-series matrix display, not necessarily for the display, but because it had headers for variable seed fan control, and temperature sensors. Would we be able to use the LCD to display information about the server (drive status, temperatures, free space, etc - the kind of stuff available in the unRAID main webpage)? Or would it simply to be for fan control? If it could display server information, I'd be interested; otherwise, $60 is kinda high to just control fan speeds IMHO. +1 , drive failures and currant temps would be great info. Link to comment
bubbaQ Posted March 10, 2010 Author Share Posted March 10, 2010 If anyone has a Matrix Orbital MX series and is willing to beta test some unRAID fan control software, please PM me. Link to comment
bubbaQ Posted March 11, 2010 Author Share Posted March 11, 2010 Ok..... here's another option, but less universal. I can do this project by varying a PWM fan on the motherboard. But 1) some mobos don't use the it87 chip, 2) those that do often don't have PWM control of fan speeds except for the CPU fan. On your unraid box, see what hardware monitoring is available: ls -la /sys/devices/platform and see if you have something with it87. If a lot of people have it87 chips, it may be worth it to code a fan control applet for unRAID that will talk to the it87. Link to comment
prostuff1 Posted March 11, 2010 Share Posted March 11, 2010 When I run that command on my server I get the following output: root@Tower:~# ls -la /sys/devices/platform/ total 0 drwxr-xr-x 7 root root 0 Mar 11 11:20 ./ drwxr-xr-x 8 root root 0 Mar 10 04:35 ../ drwxr-xr-x 4 root root 0 Mar 11 11:20 floppy.0/ drwxr-xr-x 4 root root 0 Mar 11 11:20 i8042/ drwxr-xr-x 4 root root 0 Mar 11 11:20 pcspkr/ drwxr-xr-x 2 root root 0 Mar 11 11:20 power/ drwxr-xr-x 4 root root 0 Mar 11 11:20 serial8250/ -rw-r--r-- 1 root root 4096 Mar 11 11:20 uevent Link to comment
bubbaQ Posted March 11, 2010 Author Share Posted March 11, 2010 What happens if you issue this command: modprobe it87 Also try: ls -la /sys/class/hwmon Link to comment
prostuff1 Posted March 11, 2010 Share Posted March 11, 2010 What happens if you issue this command: modprobe it87 I just get returned to the command prompt ls -la /sys/class/hwmon I get this: root@Tower:~# ls -la /sys/class/hwmon/ total 0 drwxr-xr-x 2 root root 0 Mar 11 11:27 ./ drwxr-xr-x 27 root root 0 Mar 11 11:27 ../ lrwxrwxrwx 1 root root 0 Mar 11 11:27 hwmon0 -> ../../devices/platform/it87.656 /hwmon/hwmon0/ NOTE: This is on a system running 4.4.2 and BubbaRAID. I have a 4.5.3 system setup but no remote access to it at this point. Link to comment
bubbaQ Posted March 11, 2010 Author Share Posted March 11, 2010 Try the command: ls -la /sys/devices/platform again now after you have issued the modprobe it87. In the latest version of unRAID, the IT87 driver is built into the kernel... perhaps in your version it was not, and must be modprobed. Link to comment
prostuff1 Posted March 11, 2010 Share Posted March 11, 2010 Try the command: ls -la /sys/devices/platform again now after you have issued the modprobe it87. In the latest version of unRAID, the IT87 driver is built into the kernel... perhaps in your version it was not, and must be modprobed. It would seem you are correct. When I run the above command now I get: root@Tower:~# ls -la /sys/devices/platform/ total 0 drwxr-xr-x 8 root root 0 Mar 11 11:26 ./ drwxr-xr-x 8 root root 0 Mar 10 04:35 ../ drwxr-xr-x 4 root root 0 Mar 11 11:20 floppy.0/ drwxr-xr-x 4 root root 0 Mar 11 11:20 i8042/ drwxr-xr-x 4 root root 0 Mar 11 11:27 it87.656/ drwxr-xr-x 4 root root 0 Mar 11 11:20 pcspkr/ drwxr-xr-x 2 root root 0 Mar 11 11:20 power/ drwxr-xr-x 4 root root 0 Mar 11 11:20 serial8250/ -rw-r--r-- 1 root root 4096 Mar 11 11:20 uevent Link to comment
bubbaQ Posted March 11, 2010 Author Share Posted March 11, 2010 How many fan headers on your motherboard (other than CPU fan)? Do you have enough fan's to put one on each fan header for testing? Link to comment
prostuff1 Posted March 11, 2010 Share Posted March 11, 2010 How many fan headers on your motherboard (other than CPU fan)? Do you have enough fan's to put one on each fan header for testing? I am using this motherboard, and I should have enough fans hidden away somewhere to do testing. Link to comment
xamindar Posted March 11, 2010 Share Posted March 11, 2010 bubbaQ, why does it have to be it87? unRAID only has that driver built in? Link to comment
bubbaQ Posted March 11, 2010 Author Share Posted March 11, 2010 The ITE 87 variants are very common... on both AMD and Intel mobos. They all use the same linux driver, and that driver is in unRAID as of the last several minor versions. I has an easy interface to reading fan speeds and controlling them with PWM (as long as the mobo manufacturer implemented the hardware for it). Link to comment
jupilerman Posted March 12, 2010 Share Posted March 12, 2010 On your unraid box, see what hardware monitoring is available: ls -la /sys/devices/platform and see if you have something with it87. If a lot of people have it87 chips, it may be worth it to code a fan control applet for unRAID that will talk to the it87. root@Tower:~# ls -la /sys/devices/platform total 0 drwxr-xr-x 6 root root 0 Mar 12 10:39 ./ drwxr-xr-x 8 root root 0 Mar 12 10:39 ../ drwxr-xr-x 5 root root 0 Mar 12 10:39 i8042/ drwxr-xr-x 4 root root 0 Mar 12 10:39 pcspkr/ drwxr-xr-x 2 root root 0 Mar 12 10:42 power/ drwxr-xr-x 4 root root 0 Mar 12 10:39 serial8250/ -rw-r--r-- 1 root root 4096 Mar 12 10:42 uevent root@Tower:~# I don't have it. Link to comment
purko Posted March 12, 2010 Share Posted March 12, 2010 Nope. I don't have it either. Linux 2.6.32.9-unRAID. root@Tower:~# ls -la /sys/devices/platform total 0 drwxr-xr-x 8 root root 0 Mar 11 11:19 ./ drwxr-xr-x 6 root root 0 Mar 11 11:19 ../ drwxr-xr-x 5 root root 0 Mar 11 11:19 i8042/ drwxr-xr-x 4 root root 0 Mar 11 11:19 pcspkr/ drwxr-xr-x 2 root root 0 Mar 11 11:51 power/ drwxr-xr-x 3 root root 0 Mar 11 11:19 rtc_cmos/ drwxr-xr-x 4 root root 0 Mar 11 11:19 serial8250/ -rw-r--r-- 1 root root 4096 Mar 11 11:19 uevent drwxr-xr-x 4 root root 0 Mar 11 11:19 w83627hf.2560/ root@Tower:~# Link to comment
prostuff1 Posted March 12, 2010 Share Posted March 12, 2010 It did not show up for me either until I did a modprobe it87 first. Then when I reran the command it showed up. Link to comment
purko Posted March 12, 2010 Share Posted March 12, 2010 It did not show up for me either until I did a modprobe it87 first. Then when I reran the command it showed up. Nope. "FATAL: Module it87 not found." Linux 2.6.32.9-unRAID. root@Tower:~# modprobe it87 FATAL: Module it87 not found. root@Tower:~# ls -la /sys/devices/platform total 0 drwxr-xr-x 8 root root 0 Mar 11 11:19 ./ drwxr-xr-x 6 root root 0 Mar 11 11:19 ../ drwxr-xr-x 5 root root 0 Mar 11 11:19 i8042/ drwxr-xr-x 4 root root 0 Mar 11 11:19 pcspkr/ drwxr-xr-x 2 root root 0 Mar 11 11:51 power/ drwxr-xr-x 3 root root 0 Mar 11 11:19 rtc_cmos/ drwxr-xr-x 4 root root 0 Mar 11 11:19 serial8250/ -rw-r--r-- 1 root root 4096 Mar 11 11:19 uevent drwxr-xr-x 4 root root 0 Mar 11 11:19 w83627hf.2560/ root@Tower:~# Link to comment
bubbaQ Posted March 12, 2010 Author Share Posted March 12, 2010 jupilerman, try running "modprobe it87" first. Purko, you have the Winbond 83627. I think I can work with that one too. Link to comment
purko Posted March 12, 2010 Share Posted March 12, 2010 Purko, you have the Winbond 83627. I think I can work with that one too. Then I'm your guinea pig. Bring it on. Link to comment
jdmlight Posted March 12, 2010 Share Posted March 12, 2010 Here's the result of those two commands on my unRAID server: Linux 2.6.31.12-unRAID. root@JohnsMediaServer:~# modprobe it87 FATAL: Module it87 not found. root@JohnsMediaServer:~# ls -la /sys/class/hwmon total 0 drwxr-xr-x 2 root root 0 Mar 9 23:35 ./ drwxr-xr-x 26 root root 0 Mar 9 23:35 ../ lrwxrwxrwx 1 root root 0 Mar 9 23:35 hwmon0 -> ../../devices/platform/coretemp.0/hwmon/hwmon0/ lrwxrwxrwx 1 root root 0 Mar 9 23:35 hwmon1 -> ../../devices/platform/coretemp.1/hwmon/hwmon1/ lrwxrwxrwx 1 root root 0 Mar 9 23:35 hwmon2 -> ../../devices/platform/it87.656/hwmon/hwmon2/ Looks like I have the ITE 87. I have one 4-pin PWM fan for my CPU and one 3-pin fan for my case (will be getting a second 3-pin fan for my case). If it helps for testing purposes I can get a second 4-pin PWM fan for the second header on my motherboard. (I have two 3-pin headers and two 4-pin headers) Please let me know if I can help. (posts in this thread, PM, email, IM, whatever, just let me know) Link to comment
bubbaQ Posted March 12, 2010 Author Share Posted March 12, 2010 I'm working on a universal app to do this, but for those who want to experiment, here is how PWM (pulse width modulation) for fan control works on Linux. You need to have hardware monitoring support installed. UnRAID has some drivers available, although you may need to load them. First, see what devices you have: ls -la /sys/devices/platform What you want to see is a directory beginning with “it87" or “w83627” and that is your hardware monitoring driver. If you don’t see one, try these command to load, then, and then list the directory again. modprobe it87 modprobe w83627hf ls -la /sys/devices/platform Once you find the directory for your monitoring chip, change to that directory. On my test system, it is “it87.552" so I enter: cd /sys/devices/platform/it87.552 In that directory should be several files beginning with fan* and pwm* which we will use. Fan1_input is the speed of fan 1 pwm1_freq is the pwm setting (from 0 to 255) for fan 1 pwm1_enable has either a 1 or 0 (1 is enabled, 2 is disabled) To read fan1 speed, use: cat fan1_input To set a PWM setting for fan one, first you have to enable PWM changing: echo 1 > pwm1_enable Then you write a value to pwm1. To set the fan on high, you use echo 255 > pwm1 To set the fan speed to a lower value, use a lower setting for PWM, such as 50: echo 50 > pwm1 You have to experiment to find what PWM settings will produce what RPM on each fan. I usually pull out the manual for the mobo, and write in it noting which fan header is which unr Linux, for future reference. You also have to experiment to find out which fan headers on the mobo are fan1, fan2, and fan3. Fan1 is often the CPU fan, but not always. All fan headers on the mobo are not necessarily accessible via the hardware monitoring chip. Link to comment
jdmlight Posted March 12, 2010 Share Posted March 12, 2010 Alright, this is pretty sweet. I just tried controlling my fan1 (CPU PWM fan). I found that echo 199 > pwm1 is the lowest my CPU fan can spin (110 RPM!) Touching the fan blades causes them to stop. echo 255 > pwm1 gives me 886 RPM. So this must be a 900 RPM fan...which explains why it's so quiet! (it's the fan that came with my Xigmatek S-1283 heatsink, a 120mm CPU fan . Really quite overkill for unRAID, but it sure is quiet.) Edit: Tried plugging my CPU fan into my second PWM header. This one works as well, but my fan spins faster by default. Could be a BIOS setting? echo 120 > pwm2 gives me 150 RPM and echo 255 > pwm2 gives me 1493 RPM. I don't think I can control the 3-pin headers, but it could just be a different command. (I tried echo 200 > fan3 and it didn't work) I CAN however see the speed of the fans on the 3-pin headers. Link to comment
bubbaQ Posted March 12, 2010 Author Share Posted March 12, 2010 You can get odd results on the CPU fan header likely because as soon as you set it, the thermal control of the system resets it to something else.... and in particular will impose max/min settings. In short, you are unlikely to get reliable or consistent with the CPU fan header.... so ignore it. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.