NVME-ID-CTRL(1) راهنمای NVMe NVME-ID-CTRL(1)

nvme-id-ctrl - ارسال دستور شناسایی کنترلر NVMe و بازگرداندن نتیجه و ساختار

nvme id-ctrl <device> [--vendor-specific | -V] [--raw-binary | -b]
                        [--output-format=<fmt> | -o <fmt>] [--verbose | -v]

برای دستگاه NVMe داده‌شده، یک دستور شناسایی کنترلر (identify controller) ارسال می‌کند و نتیجه و ساختار بازگردانده‌شده را ارائه می‌دهد.

پارامتر <device> الزامی است و می‌تواند دستگاه کاراکتری NVMe (مانند: /dev/nvme0) یا یک دستگاه بلوکی فضای‌نام (مانند: /dev/nvme0n1) باشد.

در صورت موفقیت، بسته به فلگ‌های گزینه، ساختار ممکن است به یکی از چندین روش بازگردانده شود؛ ساختار می‌تواند توسط برنامه تجزیه شود یا بافر خام در stdout چاپ شود.

-b, --raw-binary

چاپ بافر خام در خروجی استاندارد (stdout). ساختار توسط برنامه تجزیه نمی‌شود. این گزینه بر گزینه‌های vendor specific و human readable تقدم دارد و آن‌ها را لغو می‌کند.

-V, --vendor-specific

علاوه بر تجزیه فیلدهای شناخته‌شده، این گزینه بخش اختصاصی سازنده (vendor specific) ساختار را به صورت هگزادسیمال همراه با تفسیر اسکی دامپ می‌کند.

-H, --human-readable

این گزینه بسیاری از فیلدهای بیتی را تجزیه کرده و در قالب‌های خوانا برای انسان قالب‌بندی می‌کند.

-o <fmt>, --output-format=<fmt>

تنظیم قالب گزارش به normal، json یا binary. در هر زمان تنها یک قالب خروجی قابل استفاده است.

-v, --verbose

افزایش جزئیات اطلاعات در خروجی.

•تفسیر بافر بازگردانده‌شده توسط برنامه و نمایش فیلدهای شناخته‌شده در قالبی خوانا برای انسان:
# nvme id-ctrl /dev/nvme0
•علاوه بر نمایش فیلدهای شناخته‌شده، برنامه فیلد منحصربه‌فرد سازنده را نیز نمایش دهد:
# nvme id-ctrl /dev/nvme0 --vendor-specific
# nvme id-ctrl /dev/nvme0 -V

دستور فوق بافر vs را به صورت هگزادسیمال دامپ می‌کند، زیرا نحوه تفسیر آن را نمی‌داند.

•بازگرداندن ساختار خام به صورت دودویی (binary) توسط برنامه:
# nvme id-ctrl /dev/nvme0 --raw-binary > id_ctrl.raw
# nvme id-ctrl /dev/nvme0 -b > id_ctrl.raw

عدم تغییر مسیر خروجی استاندارد (stdout) هنگام استفاده از این حالت احتمالاً ایده خوبی نیست.

•همچنین ممکن است بخواهید داده‌ها را به برنامه دیگری ارسال کنید که بتواند بافر خام را تجزیه کند.
# nvme id-ctrl /dev/nvme0 --raw-binary | nvme_parse_id_ctrl

برنامه تجزیه‌کننده در مثال بالا می‌تواند برنامه‌ای باشد که ساختار را به شیوه دلخواه شما نشان دهد. برنامه زیر نمونه‌ای از این دست است که آن را تجزیه می‌کند و می‌تواند خروجی را از طریق لوله (pipe)، '|'، همان‌طور که در مثال بالا نشان داده شده دریافت کند، یا می‌توانید با 'cat' یک بافر خروجی ذخیره‌شده را به آن هدایت کنید.

/* File: nvme_parse_id_ctrl.c */
#include <linux/nvme.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char **argv)
{
        unsigned char buf[sizeof(struct nvme_id_ctrl)];
        struct nvme_id_ctrl *ctrl = (struct nvme_id_ctrl *)buf;
        if (read(STDIN_FILENO, buf, sizeof(buf)))
                return 1;
        printf("vid   : %#x\n", ctrl->vid);
        printf("ssvid : %#x\n", ctrl->ssvid);
        return 0;
}

بخشی از مجموعه nvme-user

nvme(1)

02/16/2026 NVMe