lenovo-sa120-fanspeed-utility

This is currently in prototype status.

Requirements

Requires Python and the sg_ses utility, provided by the sg3_utils package.

Debian-based systems might use:

# apt-get install sg3-utils

On RHEL/CentOS systems:

# yum install sg3_utils

FreeBSD systems via pkg:

# pkg install sysutils/sg3_utils

FreeNAS 9.10 includes sg_ses as part of the standard image.

Solaris/OmniOS/OpenIndiana/SmartOS based systems:

Native Solaris should have sg3_utils installed. If executing sg_ses doesn't exist, it's necessary to install it from source. Installing napp-it, for the ZFS GUI, also installed all the requisite development tools.

On OmniOS CE, the steps involved were:

  • Download the sg3_utils package. Move to somewhere like /root and extract.
  • Change into the directory, configure with ./configure --prefix=/root/sg3_utils.
  • make && make install
  • Run the fan script and set the path in the environment sg_sess_path=/root/sg3_utils/bin/sg_ses python fancontrol.py 2

Usage

Finds the ThinkServer Enclosure automatically. Works when the devices are either /dev/sg*, /dev/ses*, or /dev/bsg/*

Use fancontrol.py to set the fan speed:

# python fancontrol.py 1
Enclosure not found on /dev/sg8
Enclosure not found on /dev/sg7
Enclosure found on /dev/sg6
Fan 0 speed: 1193
Fan 1 speed: 1205
Fan 2 speed: 1171
Fan 3 speed: 1217
Fan 4 speed: 1181
Fan 5 speed: 1218
Reading current configuration...
Setting fan 0 to 1
Setting fan 1 to 1
Setting fan 2 to 1
Setting fan 3 to 1
Setting fan 4 to 1
Setting fan 5 to 1
Set fan speeds... Waiting to get fan speeds (ctrl+c to skip)
  LENOVO    ThinkServerSA120  1008
Sending Enclosure Control [0x2] page, with page length=296 bytes

Fan 0 speed: 440
Fan 1 speed: 596
Fan 2 speed: 593
Fan 3 speed: 449
Fan 4 speed: 583
Fan 5 speed: 607