Intel® VROC LED Management in Linux

Intel® VROC LED management in Linux* is handled through the ledmon and ledctl utilities. These tools are validated for use with Intel storage controllers only. ledmon runs as a daemon to continuously monitor drive and RAID volume status, setting the appropriate LED indicators. Only one instance of ledmon should run at a time. On most modern Linux* installations, ledmon is automatically managed as a systemd service. If systemd is not available, administrators must add ledmon manually to the /etc/rc.local file.

The ledctl utility is used to identify individual drives on a backplane, helping map drives to their corresponding slots. It uses SGPIO and SES-2 protocols and follows IBPI patterns defined in the SFF-8489 specification for SGPIO. The service monitors all RAID volumes globally; monitoring of individual volumes is not supported.

Note: Intel® VROC only supports the left-asymmetric layout for RAID 5.

7.1 Installing ledmon package

The ledmon package is by default included in all modern Linux* distributions. If it is not by default installed during Linux* OS installation process, the user can manually install it by following the user guide of a specific Linux* distribution. If there is a specific out-of-box release from Intel, follow Intel VROC Linux* Release Note to install the out-of-box ledmon package.

7.2 Configuring ledmon

The ledmon daemon is typically configured to run as a background service to manage Intel® VROC drive LEDs. On most modern Linux* distributions, it is deployed as a systemd service, which ensures automatic startup at every system boot. If systemd is not available in your environment, ledmon must be manually configured to launch from /etc/rc.local.

7.2.1 Configuring ledmon with systemd

On most modern Linux* systems, the ledmon service is loaded automatically by systemd at boot. To verify its status, run:

systemctl status ledmon.service

If the service is not running, check whether the ledmon.service unit file exists in the /usr/lib/systemd/system/ directory. If it does not, create the file with the following content:

[Unit]
Description=Enclosure LED Utilities
[Install]
WantedBy=multi-user.target [Service]
Type=simple User=root
ExecStart=/usr/sbin/ledmon –
foreground Restart=on-failure

Once the file is in place, use these commands to control the service:

  • Start the service manually:

systemctl start ledmon.service
  • Enable auto-start on boot:

# systemctl enable ledmon.service

With this configuration, ledmon will automatically run as a daemon at system startup to monitor Intel® VROC RAID volumes and manage LED indicators.

7.2.2 Configuring ledmon with /etc/rc.local

If systemd is not available on your Linux* distribution, you can configure the ledmon daemon to start automatically at each reboot using /etc/rc.local. To do this, open /etc/rc.local with a text editor (e.g., vi or vim) and add ledmon as the final line of the file, as shown below:

# vi /etc/rc.local #!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES 
# It is highly advisable to create own system services or udev rules 
# to run scripts during boot instead of using this file.
# In contrast to previous versions due to parallel execution during boot # this script will be executed during boot.#
# Please note that you must run ‘chmod +x /etc/rc.local’ to ensure
# that this script will be executed during boot.
#touch /var/lock/subsys/local ledmon

Note: The ledmon command must be placed on its own line at the end of the /etc/rc.local file. Incorrect placement may prevent the system from functioning properly.

7.3 Using ledctl utility

The ledctl utility is a standalone tool used to control drive slot LEDs on server platforms. It can be executed concurrently with ledmon, but note that ledmon takes precedence when managing LEDs. As a result, some patterns set by ledctl may not take effect unless they are locate patterns.

This utility provides a one-shot mechanism to trigger specific LED behaviors. Supported patterns for Intel® VROC include:

  • locate – turn on the locate LED

  • locate_off – turn off the locate LED

  • rebuild – indicate rebuild activity

  • failure – indicate drive failure

  • off (normal) – restore LED to default state

Root privileges are required to run ledctl. Examples:

  • Turn on locate LED:

ledctl locate=/dev/nvme0n1 --listed-only

The --listed-only option ensures that only the specified device is affected.

  • Turn off locate LED:

ledctl locate_off=/dev/nvme0n1 --listed-only
  • Trigger a rebuild LED pattern:

