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.
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.