Git Product home page Git Product logo

ledmon's Introduction

This package contains the Enclosure LED Utilities, version 1.0.0

Copyright (C) 2009-2024 Intel Corporation.

Files in this package can be freely distributed and used according to the terms of the GNU General Public License, version 2 or the GNU Lesser General Public License version 2.1 or later depending on file.

See http://www.gnu.org/ for details.


1. Dependencies


Following packages are required to compile:

RHEL SLES Debian/Ubuntu
pkgconf, RHEL7: pkgconfig pkg-config pkg-config
automake automake automake
autoconf autoconf autoconf
autoconf-archive autoconf-archive autoconf-archive
gcc gcc gcc
libtool libtool libtool
make make make
sg3_utils-devel libsgutils-devel libsgutils2-dev
systemd-devel libudev-devel libudev-dev
pciutils-devel pciutils-devel libpci-dev
check-devel check-devel check

2. Configure package


Run autogen.sh to generate compiling configurations: ./autogen.sh ./configure

Run ./configure with: --enable-systemd to configure with systemd service.

Run ./configure with: --enable-library to enable building and installing the ledmon shared library, more library information

Run ./configure with: --enable-test to enable building unit tests and adds a target for make check, requires --enable-library

Run ./configure with: --disable-doc to disable building documentation.

3. Compiling the package


Run make command to compile the package.

4. (Un)installing the package


Run following commands to install package: make install

Run following commands to uninstall package: make uninstall

5. Release notes


a. Enclosure LED Utilities is meant as a part of RHEL, SLES and Debian/Ubuntu linux distributions.

b. For backplane enclosures attached to ISCI controller support is limited to Intel(R) Intelligent Backplane.

ledmon's People

Contributors

adrianbunk avatar alpinus4 avatar apaszkie avatar bigunclemax avatar bkucman avatar colinianking avatar djbw avatar ffontaine avatar jharg avatar kerolasa avatar komep avatar krzysztofsmolinski avatar ktanska avatar ldorau avatar lflorcza avatar mdabrows avatar mgrzonka avatar mku514k avatar mpatelcz avatar mtkaczyk avatar mzylowski avatar nfont avatar njcrawford avatar oshchirs avatar pawpiatko avatar pbaldysi avatar phawryle avatar rsobans avatar tasleson avatar woodrow-shen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ledmon's Issues

ledctl: /dev/nvme0n1: device not supported

Hi

I want to use ledctl to locate my nvme whose model is INTEL SSDPE2KE020T7. But ledctl reported device not supported. Why does this happen?

[root@localhost ~/rpms]# ledctl locate=/dev/nvme0n1
ledctl: /dev/nvme0n1: device not supported
ledctl: IBPI LOCATE: missing block device(s)... pattern ignored.
[root@localhost ~/rpms]# nvme list   
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev  
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     PHLE8066001Y2P0DGN   INTEL SSDPE2KE020T7                      1           2.00  TB /   2.00  TB    512   B +  0 B   QDV10170
/dev/nvme1n1     PHLE806600442P0DGN   INTEL SSDPE2KE020T7                      1           2.00  TB /   2.00  TB    512   B +  0 B   QDV10170
[root@localhost ~/rpms]# ledmon -v
Intel(R) Enclosure LED Monitor Service 0.90
Copyright (C) 2009-2018 Intel Corporation.

This is free software; see the source for copying conditions. There is NO warranty;
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Thank you

ledmon with zfs

hello
i have proxmox installation 4 disk connected on the Motherboard with sata.
i know the sata port but should find out the sda port

in my case i see the sda, sdb sdc sdd but the led will not flash maybe because the Disk are in a IcyDock - FatCage MB153SP-B?

ledctl -L

/sys/devices/pci0000:00/0000:00:17.0 (AHCI)

i only have one maybe should be 4 entry for each disk,

have a nice day
vinc

Define Ledmon behavior for corner cases

Problem description

For some corner case scenarios Ledmon behavior is not obvious and cannot be easily
determined. The goal is to decide how ledmon should behave in those scenarios.
This list contains known undefined behaviors for the moment of submitting. I strongly
believe that it is a good point to start. Our expectation is to define rules
which ledmon should follow. Those rules will be noted and saved in the
documentation. This new file will be added to repository. Required changes will
be applied to product later.

Scenario 1: Manual stop / RAID deactivation

Problem:

When RAID is stopped, Ledmon marks all disks as normal. It does not check the reason.
It may be caused by:

  • user, if raid stop is requested
  • system, if it is caused by drive failure or IO errors.

From Ledmon perspective there - there is no good way to tell the difference.

Question:

If RAID array disappears, should member LEDs stay normal or blink failure?

Steps to reproduce:

Manual stop:
Create container with 2 disks:
#mdadm -CR $CONTAINER_NAME -e imsm -n2 $DISK1 $DISK2
Create RAID:
#mdadm -CR $RAID_NAME -l1 -n2 /dev/$DISK1 /dev/$DISK2
Stop created RAID:
#mdadm -S /dev/md/$RAID_NAME

System stop:
Create container with 2 disks:
#mdadm -CR $CONTAINER_NAME -e imsm -n2 $DISK1 $DISK2
Create RAID:
#mdadm -CR $RAID_NAME -l0 -n2 /dev/$DISK1 /dev/$DISK2
Stop RAID by system – remove one drive:
#echo 1 > /sys/block/$DISK1/device/delete

Actual result

RAID is removed from system (see /proc/mdstat). If one drive is removed then it is
marked as failed by Ledmon. Other drives are marked as normal.

Scenario 2: Matrix RAID – remove one volume.

Problem

Up to two volumes can be created upon one IMSM container. Each array can have different
failure tolerance. As a result one volume can be gone, but second one is still
active. It is a more complicated case for Scenario 1.

Question

Should Ledmon mark failure on each array member or only on failed members?

Steps to reproduce:

Create container with 2 disks:
#mdadm -CR $CONTAINER_NAME -e imsm -n2 $DISK1 $DISK2
Create partial capacity RAID1:
#mdadm -CR $RAID_NAME_1 -l1 -n2 /dev/$DISK1 /dev/$DISK2 -z 10G
Create RAID0 from rest of free space :
#mdadm -CR $RAID_NAME_2 -l0 -n2 /dev/$DISK1 /dev/$DISK2
Remove one drive or stop one volume:

  • #echo 1 > /sys/block/$DISK1/device/delete
  • #mdadm -S /dev/md/$RAID_NAME_2

Actual result

If DISK_1 is removed then it is marked as failed. RAID0 disappears, RAID1 is
degraded. DISK_2 is marked as normal.

Scenario 3: Remove mounted volume

Problem

If volume is in use then mdadm is not able to unmount it before stop. If
array fails, then - as a last resort - udisk is triggered. The root cause is the same as for Scenario 1 and Scenario 2 - array becomes failed but in this case
RAID won't be stopped. Ledmon can't detect that array is failed, it relies on
md device existing.

Question

How Ledmon should behave when it is not possible to stop RAID when it becomes failed?

Steps to reproduce:

Create container with 2 disks:
#mdadm -CR $CONTAINER_NAME -e imsm -n2 $DISK1 $DISK2
Create RAID:
#mdadm -CR $RAID_NAME -l0 -n2 /dev/$DISK1 /dev/$DISK2
Mount RAID
#mkfs /dev/md/$RAID_NAME
#mount /dev/md/$RAID_NAME /mnt
Generate IO:
#dd if=/dev/urandom of=/dev/md/$RAID_NAME &
During IO remove one drive:
#echo 1 > /sys/block//device/delete

Actual result

Ledmon marks removed drive as failure. Second drive from this RAID is marked as normal.

Summary

Those three scenarios have one common result, in each case RAID
becomes unusable because it is failed or disappears from system. We should define
and document the behavior which should be expected in this case.
Marking as failure looks reasonable, but it can be misleading in some cases. From
other hand marking as normal won't inform about any raid failure. We want to know
user expectation and provide best solution.

ledctl dont change LED status

Hi,

i have a Supermicro Mainboard H11DSi-NT with Supermicro Backplane BPN-SAS3-743A-N4
I hoped the new amd-sgpio patch would work an I could change die LEDs of the
Backplane, but nothing changed. Not sure if my SATA-Controller of the MB is supported.
The activity LED is blinking blue, if the softraid writes to disk and at PC start i can see
a red LED flashing very short. So I think the cable ist right.

Greets
Michael

ledctl -L

/sys/devices/pci0000:40/0000:40:08.1/0000:42:00.2 (AMD SGPIO)
/sys/devices/pci0000:50/0000:50:08.1/0000:52:00.2 (AMD SGPIO)
/sys/devices/pci0000:10/0000:10:08.1/0000:14:00.2 (AMD SGPIO)

ledctl locate=/dev/sda

