1# phosphor-fan-presence
2Phosphor fan provides a set of fan monitoring and control applications:
3
4## Fan Control
5
6Sets fan speeds based on configuration data.
7
8## Fan Presence Detection
9
10Monitors for fan presence using either GPIOs or nonzero tach readings or both.
11
12## Fan Monitor
13
14Compares actual fan speeds against expected ones and takes actions.
15Additional documentation is [here](monitor/README.md).
16
17## Cooling Type
18
19Sets the cooling type property in the inventory based on a GPIO.
20
21This is not built by default, use --enable-cooling type to enable.
22
23## Sensor Monitor
24
25Takes actions based on sensor thresholds and the like.
26Additional documentation is [here](sensor-monitor/README.md).
27
28This is not built by default, use --enable-sensor-monitor to enable.
29
30## To Build
31By default, YAML configuration file(s) are used at build time for each fan
32application. The location of the YAML configuration file(s) are provided at
33configure time to each application.
34
35To build this package using YAML, do the following steps:
36```
37    1. ./bootstrap.sh
38    2. ./configure ${CONFIGURE_FLAGS}
39    3. make
40```
41
42To enable the use of JSON configuration file(s) at runtime, provide the
43`--enable-json` flag at configure time.
44```
45    1. ./bootstrap.sh
46    2. ./configure ${CONFIGURE_FLAGS} --enable-json
47    3. make
48```
49*Note: The following fan applications support the use of a JSON configuration
50file.*
51* Fan presence detection(presence)
52  * The error logging feature is only available via the JSON configuration.
53* [Fan monitoring(monitor)](monitor/README.md)
54  * [JSON Documentation](monitor/json)
55* Fan control(control) - limited functionality
56    * Currently only supports setting fans to the configured `full_speed`
57      (If you require more than just setting fans to the configured
58       `full_speed`, it is recommended to continue using YAML based
59       configurations until the final work can be completed to enable
60       full fan control JSON support.)
61
62To clean the repository run `./bootstrap.sh clean`.
63