NVME-MANGOBOOST-ID(1) NVMe Manual NVME-MANGOBOOST-ID(1)

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

nvme mangoboost 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) چاپ گردد.

در صورتی که برنامه خروجی را جهت خوانایی رمزگشایی کند، این نسخه بخش‌های اختصاصی و منحصربه‌فرد سازنده منگوبوست (MangoBoost) از ساختار را رمزگشایی خواهد کرد.

-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 mangoboost id-ctrl /dev/nvme0
•علاوه بر نمایش فیلدهای شناخته‌شده، برنامه فیلد منحصربه‌فرد سازنده را نیز نمایش دهد:
# nvme mangoboost id-ctrl /dev/nvme0 --vendor-specific
# nvme mangoboost id-ctrl /dev/nvme0 -V

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

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

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

•همچنین ممکن است بخواهید داده‌ها را به برنامه دیگری ارسال کنید که بتواند بافر خام را تجزیه کند.
# nvme mangoboost 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(1)، nvme-id-ctrl(1)

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

02/16/2026 NVMe