SWSENSOR(4) | Device Drivers 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 and state can be manually updated by modifying the sysctl(8) variables “hw.swsensor.cur_value” and “hw.swsensor.state” variables respectively.

# 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 1, 2016 | NetBSD 9.0