Userspace LEDs

The uleds driver supports userspace LEDs. This can be useful for testingtriggers and can also be used to implement virtual LEDs.

Usage

When the driver is loaded, a character device is created at /dev/uleds. Tocreate a new LED class device, open /dev/uleds and write a uleds_user_devstructure to it (found in kernel public header file linux/uleds.h):

#define LED_MAX_NAME_SIZE 64struct uleds_user_dev {    char name[LED_MAX_NAME_SIZE];};

A new LED class device will be created with the name given. The name can beany valid sysfs device node name, but consider using the LED class namingconvention of “devicename:color:function”.

The current brightness is found by reading a single byte from the characterdevice. Values are unsigned: 0 to 255. Reading will block until the brightnesschanges. The device node can also be polled to notify when the brightness valuechanges.

The LED class device will be removed when the open file handle to /dev/uledsis closed.

Multiple LED class devices are created by opening additional file handles to/dev/uleds.

See tools/leds/uledmon.c for an example userspace program.