SWSENSOR(4) | Kernel Interfaces Manual | SWSENSOR(4)

# NAME

swsensor — software environmental sensor

# SYNOPSIS

pseudo-device swsensor

# DESCRIPTION

The swsensor driver provides a software environmental sensor that works with sysctl(8) and envstat(8). The driver is intended to be loaded as a kernel module. One can, however, include the swsensor driver directly in a kernel using the configuration from the synopsis. By default, the sensor is of type ENVSYS_UNITS_INTEGER.

The following values can be specified in the modload(8) command when loading the swsensor module to alter the driver's behavior.

Variable Usage
`mode`
  Controls whether or not swsensor provides internally-maintained limits and limit checking
  Value Meaning
  `0`
    sensor has no internally-maintained limits
  `1`
    sensor provides its own internal limit value
  `2`
    sensor maintains an internal adjustable limit and performs its own comparison between the sensor's limit and its current value
`limit`
  The initial alarm limit value, if limit emulation is selected (i.e., if mode is set to 1 or 2)
`value_max`
`value_min`
  The maximum and minimum values. The corresponding ENVSYS_FVALID_MAX and ENVSYS_FVALID_MIN flags are implicitly set.
`percentage`
  This boolean value controls the setting of the ENVSYS_FPERCENT flag.
`type`
  Define the sensor's unit/type. By default, a Temperature sensor is created. Any of the string values from the following table can be specified:

  Temperature | Fan | Voltage AC
  Voltage DC | Ohms | Watts
  Ampere | Watt hour | Ampere hour
  Indicator | Integer | Drive
  Battery capacity | Battery charge

  (Values are case-sensitive, and spaces must be included.)
`value`
  Provide an initial value for the sensor. If this is omitted, the sensor's initial value is set to zero.

For example,

> `modload -s type=Voltage\ DC swsensor`

will create a sensor of type ENVSYS_UNITS_SVOLTS_DC, while

> `modload -i mode=1 -i limit=50 swsensor`

will create a sensor which has an initial, device-provided limit of 50.

The sensor's raw value can be manually updated by modifying the sysctl(8) variable “hw.swsensor.cur_value”.

# SEE ALSO

modctl(2), envstat(8), sysctl(8)

# HISTORY

The swsensor driver was written by Paul Goyette and first appeared in NetBSD 6.0.

# BUGS

The swsensor driver emulates a device with only a single sensor.

The swsensor driver can only emulate one hardware-managed limit; this is assumed to be the critical-min limit.

June 19, 2011 | NetBSD 6.0