NVME-RPMB(1) NVMe Manual NVME-RPMB(1)

nvme-rpmb - ارسال دستورات RPMB به یک دستگاه NVMe

nvme rpmb <device> [--cmd=<command> | -c <command>]
                        [--msgfile=<data-file> | -f <data-file>]
                        [--keyfile=<key-file> | -g <key-file>]
                        [--key=<key> | -k <key>] [--msg=<data> | -d <data>]
                        [--address=<offset> | -o <offset>]
                        [--blocks=<512 byte sectors> | -b <sectors>]
                        [--target=<target-id> | -t <id>]
                        [--output-format=<fmt> | -o <fmt>] [--verbose | -v]

برای دستگاه NVMe داده‌شده، یک دستور nvme rpmb ارسال کرده و نتایج را ارائه می‌دهد.

پارامتر <device> اجباری است و باید یک دستگاه کاراکتری NVMe (مانند /dev/nvme0) مشخص شود. اگر دستگاه داده‌شده از اهداف RPMB پشتیبانی کند، دستور ارائه‌شده با گزینهٔ --cmd یا -c به کنترل‌کننده ارسال خواهد شد. اگر دستگاه NVMe مورد نظر از اهداف RPMB پشتیبانی نکند، پیامی مبنی بر همین موضوع به همراه مقادیر ثبات‌های کنترل‌کنندهٔ مرتبط با RPMB چاپ می‌شود.

-c <command>, --cmd=<command>

دستور RPMB برای ارسال به دستگاه. این دستور می‌تواند یکی از موارد زیر باشد:
info          - چاپ اطلاعات مربوط به اهداف RPMB پشتیبانی‌شده،
                اندازه‌های دسترسی و اندازهٔ کل. به هیچ آرگومان دیگری نیاز نیست.
program-key   - برنامه‌ریزی کلید (key) مشخص‌شده با گزینهٔ -k یا کلید
                خوانده‌شده از فایل مشخص‌شده با گزینهٔ --keyfile برای هدف
                RPMB تعیین‌شده با گزینه‌های --target یا -t. طبق مشخصات فنی،
                این یک عملیات یک‌باره است و قابل بازگشت نیست.
read-counter  - خواندن «شمارندهٔ نوشتن» (write counter) برای هدف RPMB مشخص‌شده.
                مقدار شمارندهٔ خوانده‌شده در STDOUT چاپ می‌شود.
read-config   - خواندن ۵۱۲ بایت داده‌های بلوک پیکربندی دستگاه از هدف RPMB
                مشخص‌شده در دستگاه NVMe. داده‌های خوانده‌شده در فایل ورودی
                مشخص‌شده با گزینهٔ --msgfile یا -f نوشته می‌شوند.
write-config  - نوشتن ۵۱۲ بایت داده‌های بلوک پیکربندی دستگاه از فایل مشخص‌شده
                توسط گزینه‌های --msgfile یا -f در هدف RPMB مشخص‌شده با
                گزینه‌های --target یا -t.
read-data     - پشتیبانی از خواندن احرازهویت‌شدهٔ داده‌ها از هدف RPMB مشخص‌شده
                (گزینهٔ --target یا -t) در افست ارائه‌شده با گزینهٔ --address
                یا -o، با استفاده از کلید مشخص‌شده با گزینهٔ --keyfile یا -k.
                برای مشخص کردن میزان داده جهت خواندن بر حسب بلوک‌های ۵۱۲ بایتی،
                باید گزینهٔ --blocks یا -b ارائه شود.
write-data    - پشتیبانی از نوشتن احرازهویت‌شدهٔ داده‌ها در هدف RPMB مشخص‌شده
                (گزینهٔ --target یا -t) در افست ارائه‌شده با گزینهٔ --address
                یا -o، با استفاده از کلید مشخص‌شده با گزینهٔ --keyfile یا -k.
                برای مشخص کردن میزان داده جهت نوشتن بر حسب بلوک‌های ۵۱۲ بایتی،
                باید گزینهٔ --blocks یا -b ارائه شود.
برای دستورات انتقال داده (خواندن/نوشتن)، اگر اندازهٔ مشخص‌شده در محدودهٔ
اندازهٔ کل پشتیبانی‌شده توسط یک هدف نباشد، nvme-rpmb بدون ارسال درخواست
به دستگاه، آن را با شکست مواجه می‌کند. در صورتی که --target یا -t مشخص نشده
باشد، هدف RPMB شمارهٔ 0 به عنوان هدف پیش‌فرض استفاده می‌شود. در صورت عدم
تعیین گزینهٔ --address یا -o، آدرس 0x0 به عنوان آدرس پیش‌فرض در نظر گرفته می‌شود.

-t <target>, --target=<target>

شناسهٔ هدف RPMB. این مقدار باید یکی از اهداف RPMB پشتیبانی‌شده باشد که توسط دستور info گزارش می‌شود. در صورت عدم تعیین، مقدار پیش‌فرض 0 به عنوان هدف RPMB استفاده می‌شود.

-k <key>, --key=<key>, -g <key-file>, --keyfile=<key-file>

کلید احراز هویت برای استفاده در دستورات خواندن/نوشتن. این کلید باید قبلاً توسط دستور program-key برای هدف مورد نظر برنامه‌ریزی شده باشد. کلید را می‌توان با استفاده از گزینه‌های --key یا -k در خط فرمان مشخص کرد. همچنین می‌توان کلید را با استفاده از آرگومان فایل ارائه‌شده با گزینه‌های --keyfile یا -g مشخص نمود.

-f <data-file>, --msgfile=<data-file>

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

-d <data>, --msg=<data>

این گزینه‌ها داده‌ها را مستقیماً در خود خط فرمان ارائه می‌دهند.

-o <offset>, --address=<offset>

آدرس (بر حسب افست سکتورهای ۵۱۲ بایتی از 0) برای استفاده در دستورات انتقال داده (خواندن یا نوشتن) برای یک هدف RPMB مشخص‌شده.

-b, --blocks=<sectors>

اندازه بر حسب سکتورهای ۵۱۲ بایتی برای استفاده در دستورات انتقال داده (خواندن یا نوشتن) برای یک هدف RPMB مشخص‌شده.

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

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

-v, --verbose

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

•چاپ اطلاعات پشتیبانی از RPMB در یک دستگاه NVMe:
# nvme rpmb /dev/nvme0 --cmd=info
•برنامه‌ریزی SecretKey به عنوان کلید احراز هویت برای هدف 1:
# nvme rpmb /dev/nvme0 --cmd=program-key -key='SecretKey' --target=1
•خواندن شمارندهٔ نوشتن فعلی برای هدف RPMB شمارهٔ 0:
# nvme rpmb /dev/nvme0 --cmd=read-counter --target=0
•خواندن بلوک داده‌های پیکربندی هدف 2 و ذخیره در فایل config.bin:
# nvme rpmb /dev/nvme0 --cmd=read-config --target=2 -f config.bin
•نوشتن ۲۰۰ بلوک (۵۱۲ بایتی) از input.bin روی هدف 0:
# nvme rpmb /dev/nvme0 -c write-data -t 0 -f input.bin -b 200 -k 'SecretKey'
•خواندن ۲۰۰ بلوک (۵۱۲ بایتی) از هدف 2 در افست 0x100 و ذخیرهٔ
•داده‌ها در out.bin:
# nvme rpmb /dev/nvme0 -c read-data -t 2 -f out.bin -b 200 -o 0x100

nvme(1)

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

02/16/2026 NVMe