/dev/shm/ledmon.conf: does not exist, using global config file
ledctl: AMD Drive: port 2, ata port 10, drive bay 2, initiator 0
ledctl: AMD Drive: port 7, ata port 17, drive bay 1, initiator 1
ledctl: AMD Drive: port 1, ata port 1, drive bay 3, initiator 0
ledctl: (raid_device_init) path: md2, level=2, state=6, degraded=0, disks=2, type=1
ledctl: (raid_device_init) path: md0, level=2, state=6, degraded=0, disks=2, type=1
ledctl: (raid_device_init) path: md1, level=2, state=5, degraded=0, disks=2, type=1
ledctl: (_set_block_state): device: sdb, state: NORMAL
ledctl: (_set_block_state): device: sda, state: NORMAL
ledctl: (_set_block_state): device: sdb, state: NORMAL
ledctl: (_set_block_state): device: sda, state: NORMAL
ledctl: (_set_block_state): device: sdb, state: NORMAL
ledctl: (_set_block_state): device: sda, state: NORMAL
ledctl:
ledctl: Setting LOCATE_OFF...
ledctl: device: .../ata12/host11/target11:0:0/11:0:0:0/block/sdb
ledctl: buffer: .../ata17/host16/scsi_host/host16/em_buffer
ledctl: AMD Drive: port 2, ata port 12, drive bay 2, initiator 0
ledctl: AMD Register: 00100030 00c08240 00000001 00000060
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 10
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: c0 register index: 0
ledctl: register count: 1
ledctl: SGPIO AMD Register
ledctl: initiator: 0 polarity: 0
ledctl: bypass enable: 1 return to normal: 1
ledctl: CFG Register: 00140030 00008240 00000002 00800000 00210000
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 14
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: 0 register index: 0
ledctl: register count: 2
ledctl: SGPIO Configuration Register:
ledctl: version: 0 gp register count: 0
ledctl: cfg register count: 0 gpio enabled: 1
ledctl: drive count: 0 blink gen rate A: 0
ledctl: blink gen rate B: 0 force activity off: 2
ledctl: max activity on: 1 stretch activity off: 0
ledctl: stretch activity on: 0
ledctl: TX Register: 00100030 00038240 00000001 a0a0a0a0
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 10
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: 3 register index: 0
ledctl: register count: 1
ledctl: SGPIO TX Register:
ledctl: drive 0: error 0, locate 0, activity 5
ledctl: drive 1: error 0, locate 0, activity 5
ledctl: drive 2: error 0, locate 0, activity 5
ledctl: drive 3: error 0, locate 0, activity 5
ledctl:
ledctl: Setting LOCATE_OFF...
ledctl: device: .../ata5/host4/target4:0:0/4:0:0:0/block/sdc
ledctl: buffer: .../ata1/host0/scsi_host/host0/em_buffer
ledctl: AMD Drive: port 5, ata port 5, drive bay 3, initiator 1
ledctl: AMD Register: 00100030 00c08240 00000001 00000061
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 10
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: c0 register index: 0
ledctl: register count: 1
ledctl: SGPIO AMD Register
ledctl: initiator: 1 polarity: 0
ledctl: bypass enable: 1 return to normal: 1
ledctl: CFG Register: 00140030 00008240 00000002 00800000 00210700
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 14
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: 0 register index: 0
ledctl: register count: 2
ledctl: SGPIO Configuration Register:
ledctl: version: 0 gp register count: 0
ledctl: cfg register count: 0 gpio enabled: 1
ledctl: drive count: 0 blink gen rate A: 7
ledctl: blink gen rate B: 0 force activity off: 2
ledctl: max activity on: 1 stretch activity off: 0
ledctl: stretch activity on: 0
ledctl: TX Register: 00100030 00038240 00000001 a0a0a0a0
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 10
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: 3 register index: 0
ledctl: register count: 1
ledctl: SGPIO TX Register:
ledctl: drive 0: error 0, locate 0, activity 5
ledctl: drive 1: error 0, locate 0, activity 5
ledctl: drive 2: error 0, locate 0, activity 5
ledctl: drive 3: error 0, locate 0, activity 5
ledctl:
ledctl: Setting LOCATE_OFF...
ledctl: device: .../ata11/host10/target10:0:0/10:0:0:0/block/sda
ledctl: buffer: .../ata17/host16/scsi_host/host16/em_buffer
ledctl: AMD Drive: port 1, ata port 11, drive bay 3, initiator 0
ledctl: AMD Register: 00100030 00c08240 00000001 00000060
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 10
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: c0 register index: 0
ledctl: register count: 1
ledctl: SGPIO AMD Register
ledctl: initiator: 0 polarity: 0
ledctl: bypass enable: 1 return to normal: 1
ledctl: CFG Register: 00140030 00008240 00000002 00800000 00210700
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 14
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: 0 register index: 0
ledctl: register count: 2
ledctl: SGPIO Configuration Register:
ledctl: version: 0 gp register count: 0
ledctl: cfg register count: 0 gpio enabled: 1
ledctl: drive count: 0 blink gen rate A: 7
ledctl: blink gen rate B: 0 force activity off: 2
ledctl: max activity on: 1 stretch activity off: 0
ledctl: stretch activity on: 0
ledctl: TX Register: 00100030 00038240 00000001 a0a0a0a0
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 10
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: 3 register index: 0
ledctl: register count: 1
ledctl: SGPIO TX Register:
ledctl: drive 0: error 0, locate 0, activity 5
ledctl: drive 1: error 0, locate 0, activity 5
ledctl: drive 2: error 0, locate 0, activity 5
ledctl: drive 3: error 0, locate 0, activity 5
ledctl:
ledctl: Setting LOCATE...
ledctl: device: .../ata11/host10/target10:0:0/10:0:0:0/block/sda
ledctl: buffer: .../ata17/host16/scsi_host/host16/em_buffer
ledctl: AMD Drive: port 1, ata port 11, drive bay 3, initiator 0
ledctl: AMD Register: 00100030 00c08240 00000001 00000060
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 10
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: c0 register index: 0
ledctl: register count: 1
ledctl: SGPIO AMD Register
ledctl: initiator: 0 polarity: 0
ledctl: bypass enable: 1 return to normal: 1
ledctl: CFG Register: 00140030 00008240 00000002 00800000 00217700
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 14
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: 0 register index: 0
ledctl: register count: 2
ledctl: SGPIO Configuration Register:
ledctl: version: 0 gp register count: 0
ledctl: cfg register count: 0 gpio enabled: 1
ledctl: drive count: 0 blink gen rate A: 7
ledctl: blink gen rate B: 7 force activity off: 2
ledctl: max activity on: 1 stretch activity off: 0
ledctl: stretch activity on: 0
ledctl: TX Register: 00100030 00038240 00000001 c6a0a0a0
ledctl: SGPIO Header
ledctl: message type: 3 data size: 0
ledctl: message size: 10
ledctl: SGPIO Request Register:
ledctl: frame type: 40 function: 82
ledctl: register type: 3 register index: 0
ledctl: register count: 1
ledctl: SGPIO TX Register:
ledctl: drive 0: error 0, locate 0, activity 5
ledctl: drive 1: error 0, locate 0, activity 5
ledctl: drive 2: error 0, locate 0, activity 5
ledctl: drive 3: error 6, locate 0, activity 6

ledctl -x

/dev/shm/ledmon.conf: does not exist, using global config file
ledctl: AMD Drive: port 2, ata port 10, drive bay 2, initiator 0
ledctl: AMD Drive: port 7, ata port 17, drive bay 1, initiator 1
ledctl: AMD Drive: port 1, ata port 1, drive bay 3, initiator 0
ledctl: (raid_device_init) path: md2, level=2, state=6, degraded=0, disks=2, type=1
ledctl: (raid_device_init) path: md0, level=2, state=6, degraded=0, disks=2, type=1
ledctl: (raid_device_init) path: md1, level=2, state=5, degraded=0, disks=2, type=1
ledctl: (_set_block_state): device: sdb, state: NORMAL
ledctl: (_set_block_state): device: sda, state: NORMAL
ledctl: (_set_block_state): device: sdb, state: NORMAL
ledctl: (_set_block_state): device: sda, state: NORMAL
ledctl: (_set_block_state): device: sdb, state: NORMAL
ledctl: (_set_block_state): device: sda, state: NORMAL
ledctl: missing operand(s)... run ledctl --help for details.
ledctl: main(): _ibpi_parse() failed (status=STATUS_IBPI_DETERMINE_ERROR).

ledctl not working with simple Intel SATA controller

Hi there,

I'm running a Debian Testing system on a Biostar HM110MHV3 mainboard and having issues controling the LEDs of my SATA devices, connected to an ICYBOX IB-55SSK (https://icybox.de/en/product.php?id=336 --> as far as I know, just wires SATA from mainboard to the connected disks, nothing special inbetween but a nice case and a fan), which has a combined power/activity LED for each disk.

Used ledmon is version 0.95-1

Two disks are an mdadm raid1, so I not only have /dev/sdX, but also a /dev/md127
other disks run in single mode

ledctl -L says:

# ledctl -L
/sys/devices/pci0000:00/0000:00:17.0 (AHCI)

If I set loglevel to all, I get f.i. this:

# ledctl locate=/dev/sdb
ledctl: Unable to issue IPMI command GetSystemInfo
ledctl: (raid_device_init) path: md127, level=2, state=6, degraded=0, disks=2, type=1
ledctl: (_set_block_state): device: sdc, state: NORMAL
ledctl: (_set_block_state): device: sdb, state: NORMAL

