# nvidia-nvme-manager **Repository Path**: mirrors_NVIDIA/nvidia-nvme-manager ## Basic Information - **Project Name**: nvidia-nvme-manager - **Description**: Manage NVME drives via MCTP - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-02 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NVMe Device Manager for OpenBMC A D-Bus based NVMe device management daemon for OpenBMC systems. This service discovers, monitors, and manages NVMe drives through the NVMe Management Interface (NVMe-MI) over MCTP (Management Component Transport Protocol). ## Overview This daemon provides comprehensive NVMe drive management capabilities including: - **Automatic Discovery**: Discovers NVMe drives via MCTP endpoints - **Health Monitoring**: Monitors drive health through SMART attributes and status polling - **Drive Information**: Exposes detailed drive information (model, serial, firmware version, capacity, etc.) - **Secure Erase**: Supports various sanitization methods (block erase, overwrite, crypto erase) - **Firmware Inventory**: Optional firmware version tracking and inventory management - **D-Bus Integration**: Full integration with OpenBMC D-Bus infrastructure ## Features ### Drive Management - NVMe-MI protocol support via libnvme-mi - Real-time drive status and health monitoring - SMART warning detection and Redfish event generation - Drive association with system topology - **Drive State Persistence**: Automatically saves drive state (EID, location code, serial number) to JSON file ### Supported Operations - Identify drive (model, serial number, manufacturer, capacity) - Query drive health and operational status - Secure erase with progress tracking - Link status detection - Form factor detection - Drive state tracking and persistence ### D-Bus Interfaces Exposes the following OpenBMC D-Bus interfaces: - `xyz.openbmc_project.Inventory.Item` - `xyz.openbmc_project.Inventory.Item.StorageController` - `xyz.openbmc_project.Inventory.Item.Drive` - `xyz.openbmc_project.State.Decorator.Health` - `xyz.openbmc_project.State.Decorator.OperationalStatus` - `xyz.openbmc_project.Nvme.Status` - `xyz.openbmc_project.Nvme.SecureErase` - `xyz.openbmc_project.Nvme.Operation` - And more... ## Building ### Prerequisites - C++23 compatible compiler (GCC 12+ or Clang 15+) - Meson build system (>= 1.1.1) - libnvme and libnvme-mi libraries - sdbusplus (OpenBMC D-Bus library) - phosphor-logging - Boost.Asio - nlohmann-json - systemd ### Build Instructions ```bash #Configure the build meson setup build #Compile ninja -C build #Install sudo ninja -C build install ``` ### Build Options Configure build options using `-D