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.
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.serviceIf 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-failureOnce the file is in place, use these commands to control the service:
Start the service manually:
systemctl start ledmon.serviceEnable auto-start on boot:
# systemctl enable ledmon.serviceWith 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 ledmon7.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-onlyThe --listed-only option ensures that only the specified device is affected.
Turn off locate LED:
ledctl locate_off=/dev/nvme0n1 --listed-onlyTrigger a rebuild LED pattern:
ledctl rebuild=/dev/nvme0n1 --listed-onlyIndicate drive failure:
# ledctl failure=/dev/nvme0n1 --listed-onlySet LED back to normal (off):
# ledctl off=/dev/nvme0n1 --listed-onlyledctl 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-only7.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