ledctl rebuild=/dev/nvme0n1 --listed-only
  • Indicate drive failure:

# ledctl failure=/dev/nvme0n1 --listed-only
  • Set LED back to normal (off):

# ledctl off=/dev/nvme0n1 --listed-only

ledctl can also control multiple devices in a single command. Use spaces to separate patterns and commas to separate device names. Example:

# ledctl locate=/dev/nvme0n1,/dev/nvme1n1 rebuild=/dev/nvme2n1 
failure=/dev/nvme3n1 -- listed-only

7.4 LED activity during hot-plug events

When a disk is hot-removed and then reinserted into the same slot, the fault LED may blink for up to 10 seconds. This behavior is expected. Once a drive is removed, ledmon marks the slot’s LED state as failed. However, many backplane designs require drive presence for the LED to physically blink. As a result, the failure state persists after removal, but the LED only begins blinking when a replacement drive is inserted.

After the hot-plug event is fully recognized and handled, ledmon automatically clears the fault indication and restores the LED to its normal state.

7.5 Advanced LED management

Intel® VROC Linux* supports not only basic LED control but also advanced customization for compatible backplanes. Through the ledmon configuration file, administrators can define default LED behaviors and tailor them to their operational needs. This enables consistent LED signaling for maintenance, monitoring, or troubleshooting. Advanced LED management is particularly useful in large deployments, where predictable LED behavior simplifies drive identification and event handling. Changes applied through ledmon.conf override default patterns and persist across reboots.

Table 7-1. Enhanced LED Management Capabilities

Event/Parameter

Behavior

Configuration Options

Default Setting

Skip/exclude controller BLACKLIST

Excludes controllers listed on the blacklist. Whitelist takes precedence if both are set.

Controller in the blacklist will be excluded from scanning.

Support all controllers

BLINK_ON_INIT

Displays rebuild pattern on all drives in a RAID volume until verification/fix completes.

True/Enabled (all drives), False/Disabled (no drives)

True/Enabled

INVERVAL

Sets ledmon scan interval in seconds (max 5s).

10s (5s is maximum)

10s

REBUILD_BLINK_ON_ALL

Rebuild pattern on a single drive to which RAID volume rebuilds.

True/Enabled (all drives), False/Disabled (one drive only)

False/Disabled

BLINK_ON_MIGR

Displays rebuild pattern on all drives during RAID migration.

True/Enabled (on all drives)

False/Disabled (no drives)

True/Enabled

LOG_LEVEL

Sets debug level (quiet, error, warning, info, debug).

Values 0–5 (0=quiet, 5=all)

2 (info)

RAID_MEMBRES_ONLY

If this flag is set to true ledmon will limit monitoring only to drives that are RAID members

False (all), True (RAID members only)

False

Limited scans only to following controllers

WHITELIST

Ledmon will limit changing LED state to controllers listed on whitelist.

Limit changes only to listed controllers

No limit

Advanced LED management applies only to drives on supported backplanes (e.g., NVMe). Drives connected by I/O cables, PCIe add-in cards, or M.2 slots do not support LED management. Only status LEDs are managed; activity LEDs are excluded.

Usage Example:

# ledmon [OPTIONS]

Table 7-2. Ledmon Options Listed

Options

Usage

-c

--config-path=

Sets the configuration file path. This overrides any other configuration files. (Although the utility currently does not use a configuration file). The /etc/ledcfg.conf file is shared by ledmon and ledctl utilities.

-l

--log-path

Sets the path to a log file. This overrides /var/log/ledmon.log.

-t

--interval=

Sets the time interval in seconds between scans of the sysfs. A minimum of 5 seconds is set.

--quiet

--error

---warning

--info

--debug

--all

Specifies verbosity level of the log. quiet means no logging at all, and all means to log everything. The levels are given in order. If user specifies more than one verbose option, the last option comes into effect.

-h

--help

Prints help text and exits.

-v

--version

Prints version and license information, then exits.

Last updated