E250/E450 Environmental Monitoring

This is the homepage for the Linux kernel E250/E450 environmental monitoring driver (envctrl). It is no longer in active development. Most of the work was done by Eric Brower, to whom every E250/E450 owner should be very grateful.

Before you consider getting the driver, you should know this: it is not finished or well tested. Right now fan speed control and temperature sensing works, but it's quite possible that bugs exist which will cause your machine to catch fire. Seriously. It nearly happened. Use this driver at your own risk!

Getting the driver

A snapshot of the subversion repository is available to download here.

The snapshot may not compile/work correctly, you'll find working patches in the patches subdirectory.

Compiling the driver

You will need to compile against the correct kernel version. Each patch filename contains the kernel version(s) it supports.

There are two ways you can build the driver: out-of-tree, or by patching the kernel.

i) Building out-of-tree

Once you have obtained the sources from subversion, building out-of-tree is reasonably straight-forward:

  1. Ensure that you have the sources or headers for your kernel installed
  2. Enter the 'trunk' directory where the envctrl sources were downloaded to
  3. To compile the modules, run: make -C /lib/modules/`uname -r`/build M=`pwd`
  4. To install the modules, run: make modules_install -C /lib/modules/`uname -r`/build M=`pwd`
  5. Load the module: 'modprobe envctrl' for E450 or 'modprobe envctrltwo' for E250

ii) Patching the kernel

You need to ensure that you get the correct patch for your kernel. Patches may be found in the patches directory in the repository. Patches are named based on the kernel version they support and the date the patch was made - for best results, use the most recent patch with the kernel version specified.

  1. Change to your kernel source directory
  2. To apply the patch, run: cat envctrl-(kver)-(date).patch | patch -p1
  3. As long as the patch applied cleanly, start the kernel configuration and enable the following options (either as modules or built-in, whichever you prefer):
    Misc Linux/SPARC Drivers -> SUNW,envctrl environmental monitoring support
    Misc Linux/SPARC Drivers -> SUNW,envctrltwo environmental monitoring support
    Device Drivers -> I2C Support -> I2C Hardware Bus support -> Sun Microsystems envctrl I2C bus nexus driver
  4. Build the kernel and configure as you usually would
  5. Once you are running the new kernel, you can load the modules with 'modprobe envctrl' for E450 or 'modprobe envctrltwo' for E250. If you made the modules built-in, they should already be active.