Prev |  | Next

### H.3. Driver selection

#### Serial drivers

    --with-serial

Note this means drivers where serial port is the only supported connection (most of the NUT drivers), and half the ability of nutdrv_qx(8) (which can be built to use serial or USB or both types of media links).

This toggle is currently unrelated to modbus drivers which normally use Serial RTU, but some can use TCP RTU and USB RTU. This might be or not be revised in future NUT releases.

It also does not impact the build of `libnutscan` for 8, 8, and possibly other (third-party) consumers, which as a library aims to support all communications media it can.

#### USB drivers

Build and install the serial drivers (default: yes)

    --with-usb

Build and install the USB drivers (default: auto-detect)

Note that you need to install the libusb development package or files, and that both libusb 0.1 and 1.0 are supported. In case both are available, libusb 1.0 takes precedence, and will be used by default.

It is however possible to override this default choice by explicitly calling `--with-usb=libusb-0.1` or `--with-usb=libusb-1.0`.

If you do specify the version to use (or `yes` for auto-detection), this option would fail if requested (or any) libusb version was not found. The default `auto` value would not fail in such case.

### Warning

If you intend to use the `libmodbus` variant with `libusb` support, you would require `libusb-1.0` specifically; the implementation or "compat API" of `0.1` is not supported by that library version.

#### SNMP drivers

    --with-snmp

Build and install the SNMP drivers (default: auto-detect)

Note that you need to install libsnmp development package or files.

    --with-net-snmp-config

In addition to the `--with-snmp` option above, this one allows to provide a custom program name (in `PATH`) or complete pathname to `net-snmp-config` (may have copies named per architecture, e.g. `net-snmp-config-32` and `net-snmp-config-64`).

This may be needed on build systems which support multiple architectures, or in cases where your distribution names this program differently. With a default value of `yes` it would mean preference of this program, compared to information from `pkg-config`, if both are available.

#### XML drivers and features

    --with-neon

Build and install the XML drivers (default: auto-detect)

Note that you need to install neon development package or files.

#### LLNC CHAOS Powerman driver

    --with-powerman

Build and install Powerman PDU client driver (default: auto-detect)

This allows to interact with the Powerman daemon, and the numerous Power Distribution Units (PDU) supported by the powerman project.

Note that you need to install powerman development package or files.

#### IPMI drivers

    --with-ipmi
    --with-freeipmi

Build and install IPMI PSU driver (default: auto-detect)

This allows to monitor numerous Power Supply Units (PSU) found on servers.

Note that you need to install freeipmi (0.8.5 or higher, for nut-scanner; and 1.0.1 or higher, for nut-ipmipsu) development package or files.

#### UPower/D-Bus drivers

    --with-upower (default: auto-detect)

Build and install the `nut-upower` driver.

This allows to monitor UPS and battery devices managed by the UPower daemon via D-Bus. This introduces a new category of drivers that talk to operating system services to obtain power state information.

Note that you need to install `glib-2.0` and `gio-2.0` development packages or files.

#### I2C bus drivers

    --with-linux_i2c

Build and install i2c drivers (default: auto-detect)

Note that you need to install libi2c development package or files.

#### GPIO bus drivers

    --with-gpio

Build and install GPIO drivers (default: auto-detect)

Note that on Linux you need to install libgpiod library and development package or files. This seems to be present in distributions released after roughly 2018. Other platforms are not currently supported, but may be in the future.

#### Modbus drivers

    --with-modbus

Build and install modbus (Serial, TCP) drivers (default: auto-detect)

Note that you need to install libmodbus development package or files.

For most drivers, the ability to use serial port (and build code for that) is implicitly required, and currently independent from `--with-serial` option.

    --with-modbus+usb

Require a variant of libmodbus with RTU USB support. This feature is currently not available in upstream project or OS distribution packages, so your NUT build environment should provide a prerequisite build of https://github.com/networkupstools/libmodbus/tree/rtu_usb (may be a static library build, used from a temporary installation prefix location, to avoid potential conflicts with the OS packaged shared library). You would also need specifically `libusb-1.0` (not the older API).

At the time of this writing, such constraint can be desirable for the apc_modbus(8) driver which supports different communication media.

For more details please see https://github.com/networkupstools/nut/wiki/APC-UPS-with-Modbus-protocol

#### Manual selection of drivers

    --with-drivers=<driver>,<driver>,...

Specify exactly which driver or drivers to build and install (this works for serial, usb, and snmp drivers, and overrides the preceding three options).

As of the time of original writing (2010), there are 46 UPS drivers available. Most users will only need one, a few will need two or three, and very few people will need all of them.

To save time during the compile and disk space later on, you can use this option to just build and install a subset of the drivers. For example, to select `mge-shut` and `usbhid-ups`, you’d do this:

    --with-drivers=apcsmart,usbhid-ups

If you need to build more drivers later on, you will need to rerun `configure` with a different list. To make it build all of the drivers from scratch again, run `make clean` before starting.

Prev | Up | Next
| Home |