LED does nothing... tried different pattern. Same ... --> nothing.

I'm not very deep into the underlying technical stuff required for this. Maybe this helps to identify the problem?

# lspci | grep -i AHCI
00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31)

What am I doing wrong? Or is my system simply not compatible? Any way of letting drive-led blink to show hw-issues or to identify drive?

br,
Alex

ledmon[2374]: Unsupported AMD interface

New install of Ubuntu 20.04 LTS, clean upgrade from Ubuntu 18.04 LTS where ledmon was previously working.

Hardware: Dell R7425 (AMD Epyc Architecture)

In syslog I am seeing the following entires:
Apr 25 00:51:36 host ledmon[2374]: ledmon[2374]: Unsupported AMD interface Apr 25 00:51:36 host ledmon[2374]: Unsupported AMD interface Apr 25 00:51:46 host ledmon[2374]: ledmon[2374]: Unsupported AMD interface Apr 25 00:51:46 host ledmon[2374]: Unsupported AMD interface Apr 25 00:51:56 host ledmon[2374]: ledmon[2374]: Unsupported AMD interface Apr 25 00:51:56 host ledmon[2374]: Unsupported AMD interface

admin@host:~$ sudo service ledmon status ● ledmon.service - Enclosure LED Utilities Loaded: loaded (/lib/systemd/system/ledmon.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-04-25 00:42:23 UTC; 17min ago Main PID: 2374 (ledmon) Tasks: 1 (limit: 115335) Memory: 2.0M CGroup: /system.slice/ledmon.service └─2374 /usr/sbin/ledmon --foreground

Apr 25 00:59:37 host ledmon[2374]: ledmon[2374]: Unsupported AMD interface Apr 25 00:59:37 host ledmon[2374]: Unsupported AMD interface Apr 25 00:59:47 host ledmon[2374]: ledmon[2374]: Unsupported AMD interface Apr 25 00:59:47 host ledmon[2374]: Unsupported AMD interface Apr 25 00:59:57 host ledmon[2374]: ledmon[2374]: Unsupported AMD interface Apr 25 00:59:57 host ledmon[2374]: Unsupported AMD interface Apr 25 01:00:07 host ledmon[2374]: ledmon[2374]: Unsupported AMD interface Apr 25 01:00:07 host ledmon[2374]: Unsupported AMD interface Apr 25 01:00:17 host ledmon[2374]: ledmon[2374]: Unsupported AMD interface Apr 25 01:00:17 host ledmon[2374]: Unsupported AMD interface

clang and constant-logical-operand warning

And operand looks wrong. Could a maintainer have a look what was meant at this point in code, and make a change that does the needed.

../src/scsi.c:249:15: warning: use of logical '&&' with constant operand [-Wconstant-logical-operand]
                eip = ai[0] && 0x10;
                            ^  ~~~~
../src/scsi.c:249:15: note: use '&' for a bitwise operation
                eip = ai[0] && 0x10;
                            ^~
                            &
../src/scsi.c:249:15: note: remove constant to silence this warning
                eip = ai[0] && 0x10;
                           ~^~~~~~~

ledctl overrides ibpi request under certain conditions

Not using ledmon, just using ledctl to manage LED status of one of the soft raid devices.

ledctl is expected to update status of LED with user requested irrespective of current RAID conditions.

When raid constructions is "In progress" and requested to set to Normal, ibpi requested status gets overridden by value regarding to "DEGRADED".

Clarify supported hardware configurations of LEDs

Manual is not very clear about which cases are supported.

I have recently bought OImaster MR-6601 (Thermaltake MAX 2506) sata bay, and I was exploring if it is possible to activate locate blinking on it. Activating locate pattern with ledctl locate=/dev/sda did nothing.

The sata bay looks looks like this:
olmaster sata bay leds

There are two LEDs for each bay: power (blue) and access (red). I thought that Access led and Status led are synonyms. But looks like it is not, according to what I have read in #58.

The man page for ledctl says:
There are two types of systems: 2-LEDs systems (Activity LED , Status LED ) and 3-LEDs systems (Activity LED , Locate LED , Fail LED ).
So can you clarify about led namings on bays like mine?
Activity led - am I right that it is led which blinks when you write/read data from the drive?
Status led - am I right that it is Power led? Or what is status?
Access led - am I right it is the same as Activity led?

So my bay is 2-led? If not, then why there is no mentioning in man about such bays with one led (Access Led, power LED is not counted it seems). May it be added to man page?

And another statement which is not very clear to understand to me:
LED management ( AHCI ) and SAF-TE protocols are not supported.
Why it says led management not supported? I have In ledctl -L this output /sys/devices/pci0000:00/0000:00:17.0 (AHCI). So is my controller supported?

pod errors

The watchful eye of github caught some pod errors:

Regarding to perl-doc that patch should solve the issue for ledctl.pod:

diff --git a/doc/ledctl.pod b/doc/ledctl.pod
index 7066003..e72d8df 100644
--- a/doc/ledctl.pod
+++ b/doc/ledctl.pod
@@ -42,9 +42,9 @@ storages.
 
 =item * B<SES-2 and SMP> for SAS devices,
 
-=item B<LED messages over SGPIO> for SATA,
+=item * B<LED messages over SGPIO> for SATA,
 
-=item B<VMD and NPEM> for PCIe.
+=item * B<VMD and NPEM> for PCIe.
 
 =back
 
@@ -78,20 +78,20 @@ The ledctl application is a part of Intel(R) Enclosure LED Utilities.
 
 =item * SGPIO (Serial GPIO) - SFF-8485
 
-=item IBPI (International Blinking Pattern Interpretation) - SFF-8489
+=item * IBPI (International Blinking Pattern Interpretation) - SFF-8489
 
-=item LED Enclosure management messages - AHCI specification rev 1.3,
+=item * LED Enclosure management messages - AHCI specification rev 1.3,
 section 12.2.1.
 
-=item SAS (Serial Attached SCSI) - T10/1760-D
+=item * SAS (Serial Attached SCSI) - T10/1760-D
 
-=item SES-2 (SCSI Enclosure Services-2) - T10/1559-D
+=item * SES-2 (SCSI Enclosure Services-2) - T10/1559-D
 
-=item SMP (Serial Management Protocol) - T10/1760-D
+=item * SMP (Serial Management Protocol) - T10/1760-D
 
-=item NPEM (Native PCIe Enclosure Management) - PCIe base specification rev 4.0
+=item * NPEM (Native PCIe Enclosure Management) - PCIe base specification rev 4.0
 
-=item VMD (Intel(R) Volume Management Device) - Intel(R) VROC (VMD NVMe RAID) Quick
+=item * VMD (Intel(R) Volume Management Device) - Intel(R) VROC (VMD NVMe RAID) Quick
 Configuration Guide rev 1.2
 
 =back

Gauging interest in a C library API

Has there been any interest in a C library API which provides the ability to list/get/set etc. individual LEDs? Would folks be amenable to integrating a change which adds this if one was supplied?

Ledmon changes device name assigned after every loop.

If there are multiple namespaces defined, I can see that ledmon is changing namespace assigned in every loop:

ll /sys/block/| grep nvme7
lrwxrwxrwx 1 root root 0 Mar 21 19:35 nvme7n1 -> ../devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n1
lrwxrwxrwx 1 root root 0 Mar 21 19:35 nvme7n2 -> ../devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n2

ledmon[56099]: NAME CHANGED /sys/devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n1 to /sys/devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n2
ledmon[56099]: NAME CHANGED /sys/devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n2 to /sys/devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n1

Next loop:

ledmon[56099]: NAME CHANGED /sys/devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n1 to /sys/devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n2
ledmon[56099]: NAME CHANGED /sys/devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n2 to /sys/devices/pci0000:5d/0000:5d:05.5/pci10001:00/10001:00:03.0/10001:02:00.0/nvme/nvme7/nvme7n1

It could affect scenarios with multiple namespaces defined and VROC RAID array on top of first one, however I didn't dig into it. Need to be investigated.

Messy tagging

Is it any particular reaso why sometimes new version is tagged with leading v and somerimes not? 🤔
That breaks my automation 😋

compilation errors because of references to packed struct members

With gcc 9.2.1, I'm getting a lot of these during the compilation of ledmon-0.93:

...
amd_sgpio.c:482:18: error: taking address of packed member of 'struct transmit_register' may result in an unaligned pointer value [-Werror=address-of-packed-member]
  482 |  _dump_sgpio_req(&tx_reg->req);
      |                  ^~~~~~~~~~~~
amd_sgpio.c: In function '_write_tx_register':
amd_sgpio.c:489:18: error: taking address of packed member of 'struct transmit_register' may result in an unaligned pointer value [-Werror=address-of-packed-member]
  489 |  _init_sgpio_hdr(&tx_reg->hdr, 0, sizeof(*tx_reg));
      |                  ^~~~~~~~~~~~
amd_sgpio.c:490:18: error: taking address of packed member of 'struct transmit_register' may result in an unaligned pointer value [-Werror=address-of-packed-member]
  490 |  _init_sgpio_req(&tx_reg->req, 0x40, 0x82, SGPIO_REQ_REG_TYPE_TX, 0, 1);
      |                  ^~~~~~~~~~~~
amd_sgpio.c: In function '_dump_amd_register':
amd_sgpio.c:543:2: error: converting a packed 'struct amd_register' pointer (alignment 1) to a 'uint32_t' {aka 'unsigned int'} pointer (alignment 4) may result in an unaligned pointer value [-Werror=address-of-packed-member]
  543 |  uint32_t *reg = (uint32_t *)amd_reg;
      |  ^~~~~~~~
amd_sgpio.c:144:8: note: defined here
  144 | struct amd_register {
      |        ^~~~~~~~~~~~
amd_sgpio.c:548:18: error: taking address of packed member of 'struct amd_register' may result in an unaligned pointer value [-Werror=address-of-packed-member]
  548 |  _dump_sgpio_hdr(&amd_reg->hdr);
      |                  ^~~~~~~~~~~~~
...

To be honest, I don't know if such references are even supposed to work, but I can imagine that the generated code might act funny on architectures like ppc64.

0.96: build fails

Looks like linking fails with -Werror=format-truncation

+ cd ledmon-0.96
+ autoreconf -fiv
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: /usr/bin/autoconf --force
configure.ac:14: warning: The macro `AC_PROG_CC_C99' is obsolete.
configure.ac:14: You should run autoupdate.
./lib/autoconf/c.m4:1659: AC_PROG_CC_C99 is expanded from...
configure.ac:14: the top level
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:13: installing './compile'
configure.ac:63: installing './config.guess'
configure.ac:63: installing './config.sub'
configure.ac:6: installing './install-sh'
configure.ac:6: installing './missing'
src/Makefile.am: installing './depcomp'
autoreconf: Leaving directory '.'
+ CFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os'
+ CXXFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none'
+ FFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules'
+ FCFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -I/usr/lib64/gfortran/modules'
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1'
+ CC=/usr/bin/gcc
+ CXX=/usr/bin/g++
+ FC=/usr/bin/gfortran
+ AR=/usr/bin/gcc-ar
+ NM=/usr/bin/gcc-nm
+ RANLIB=/usr/bin/gcc-ranlib
+ export CFLAGS CXXFLAGS FFLAGS FCFLAGS LDFLAGS CC CXX FC AR NM RANLIB
+ ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --disable-silent-rules --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... yes
checking for make... yes
checking whether make supports the include directive... yes (GNU style)
checking for x86_64-redhat-linux-gnu-gcc... /usr/bin/gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether /usr/bin/gcc accepts -g... yes
checking for /usr/bin/gcc option to enable C11 features... none needed
checking whether /usr/bin/gcc understands -c and -o together... yes
checking dependency style of /usr/bin/gcc... none
checking whether C compiler accepts -Wformat -Werror=format-security... yes
checking whether C compiler accepts -Werror=format-overflow=2... yes
checking whether C compiler accepts -Werror=format-truncation=1... yes
checking whether C compiler accepts -Werror=shift-negative-value... yes
checking whether C compiler accepts -Werror=alloca... yes
checking whether C compiler accepts -Werror=missing-field-initializers... yes
checking whether C compiler accepts -Werror=format-signedness... yes
checking whether make supports nested variables... (cached) yes
checking for x86_64-redhat-linux-gnu-pkg-config... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for shm_unlink in -lrt... yes
checking for sg_ll_send_diag in -lsgutils2... yes
checking for LIBUDEV... yes
checking for LIBPCI... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for vfork.h... no
checking for sys/param.h... yes
checking for fcntl.h... yes
checking for inttypes.h... (cached) yes
checking for limits.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for sys/file.h... yes
checking for sys/ioctl.h... yes
checking for sys/param.h... (cached) yes
checking for sys/time.h... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking for _Bool... yes
checking for stdbool.h that conforms to C99... yes
checking for inline... inline
checking for pid_t... yes
checking for size_t... yes
checking for struct stat.st_blksize... yes
checking for struct stat.st_rdev... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for fork... yes
checking for vfork... yes
checking for getpagesize... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking build system type... x86_64-redhat-linux-gnu
checking host system type... x86_64-redhat-linux-gnu
checking for GNU libc compatible malloc... yes
checking for working mmap... yes
checking for ftruncate... yes
checking for memset... yes
checking for munmap... yes
checking for realpath... yes
checking for regcomp... yes
checking for select... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strdup... yes
checking for strerror... yes
checking for strrchr... yes
checking for strstr... yes
checking for strtol... yes
checking for strtoul... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating src/Makefile
config.status: creating systemd/Makefile
config.status: creating config_ac.h
config.status: executing depfiles commands

ledmon 0.96 configuration:

  Source code location:    .
  Preprocessor flags:      -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\""$(BUILD_LABEL)"\"
  C compiler flags:        -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os
  Common install location: /usr
  configure parameters:    --enable-systemd=no

+ /usr/bin/make -O -j48 V=1 VERBOSE=1
/usr/bin/make  all-recursive
Making all in doc
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/doc'
pod2man -r "LEDMON.CONF Version 0.96 " -d "May 2022" \
        -s 5 -n ledmon.conf -c "Intel(R) Enclosure LED Utilities Config" ledmon.conf.pod | gzip -9f > ledmon.conf.gz
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/doc'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/doc'
pod2man -r "LEDMON Version 0.96 " -d "May 2022" \
        -s 8 -n ledmon -c "Intel(R) Enclosure LED Monitor Service" ledmon.pod | gzip -9f > ledmon.gz
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/doc'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/doc'
pod2man -r "LEDCTL Version 0.96 " -d "May 2022" \
        -s 8 -n ledctl -c "Intel(R) Enclosure LED Control Application" ledctl.pod | gzip -9f > ledctl.gz
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/doc'
Making all in src
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-status.o `test -f 'status.c' || echo './'`status.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-status.o `test -f 'status.c' || echo './'`status.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-list.o `test -f 'list.c' || echo './'`list.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-list.o `test -f 'list.c' || echo './'`list.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-raid.o `test -f 'raid.c' || echo './'`raid.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-pci_slot.o `test -f 'pci_slot.c' || echo './'`pci_slot.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-udev.o `test -f 'udev.c' || echo './'`udev.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-slave.o `test -f 'slave.c' || echo './'`slave.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-vmdssd.o `test -f 'vmdssd.c' || echo './'`vmdssd.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-raid.o `test -f 'raid.c' || echo './'`raid.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-ahci.o `test -f 'ahci.c' || echo './'`ahci.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-slave.o `test -f 'slave.c' || echo './'`slave.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-pidfile.o `test -f 'pidfile.c' || echo './'`pidfile.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-npem.o `test -f 'npem.c' || echo './'`npem.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-udev.o `test -f 'udev.c' || echo './'`udev.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-scsi.o `test -f 'scsi.c' || echo './'`scsi.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-enclosure.o `test -f 'enclosure.c' || echo './'`enclosure.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-ipmi.o `test -f 'ipmi.c' || echo './'`ipmi.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-pci_slot.o `test -f 'pci_slot.c' || echo './'`pci_slot.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-npem.o `test -f 'npem.c' || echo './'`npem.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-ahci.o `test -f 'ahci.c' || echo './'`ahci.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-dellssd.o `test -f 'dellssd.c' || echo './'`dellssd.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-enclosure.o `test -f 'enclosure.c' || echo './'`enclosure.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-amd.o `test -f 'amd.c' || echo './'`amd.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-vmdssd.o `test -f 'vmdssd.c' || echo './'`vmdssd.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-cntrl.o `test -f 'cntrl.c' || echo './'`cntrl.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-amd.o `test -f 'amd.c' || echo './'`amd.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-cntrl.o `test -f 'cntrl.c' || echo './'`cntrl.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-block.o `test -f 'block.c' || echo './'`block.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-scsi.o `test -f 'scsi.c' || echo './'`scsi.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-config_file.o `test -f 'config_file.c' || echo './'`config_file.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-ses.o `test -f 'ses.c' || echo './'`ses.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-dellssd.o `test -f 'dellssd.c' || echo './'`dellssd.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-config_file.o `test -f 'config_file.c' || echo './'`config_file.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-sysfs.o `test -f 'sysfs.c' || echo './'`sysfs.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-block.o `test -f 'block.c' || echo './'`block.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-amd_ipmi.o `test -f 'amd_ipmi.c' || echo './'`amd_ipmi.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-smp.o `test -f 'smp.c' || echo './'`smp.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-ipmi.o `test -f 'ipmi.c' || echo './'`ipmi.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-ledctl.o `test -f 'ledctl.c' || echo './'`ledctl.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-ledmon.o `test -f 'ledmon.c' || echo './'`ledmon.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-sysfs.o `test -f 'sysfs.c' || echo './'`sysfs.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-amd_ipmi.o `test -f 'amd_ipmi.c' || echo './'`amd_ipmi.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-smp.o `test -f 'smp.c' || echo './'`smp.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-amd_sgpio.o `test -f 'amd_sgpio.c' || echo './'`amd_sgpio.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-utils.o `test -f 'utils.c' || echo './'`utils.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-ses.o `test -f 'ses.c' || echo './'`ses.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledmon-utils.o `test -f 'utils.c' || echo './'`utils.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I..  -D_DEBUG -D_GNU_SOURCE -D_DEFAULT_SOURCE -DDMALLOC_DISABLE -DBUILD_LABEL=\"""\"  -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o ledctl-amd_sgpio.o `test -f 'amd_sgpio.c' || echo './'`amd_sgpio.c
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os  -Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1 -o ledctl ledctl-ledctl.o ledctl-ahci.o ledctl-block.o ledctl-cntrl.o ledctl-config_file.o ledctl-enclosure.o ledctl-list.o ledctl-raid.o ledctl-scsi.o ledctl-slave.o ledctl-status.o ledctl-sysfs.o ledctl-smp.o ledctl-dellssd.o ledctl-utils.o ledctl-pci_slot.o ledctl-vmdssd.o ledctl-udev.o ledctl-amd.o ledctl-amd_sgpio.o ledctl-amd_ipmi.o ledctl-ipmi.o ledctl-npem.o ledctl-ses.o -lpci  -ludev  -lsgutils2 -lrt
In function 'scsi_get_host_path',
    inlined from '_get_host' at block.c:144:12,
    inlined from 'block_device_init.constprop' at block.c:239:11:
scsi.c:166:56: error: '/bsg/sas_' directive output may be truncated writing 9 bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
  166 |                 snprintf(host_path, sizeof(host_path), "%s/%s/bsg/sas_%s",
      |                                                        ^
In function 'snprintf',
    inlined from 'scsi_get_host_path' at scsi.c:166:3,
    inlined from '_get_host' at block.c:144:12,
    inlined from 'block_device_init.constprop' at block.c:239:11:
/usr/include/bits/stdio2.h:71:10: note: '__builtin___snprintf_chk' output 11 or more bytes (assuming 4106) into a destination of size 4096
   71 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^
In function '_is_smp_cntrl',
    inlined from '_get_type' at cntrl.c:238:8,
    inlined from 'cntrl_device_init' at cntrl.c:398:9,
    inlined from '_cntrl_add' at sysfs.c:334:32,
    inlined from '_check_cntrl' at sysfs.c:376:3:
cntrl.c:184:41: error: '/bsg/sas_' directive output may be truncated writing 9 bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
  184 |                                         "%s/%s/bsg/sas_%s", path, p, p);
      |                                         ^
In function 'snprintf',
    inlined from '_is_smp_cntrl' at cntrl.c:183:5,
    inlined from '_get_type' at cntrl.c:238:8,
    inlined from 'cntrl_device_init' at cntrl.c:398:9,
    inlined from '_cntrl_add' at sysfs.c:334:32,
    inlined from '_check_cntrl' at sysfs.c:376:3:
/usr/include/bits/stdio2.h:71:10: note: '__builtin___snprintf_chk' output 11 or more bytes (assuming 4106) into a destination of size 4096
   71 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^
lto1: some warnings being treated as errors
lto-wrapper: fatal error: /usr/bin/gcc returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:449: ledctl] Error 1
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
make[2]: *** Waiting for unfinished jobs....
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.96/src'
/usr/bin/gcc -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os  -Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1 -o ledmon ledmon-ledmon.o ledmon-pidfile.o ledmon-ahci.o ledmon-block.o ledmon-cntrl.o ledmon-config_file.o ledmon-enclosure.o ledmon-list.o ledmon-raid.o ledmon-scsi.o ledmon-slave.o ledmon-status.o ledmon-sysfs.o ledmon-smp.o ledmon-dellssd.o ledmon-utils.o ledmon-pci_slot.o ledmon-vmdssd.o ledmon-udev.o ledmon-amd.o ledmon-amd_sgpio.o ledmon-amd_ipmi.o ledmon-ipmi.o ledmon-npem.o ledmon-ses.o -lpci  -ludev  -lsgutils2 -lrt
In function 'scsi_get_host_path',
    inlined from '_get_host' at block.c:144:12,
    inlined from 'block_device_init' at block.c:239:11:
scsi.c:166:56: error: '/bsg/sas_' directive output may be truncated writing 9 bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
  166 |                 snprintf(host_path, sizeof(host_path), "%s/%s/bsg/sas_%s",
      |                                                        ^
In function 'snprintf',
    inlined from 'scsi_get_host_path' at scsi.c:166:3,
    inlined from '_get_host' at block.c:144:12,
    inlined from 'block_device_init' at block.c:239:11:
/usr/include/bits/stdio2.h:71:10: note: '__builtin___snprintf_chk' output 11 or more bytes (assuming 4106) into a destination of size 4096
   71 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^
In function '_is_smp_cntrl',
    inlined from '_get_type' at cntrl.c:238:8,
    inlined from 'cntrl_device_init' at cntrl.c:398:9,
    inlined from '_cntrl_add' at sysfs.c:334:32,
    inlined from '_check_cntrl' at sysfs.c:376:3:
cntrl.c:184:41: error: '/bsg/sas_' directive output may be truncated writing 9 bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
  184 |                                         "%s/%s/bsg/sas_%s", path, p, p);
      |                                         ^
In function 'snprintf',
    inlined from '_is_smp_cntrl' at cntrl.c:183:5,
    inlined from '_get_type' at cntrl.c:238:8,
    inlined from 'cntrl_device_init' at cntrl.c:398:9,
    inlined from '_cntrl_add' at sysfs.c:334:32,
    inlined from '_check_cntrl' at sysfs.c:376:3:
/usr/include/bits/stdio2.h:71:10: note: '__builtin___snprintf_chk' output 11 or more bytes (assuming 4106) into a destination of size 4096
   71 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^
lto1: some warnings being treated as errors
lto-wrapper: fatal error: /usr/bin/gcc returned 1 exit status

ledctl segfaults

This currently happens with ledmon-0.92.

Here's an excerpt from a gdb session:

(gdb) r
Starting program: /usr/sbin/ledctl ses_missing=/dev/vda --log=/var/log/ledctl.log
Missing separate debuginfos, use: yum debuginfo-install glibc-2.28-52.el8.x86_64
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELF segments
ledctl: /dev/vda: device not supported

Breakpoint 1, _determine (state=0x55555576cb40) at ledctl.c:270
270			log_warning
Missing separate debuginfos, use: yum debuginfo-install libblkid-2.32.1-9.el8.x86_64 libgcc-8.2.1-3.5.el8.x86_64 libmount-2.32.1-9.el8.x86_64 libselinux-2.9-1.el8.x86_64 libuuid-2.32.1-9.el8.x86_64 pcre2-10.32-1.el8.x86_64 sg3_utils-libs-1.44-2.el8.x86_64 systemd-libs-239-13.el8.x86_64
(gdb) list
265			list_for_each(&state->block_list, block) {
266				if (block->ibpi < state->ibpi)
267					block->ibpi = state->ibpi;
268			}
269		} else {
270			log_warning
271			    ("IBPI %s: missing block device(s)... pattern ignored.",
272			     ibpi_str[state->ibpi]);
273		}
274	}
(gdb) p state
$1 = (struct ibpi_state *) 0x55555576cb40
(gdb) p state->ibpi
$2 = SES_REQ_MISSING
(gdb) p ibpi_str
$3 = 0x5555557630e0 <ibpi_str>
(gdb) p ibpi_str[SES_REQ_MISSING]
$4 = 0x3 <error: Cannot access memory at address 0x3>
(gdb) n

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff770b2f5 in __strlen_avx2 () from /lib64/libc.so.6
(gdb) 

The problem is that ibpi_str[state->ibpi] assumes that state->ibpi maps into ibpi_str, but that's not correct. I'm not sure what the intention of the mapping is, therefore I'm not sure how to fix this properly.

Locate empty slot example

Can you please provide an example locate command for an empty slot? There is no associated drive letter and am unsure what pattern to pass.

locate
    Turns Locate LED associated with the given device(s) or empty slot(s) on.

ledctl slot commands "--controller" option is misleading

Based on ledctl --help it is not clear how to use the slot commands ("--list-slots", "--get-slot", "--set-slot") correctly:

--list-controllers                                                    -L                                      Displays list of controllers detected by ledmon.
--list-slots --controller CONTROLLER                                  -P -c CONTROLLER                        List slots under the controller, their led states, slot numbers and devnodes connected.
--get-slot --controller CONTROLLER --device DEVNODE / --slot SLOT     -G -c CONTROLLER -d DEVNODE / -p SLOT   Prints slot information, its led state, slot number and devnode.
--set-slot --controller CONTROLLER --slot SLOT --state STATE          -S -c CONTROLLER -p SLOT -s STATE       Sets given state for chosen slot under the controller.

It is not clear that the "--controller" parameter actually requires the controller type, e.g. "VMD", not the actual controller path printed by --list-controllers. The ledctl manpage does mention this for the "--list-slots" command, but not for "--get-slot" and "--set-slot".

ledctl: /dev/nvme1n1: device not supported

Hi,

I've been getting the following error even after connecting to the NVMe devices through VMD. Here are the details:

0101# ll /sys/block | grep nvme
lrwxrwxrwx 1 root root 0 Jan 7 16:43 nvme0n1 -> ../devices/pci0000:d7/0000:d7:05.5/pci10001:00/10001:00:00.0/10001:01:00.0/nvme/nvme0/nvme0n1
lrwxrwxrwx 1 root root 0 Jan 7 16:43 nvme1n1 -> ../devices/pci0000:d7/0000:d7:05.5/pci10001:00/10001:00:01.0/10001:02:00.0/nvme/nvme1/nvme1n1
lrwxrwxrwx 1 root root 0 Jan 7 16:43 nvme2n1 -> ../devices/pci0000:d7/0000:d7:05.5/pci10001:00/10001:00:02.0/10001:03:00.0/nvme/nvme2/nvme2n1
lrwxrwxrwx 1 root root 0 Jan 7 16:43 nvme3n1 -> ../devices/pci0000:d7/0000:d7:05.5/pci10001:00/10001:00:03.0/10001:04:00.0/nvme/nvme3/nvme3n1


0101# ./ledctl --list-controllers
/sys/devices/pci0000:00/0000:00:11.5 (AHCI)
/sys/devices/pci0000:00/0000:00:17.0 (AHCI)
/sys/devices/pci0000:d7/0000:d7:05.5 (VMD)
/sys/devices/pci0000:57/0000:57:05.5 (VMD)


0101# ./ledctl locate=/dev/nvme1n1
ledctl: /dev/nvme1n1: device not supported
ledctl: IBPI LOCATE: missing block device(s)... pattern ignored.

Dell R7515 "enclosure management not supported"

I've installed ledmon 0.95 from source on proxmox buster, on a Dell R7515 (AMD Epyc) with 2x4 SATA bays.

Running: ./src/ledctl --all -L yeilds

ledctl: SGPIO EM not supported for /sys/devices/pci0000:80/0000:80:08.2/0000:84:00.0
ledctl: controller discovery: /sys/devices/pci0000:80/0000:80:08.2/0000:84:00.0 - enclosure management not supported.
ledctl: Unable to determine Dell Server type
ledctl: Couldn't find base EM path for /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0
ledctl: controller discovery: /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0 - enclosure management not supported.
ledctl: Unable to determine Dell Server type
ledctl: Couldn't find base EM path for /sys/devices/pci0000:40/0000:40:01.1/0000:41:00.0
ledctl: controller discovery: /sys/devices/pci0000:40/0000:40:01.1/0000:41:00.0 - enclosure management not supported.
ledctl: Unable to determine Dell Server type
ledctl: Couldn't find base EM path for /sys/devices/pci0000:80/0000:80:03.1/0000:81:00.0
ledctl: controller discovery: /sys/devices/pci0000:80/0000:80:03.1/0000:81:00.0 - enclosure management not supported.
ledctl: SGPIO EM not supported for /sys/devices/pci0000:80/0000:80:08.3/0000:85:00.0
ledctl: controller discovery: /sys/devices/pci0000:80/0000:80:08.3/0000:85:00.0 - enclosure management not supported.

Anyone have any hints for what might be the issue?

ledctl "--list-slots" command does not work correctly for VMD

"ledctl --list-slots --controller VMD" prints all PCI slots in the system, regardless if they are under VMD or not:

# ledctl -P -c VMD
/dev/shm/ledmon.conf: does not exist, using global config file
/etc/ledmon.conf: does not exist, using built-in defaults
slot: 259             led state: UNKNOWN         device: (empty)
slot: 8191-6          led state: UNKNOWN         device: (empty)
slot: 8191-16         led state: UNKNOWN         device: (empty)
slot: 257             led state: UNKNOWN         device: (empty)
slot: 8191-4          led state: UNKNOWN         device: (empty)
slot: 8191-14         led state: UNKNOWN         device: (empty)
slot: 259-1           led state: UNKNOWN         device: (empty)
slot: 8191-2          led state: UNKNOWN         device: (empty)
slot: 8191-12         led state: UNKNOWN         device: (empty)
slot: 3               led state: UNKNOWN         device: (empty)
slot: 8191-10         led state: UNKNOWN         device: (empty)
slot: 1               led state: UNKNOWN         device: (empty)
slot: 8191-9          led state: UNKNOWN         device: (empty)
slot: 8191-7          led state: UNKNOWN         device: (empty)
slot: 258-1           led state: UNKNOWN         device: (empty)
slot: 787             led state: UNKNOWN         device: (empty)
slot: 258             led state: UNKNOWN         device: (empty)
slot: 8191-5          led state: UNKNOWN         device: (empty)
slot: 260-1           led state: UNKNOWN         device: (empty)
slot: 8191-15         led state: UNKNOWN         device: (empty)
slot: 785             led state: UNKNOWN         device: (empty)
slot: 803             led state: UNKNOWN         device: (empty)
slot: 8191-3          led state: UNKNOWN         device: (empty)
slot: 8191-13         led state: UNKNOWN         device: (empty)
slot: 4               led state: UNKNOWN         device: (empty)
slot: 8191            led state: UNKNOWN         device: (empty)
slot: 8191-1          led state: UNKNOWN         device: (empty)
slot: 8191-11         led state: UNKNOWN         device: (empty)
slot: 257-1           led state: UNKNOWN         device: (empty)
slot: 2               led state: UNKNOWN         device: (empty)
slot: 260             led state: UNKNOWN         device: (empty)
slot: 8191-8          led state: UNKNOWN         device: (empty)

# ls -1 /sys/bus/pci/slots/
1
2
257
257-1
258
258-1
259
259-1
260
260-1
3
4
785
787
803
8191
8191-1
8191-10
8191-11
8191-12
8191-13
8191-14
8191-15
8191-16
8191-2
8191-3
8191-4
8191-5
8191-6
8191-7
8191-8
8191-9

ledmon not working on centos 5

Hello,

I noted on http://rpm.pbone.net/index.php3/stat/4/idpl/23726038/dir/centos_5/com/ledmon-0.77-3.1.x86_64.rpm.html that that version of ledmon is supposed to work on centos 5 even though the rpm seemingly no longer exists. I therefore downloaded the source tar from https://sourceforge.net/projects/ledmon/files/ledmon-0.77/. I was able to get it working after installing "sg3_utils-libs-1.25-5.el5". I also had to create /usr/include/linux/bsg.h from a copy available online and do "cp /usr/lib64/libsgutils.so.1 /usr/lib64/libsgutils2-1.45.so.2" to get the binary to run.

However, although ledctl executes, it will not locate any drives. Perhaps this is the cause from strace:

lstat("/sys/dev", 0x7fffa8e3b6c0) = -1 ENOENT (No such file or directory)

Since that leads to it erroring out:

lstat("/sys/dev", 0x7fffa8e3b6c0) = -1 ENOENT (No such file or directory)
write(3, "0x5cd40fe6:0x0005e6f1 WARNING: I"..., 88) = 88
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
writev(2, [{"ledctl: IBPI LOCATE: missing blo"..., 64}, {"\n", 1}], 2ledctl: IBPI LOCATE: missing block device(s)... pattern ignored.
) = 65
sendto(4, "<12>May 9 07:32:54 ledctl: IBPI"..., 84, MSG_NOSIGNAL, NULL, 0) = 84
close(3) = 0
munmap(0x2b994747e000, 4096) = 0
close(4) = 0
exit_group(0) = ?

ls /sys/dev

ls: /sys/dev: No such file or directory

The kernel is: 2.6.18-398.el5.028stab116.1

Is this a known bug? Or is there an older version that does not rely on /sys/dev's presence?

Thanks!

ledctl: unrecognized option '--amd_sgpio3'

On redhat8.4,centos8.4 and ubuntu 20.04, I have tried the ledmon tool of version 0.93 and it works.
On SLES 15SP3,I have tried the ledmon tool from version 0.93 to 0.96 with the following logs.

localhost:~ # ledctl --amd_sgpio3 locate=/dev/sda
ledctl: unrecognized option '--amd_sgpio3'
localhost:~ # systemctl start ledmon.service
localhost:~ # systemctl status ledmon.service
● ledmon.service - Enclosure LED Utilities
Loaded: loaded (/usr/lib/systemd/system/ledmon.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2022-08-25 20:42:03 CST; 5s ago
Main PID: 6017 (ledmon)
Tasks: 1
CGroup: /system.slice/ledmon.service
└─6017 /usr/sbin/ledmon --foreground

Aug 25 20:42:04 localhost ledmon[6017]: ledmon[6017]: Unsupported AMD interface
Aug 25 20:42:04 localhost ledmon[6017]: Unsupported AMD interface
Aug 25 20:42:04 localhost ledmon[6017]: ledmon[6017]: Unsupported AMD interface
Aug 25 20:42:04 localhost ledmon[6017]: Unsupported AMD interface
Aug 25 20:42:04 localhost ledmon[6017]: ledmon[6017]: Unsupported AMD interface
Aug 25 20:42:04 localhost ledmon[6017]: Unsupported AMD interface
Aug 25 20:42:04 localhost ledmon[6017]: ledmon[6017]: Unsupported AMD interface
Aug 25 20:42:04 localhost ledmon[6017]: Unsupported AMD interface
Aug 25 20:42:04 localhost ledmon[6017]: ledmon[6017]: Unsupported AMD interface
Aug 25 20:42:04 localhost ledmon[6017]: Unsupported AMD interface
localhost:~ # ledctl --amd_sgpio3 locate=/dev/sda
ledctl: unrecognized option '--amd_sgpio3'
localhost:~/amdledmon/ledmon-0.95/src # ledctl --all -L
ledctl: Unsupported AMD interface
ledctl: Unsupported AMD interface
ledctl: Unsupported AMD interface
ledctl: Unsupported AMD interface
ledctl: Unsupported AMD interface
ledctl: IPMI Error: 80
ledctl: Unable to determine Dell Server type
ledctl: Unsupported AMD interface
ledctl: Unsupported AMD interface
ledctl: Unsupported AMD interface
ledctl: Unsupported AMD interface
/sys/devices/pci0000:99/0000:99:08.2/0000:b1:00.0 (AMD)
/sys/devices/pci0000:c3/0000:c3:08.3/0000:c9:00.0 (AMD)
/sys/devices/pci0000:46/0000:46:08.3/0000:4c:00.0 (AMD)
/sys/devices/pci0000:c3/0000:c3:08.2/0000:c8:00.0 (AMD)
/sys/devices/pci0000:46/0000:46:08.2/0000:4b:00.0 (AMD)
/sys/devices/pci0000:12/0000:12:08.3/0000:2b:00.0 (AMD)
/sys/devices/pci0000:12/0000:12:08.2/0000:2a:00.0 (AMD)
/sys/devices/pci0000:99/0000:99:08.3/0000:b2:00.0 (AMD)

Kind regards

compile error of format not a string literal and no format arguments

Hi,
I came across an compile error in util.c since commit
dfa5e66 ("[ledmon] Unify logging methods.")

error is:

utils.c: In function '_log':
utils.c:314:21: error: format not a string literal and no format arguments [-Werror=format-security]
fprintf(s_log, lli->prefix);

I try to add an "%s" to it, then the error is not produced:
fprintf(s_log, "%s", lli->prefix);

Is it an issue? Could you help check?

Thanks,
Liwei.

ledctl

I don't know how the ledctl -x option is supposed to work.
If I did "ledctl -x /dev/sda" , the sda led is first on
and then "ledctl -x /dev/sdb", the sdb led is on but sda led is off. Isn't "-x" option touches one led only? The 2nd command should not bother /dev/sda at all?

Or I am supposed to use -x with locate command together?
Thanks!

Weird behavior when both VMD and NPEM are inplace

Nvme9n1 is not connected to npem controller but it is determined as npem capable.
Ledctl couldn't find device when asked for VMD.

[gklab-localhost ~/mtkaczyk_work/ledmon/ledmon_gh_master]# ./src/ledctl -L
/sys/devices/pci0000:00/0000:00:17.0 (AHCI)
/sys/devices/pci0000:17/0000:17:05.5/pci10000:00/10000:00:00.0/10000:01:00.0/10000:02:07.0 (NPEM)
/sys/devices/pci0000:00/0000:00:11.5 (AHCI)
/sys/devices/pci0000:17/0000:17:05.5/pci10000:00/10000:00:00.0/10000:01:00.0/10000:02:00.0 (NPEM)
/sys/devices/pci0000:17/0000:17:05.5/pci10000:00/10000:00:00.0/10000:01:00.0/10000:02:03.0 (NPEM)
/sys/devices/pci0000:17/0000:17:05.5/pci10000:00/10000:00:00.0/10000:01:00.0/10000:02:06.0 (NPEM)
/sys/devices/pci0000:17/0000:17:05.5 (VMD)
/sys/devices/pci0000:d7/0000:d7:05.5 (VMD)
/sys/devices/pci0000:17/0000:17:05.5/pci10000:00/10000:00:00.0/10000:01:00.0/10000:02:02.0 (NPEM)
/sys/devices/pci0000:17/0000:17:05.5/pci10000:00/10000:00:00.0/10000:01:00.0/10000:02:05.0 (NPEM)
/sys/devices/pci0000:85/0000:85:05.5 (VMD)
/sys/devices/pci0000:17/0000:17:05.5/pci10000:00/10000:00:00.0/10000:01:00.0/10000:02:01.0 (NPEM)
/sys/devices/pci0000:ae/0000:ae:05.5 (VMD)
/sys/devices/pci0000:17/0000:17:05.5/pci10000:00/10000:00:00.0/10000:01:00.0/10000:02:04.0 (NPEM)
/sys/devices/pci0000:5d/0000:5d:05.5 (VMD)


lrwxrwxrwx  1 root root 0 Feb 20 17:33 nvme9n1 -> ../devices/pci0000:d7/0000:d7:05.5/pci10004:00/10004:00:01.0/10004:02:00.0/nvme/nvme9/nvme9n1

[gklab-localhost ~/mtkaczyk_work/ledmon/ledmon_gh_master]# ./src/ledctl --get-slot -c npem -d/dev/nvme9n1
slot: 0000:d7:05.5    led state: UNKNOWN         device: /dev/nvme9n1

[gklab-localhost ~/mtkaczyk_work/ledmon/ledmon_gh_master]# ./src/ledctl --get-slot -c vmd -d/dev/nvme9n1
slot: 260             led state: NORMAL          device: (empty)

Originally posted by @mtkaczyk in #115 (comment)

No Enclosure Script

Here's a simple script I made to create activity to identify a failed HDD in a zfs pool where the disks are directly connected to the motherboard thus no enclosure and ledctl won't work.
Requires zpool, awk, & ioping

sudo zpool status TANK | awk '$2 ~ /^FAULTED$/ {system("sudo ioping /dev/disk/by-id/" $1)}'

where TANK is the zpool tank name

ledmon stopped working after upgrade from debian 10 (buster) to debian 11 (bullseye)

Hi,

I have an issue with ledmon after upgrading my debian installation from debian 10 to debian 11.

Debian 10 uses ledmon version 0.90-0.1
Debian 11 uses ledmon version 0.95-1

My system has a Supermicro X9DRD-7LN4F motherboard and a BPN-SAS2-846EL1 24 slots backplane with an LSI expander.

On version 0.90-0.1 ledctl works fine and i can identify my disks without issue.
However after upgrading to debian 11 (and ledmon to 0.95-1) it always throws the following error:

ledctl: /dev/sdX: device not supported
ledctl: IBPI LOCATE: missing block deivce(s)... pattern ignored.

When i then manually downgrade the ledmon package on debian 11 to version 0.90-0.1 it starts working again so it doesn't seem to be a kernel/driver issue but an issue in the ledmon package itself.

If i need to provide more information or do any testing, please let me know.

Kind regards,
Caspar

Segmentation fault in ledmon --list-controller

We have renamed the filename, did not touch the ledmon implementation.
The backtrace is below. I can send the dump if necessary.

(gdb) r --list-controller
Starting program: /root/./quobyte_ledmon --list-controller
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
/sys/devices/pci0000:00/0000:00:11.4 (AHCI)
/sys/devices/pci0000:00/0000:00:1f.2 (AHCI)

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7837694 in vfprintf () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff7837694 in vfprintf () from /lib64/libc.so.6
#1 0x00007ffff7840879 in printf () from /lib64/libc.so.6
#2 0x0000000000404fed in cntrl_print_all (ctrl_list=0x6133dc) at cntrl.c:443
#3 0x000000000040266b in _cmdline_parse (argc=2, argv=0x7fffffffe4b8) at ledmon.c:446
#4 0x00000000004031b1 in main (argc=2, argv=0x7fffffffe4b8) at ledmon.c:810

Turning off the locate LED after ejecting the device

I use ledctl to identify which disk to pull when a disk fails: ledctl locate=/dev/sdn

This works well. But, once I eject the faulted device, ledctl locate_off=dev/sdn no longer works (since, I suppose, the /dev node is no longer there).

Is there a solution or workaround for this?

Build for macos/bsd

Is there a build available for macos/bsd unix to use these tools?
Is it thinkable to port?

Not enumerated block device(s) - supporting NVMe

NVMe usage are seen primarily two ways as it stands. One is via kernel and another with SPDK.
When SPDK is used with, currently ledmon/ledctl cannot be used.

Primary reason is - SPDK would load stub driver instead of "nvme" driver and all traces of the device shall disappear from the sysfs path that qualifies it as valid "block" device.

Now - ability to "manage" LED is a slot feature than NVMe itself and slot does not disappear when running SPDK (or in kernel). If tool has ability to absorb PCIe path of the NVMe drive - now same tool can also be used with SPDK as well. Note that "/dev/nvme*" are used merely to find PCIe device path. Also, NPEM support that got added to this tool makes it even more powerful and compelling to be used in multiple application.

parallel build may failed sometimes

Hi Expert,
when build ledmon parallel will failed with error:
"git/src/_build/cntrl.o: file not recognized: file truncated"
or
"git/src/_build/utils.o: file not recognized: file truncated" or failed with other .o file.

the error rate may 1/10 or 1/8, build with 40 job parallel(make -j 40)

Could you help check if it is a real issue.

Thanks,
Liwei.

Fix --help for ledctl

The column size should be limited to 100 chars (compatibility with terminals and kernel style).

Help should be divided into

  • general_help;
    print modes and IBPI (backward compatibility)
  • help per mode
    print mode specific parameters if --help is used after mode

Spam debug ledctl -L on Supermicro motherboard

Build from source ./src/ledctl -L. Lots of spam.

Did not happen with v0.90.

Introduced with b6171ec

commit b6171ec7f7bfd32c884f46c6f8f3c5194afe50ae                                                                                                                                    
Author: Jordan Hargrave <[email protected]>                                                                                                                                 
Date:   Fri Feb 22 12:34:38 2019 -0600                                                                                                                                             
                                                                                                                                                                                   
    Fix !condition test for Dell SSDwq  
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type
IPMI Error: c7
ledctl: Unable to determine Dell Server type

0.94: ledmon is not LTO ready

gcc 10.0.1

make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/ledmon-0.94/src'
gcc -Wall -I../config -Wformat -Werror=format-security -Werror=format-overflow=2 -Werror=format-truncation=1 -Werror=shift-negative-value -Werror=alloca -Werror=missing-field-initializers -Werror=format-signedness   -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto=auto -flto-partition=none -Os  -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -o ledmon ledmon-ledmon.o ledmon-pidfile.o ledmon-ahci.o ledmon-block.o ledmon-cntrl.o ledmon-config_file.o ledmon-enclosure.o ledmon-list.o ledmon-raid.o ledmon-scsi.o ledmon-slave.o ledmon-status.o ledmon-sysfs.o ledmon-smp.o ledmon-dellssd.o ledmon-utils.o ledmon-pci_slot.o ledmon-vmdssd.o ledmon-udev.o ledmon-amd.o ledmon-amd_sgpio.o ledmon-amd_ipmi.o ledmon-ipmi.o ledmon-npem.o -lpci  -ludev  -lsgutils2 -lrt
sysfs.c: In function ‘_check_cntrl’:
cntrl.c:182:6: error: ‘/bsg/sas_’ directive output may be truncated writing 9 bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
  182 |      "%s/%s/bsg/sas_%s", path, p, p);
      |      ^
/usr/include/bits/stdio2.h:67:10: note: ‘__builtin___snprintf_chk’ output 11 or more bytes (assuming 4106) into a destination of size 4096
   67 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^
lto1: some warnings being treated as errors
lto-wrapper: fatal error: gcc returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status

SES is not used for enclosure devices that are directly connected.

We have a controller that has enclosure devices connected without expanders, they have to be controlled with SES and they cannot be controlled with smp.

The issue is in these lines:

ledmon/src/block.c

Lines 89 to 91 in 8cb8c5f

} else if (cntrl->cntrl_type == CNTRL_TYPE_SCSI
&& dev_directly_attached(path)) {
result = scsi_smp_fill_buffer;

and this function:

ledmon/src/block.c

Lines 55 to 60 in 8cb8c5f

int dev_directly_attached(const char *path)
{
if (strstr(path, "/expander") == 0)
return 1;
return 0;
}

If it finds no "/expander" in the path, it decides to use the function: scsi_smp_fill_buffer for this device. I think you should check if its an enclosure device differently not based solely on that string.

Led mismatch on Promise enclosure

Dear Support,

I discovered a led mismatch on a promise JBOD (SAS9300-8e) connected to an Intel Quad running Centos 3.10.0-1062.4.1.el7.x86_64

Version: ledmon-0.94-1.el8.x86_64

Log message are correct vs mdadm --detail

as below the md0 array on the JBOD, raid 6.

       5       8       32        1      active sync   /dev/sdc
       2       8       80        2      active sync   /dev/sdf
       3       8       96        3      active sync   /dev/sdg
       4       8      112        4      active sync   /dev/sdh
       1       8       64        -      spare   /dev/sde

sda and sdb are the local disk from the server.

Aug 03 10:10:48   DEBUG: (_set_block_state): device: sdd, state: Off
Aug 03 10:10:48   DEBUG: (_set_block_state): device: sde, state: Hotspare
Aug 03 10:10:48   DEBUG: (_set_block_state): device: sdf, state: Off
Aug 03 10:10:48   DEBUG: (_set_block_state): device: sdg, state: Off
Aug 03 10:10:48   DEBUG: (_set_block_state): device: sdh, state: Off
Aug 03 10:10:48   DEBUG: (_set_block_state): device: sda, state: Off
Aug 03 10:10:48   DEBUG: (_set_block_state): device: sdb, state: Off
NAME             MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                8:0    0 894.3G  0 disk
-md127            9:127  0 894.3G  0 raid1
  |-md127p1      259:0    0   512M  0 md    /boot/efi
  |-md127p2      259:1    0     1G  0 md    /boot
  -md127p3      259:2    0 892.8G  0 md
    |-vg00-lvol0 253:0    0    16G  0 lvm   /
    |-vg00-lvol1 253:1    0     8G  0 lvm   [SWAP]
    |-vg00-lvol4 253:2    0 675.8G  0 lvm   /opt
    |-vg00-lvol3 253:3    0    16G  0 lvm   /var
    -vg00-lvol2 253:4    0     8G  0 lvm   /tmp
sdb                8:16   0 894.3G  0 disk
-md127            9:127  0 894.3G  0 raid1
  |-md127p1      259:0    0   512M  0 md    /boot/efi
  |-md127p2      259:1    0     1G  0 md    /boot
  -md127p3      259:2    0 892.8G  0 md
    |-vg00-lvol0 253:0    0    16G  0 lvm   /
    |-vg00-lvol1 253:1    0     8G  0 lvm   [SWAP]
    |-vg00-lvol4 253:2    0 675.8G  0 lvm   /opt
    |-vg00-lvol3 253:3    0    16G  0 lvm   /var
    -vg00-lvol2 253:4    0     8G  0 lvm   /tmp
sdc                8:32   0   5.5T  0 disk
-md0              9:0    0  16.4T  0 raid6
  -vg01-lvol0   253:5    0    10G  0 lvm   /data
sdd                8:48   0   5.5T  0 disk
-md0              9:0    0  16.4T  0 raid6
  -vg01-lvol0   253:5    0    10G  0 lvm   /data
sde                8:64   0   5.5T  0 disk
-md0              9:0    0  16.4T  0 raid6
  -vg01-lvol0   253:5    0    10G  0 lvm   /data
sdf                8:80   0   5.5T  0 disk
-md0              9:0    0  16.4T  0 raid6
  -vg01-lvol0   253:5    0    10G  0 lvm   /data
sdg                8:96   0   5.5T  0 disk
-md0              9:0    0  16.4T  0 raid6
  -vg01-lvol0   253:5    0    10G  0 lvm   /data
sdh                8:112  0   5.5T  0 disk
-md0              9:0    0  16.4T  0 raid6
  -vg01-lvol0   253:5    0    10G  0 lvm   /data

As you can see below, JBOD disks start from sdc, ledmon indicate disk3 (/dev/sdd) as a spare, it's wrong it's disk2 (/dev/sde)
disk0=dev/sdc
disk1=/dev/sdd
disk2=/dev/sde
disk3=/dev/sdd
image

ledctl: Unable to locate all disks in md devices

The docs contain an example for locating all disks in an md device, however this does not work:

root:~# ledctl --debug locate=/dev/md0
ledctl: /dev/md0: device not supported
ledctl: IBPI LOCATE: missing block device(s)... pattern ignored.

Other info:

root:~# ledctl --version
Intel(R) Enclosure LED Control Application 0.94 
Copyright (C) 2009-2019 Intel Corporation.

This is free software; see the source for copying conditions. There is NO warranty;
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
root:~# ledctl --debug -L
ledctl: (raid_device_init) path: md0, level=6, state=6, degraded=0, disks=9, type=1
ledctl: (_set_block_state): device: sdm, state: NORMAL
ledctl: (_set_block_state): device: sdl, state: NORMAL
ledctl: (_set_block_state): device: sdk, state: NORMAL
ledctl: (_set_block_state): device: sdj, state: NORMAL
ledctl: (_set_block_state): device: sdi, state: NORMAL
ledctl: (_set_block_state): device: sdh, state: NORMAL
ledctl: (_set_block_state): device: sdg, state: NORMAL
ledctl: (_set_block_state): device: sdf, state: NORMAL
ledctl: (_set_block_state): device: sdb, state: NORMAL
/sys/devices/pci0000:00/0000:00:02.0/0000:01:00.0 (SCSI)
/sys/devices/pci0000:00/0000:00:15.0/0000:06:00.0 (SCSI)

OS is Ubuntu 20.04, kernel 5.4

-list-slots output order is not sorted

I would like to order slot entries alphabetically using "slot" property value:

slot: 0000:87:01.0    led state: LOCATE          device: (empty)
slot: 0000:87:00.0    led state: NORMAL          device: (empty)
slot: 0000:87:03.0    led state: UNKNOWN         device: (empty)
slot: 0000:87:02.0    led state: UNKNOWN         device: (empty)
slot: 0000:87:00.0    led state: NORMAL          device: (empty)
slot: 0000:87:01.0    led state: LOCATE          device: (empty)
slot: 0000:87:02.0    led state: UNKNOWN         device: (empty)
slot: 0000:87:03.0    led state: UNKNOWN         device: (empty)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.