# fan control for Sun Blade 1000?



## tingo (Oct 20, 2020)

Recently I revived my Sun Blade 1000 workstation. It still runs FreeBSD 8.2 from 2011:

```
tingo@blade1k$ uname -a
FreeBSD blade1k.kg4.no 8.2-STABLE FreeBSD 8.2-STABLE #0: Sun Aug 21 23:15:09 CEST 2011     root@blade1k.kg4.no:/usr/obj/usr/src/sys/GENERIC  sparc64
```
If I have a working CD-burner I will upgrade to 11.4.
Question: has anyone written a fan control program or driver for the Blade 1000? I couldn't find anything, but it can't hurt to ask here too.


----------



## mark_j (Oct 23, 2020)

Did it even have a fan control? My memory says not.


----------



## tingo (Oct 24, 2020)

Your memory remembers incorrectly about this then. ;^) Just try to power on your nearest Sun Blade 1000, and discover with your own ears that it does indeed have a fan control.


----------



## tingo (Apr 20, 2021)

Today I booted a Sun Blade 2000, using the same FreeBSD 8.2-drive that I used on the Blade 1000, it too doesn't have fan control.
dmesg output shows this interesting little tidbit

```
root@blade1k# dmesg | grep schppm
schppm0: <Schizo power management> mem 0x40004410050-0x40004410057 on nexus0
```
Alas, man schizo(4) doesn't exist, and various apropos (power management, fan control, sparc, sparc64, etc) yields no results.


----------



## tingo (Apr 20, 2021)

Looks like OpenBSD has tda(4), but that probably needs the sensor framework too, hmm...


----------



## mark_j (Apr 21, 2021)

We have a couple old Suns (E450, V480 etc) running internal stuff and all I can see is envstat reporting fan speed (running NetBSD 8). I don't even recall under Solaris how you could change the speeds. Maybe via RSC? They generally modulate their speed based on power usage/aka heat not via user control.

Why don't you get Solaris 10 (did they not come with Solaris 8 anyway) and install it and see if it has fan speed manipulation?


			https://www.oracle.com/solaris/solaris10/downloads/solaris10-get-jsp-downloads.html


----------



## tingo (Apr 21, 2021)

Oh, the machines has fan speed control; no doubt about it, here is the relevant part of the output from prtconf on a sb1000:

```
Node 0xf0083578
                    .node:  f0083578
                    reg:  00000000.00000030
                    compatible: 'i2c-max1617'
                    name: 'temperature'

                Node 0xf0083638
                    .node:  f0083638
                    reg:  00000000.00000048
                    compatible: 'i2c-tda8444'
                    name: 'fan-control'
```
taken from here.


----------



## mark_j (Apr 21, 2021)

But does it have fan control available to the user? As I said my experience is Suns report fan speeds but I just don't recall any comnand to manipulate them (God knows it would save decibels if you could on some SunFires).
My understanding is the firmware controls the fans via the service module on board.

An authoratative way is to install Solaris on it, see if prtdiag -v reports the fans (on some servers it never worked, go figure) and whether there's a device exposed for it. I bet NO.


----------



## tingo (Apr 22, 2021)

The user? I don't understand what you are trying to say here.
1) Fan control is available on these machines (SB 1000, SB 2000)
2) fan control works in operating systems that supports it (example: Solaris)
3) point number 2 can be verified (and I have done so) using nothing but your ears (providing that you have functioning hearing)
4) FreeBSD doesn't have working fan control for SB 1000, SB 2000 - yet
5) without fan control the fans go full blast - the noise is too much for more than a few minutes

and I'm trying to see if there is anyone who has made a small program that I can run under FreeBSD, so I can bear working on these machines for more than a few minutes.


----------



## mark_j (Apr 22, 2021)

What's the fan control command for Solaris?


----------



## sko (Apr 22, 2021)

IIRC the fans were controlled by the BMC - so the only way to interact with the fan control (if any) should be via the ILOM/ALOM. I doubt there is a driver for anything other than solaris/illumos to directly interact with it (like /dev/ipmi), but you can always connect via network. If you can set the fan speed via simple commads like e.g. with IPMI and ipmitools, scripting the actual fan speed control should be fairly simple. What's not that simple is the control logic that takes in various temperatures and decides how fast the fans should spin (been there, done that, never want to do it myself again) - but there are a bunch of PID controllers for fan control on github (i.e. for supermicro IPMI) that could be modified to send commands to the ILOM (and maybe reading the temperatures from it).


----------

