.TH mmc\-utils 1 "April 2024" "User Manual" .SH "نام (NAME)" mmc \- ابزاری برای پیکربندی و مدیریت دستگاه‌های ذخیره‌سازی MMC و eMMC .SH "خلاصه دستور (SYNOPSIS)" .B mmc [\fIگزینه‌ها\fR] [\fIدستگاه\-بلوکی\-mmc\fR]... .SH "توضیحات (DESCRIPTION)" ابزار .B mmc-utils یک ابزار تک‌نخی (single-threaded) برای اجرای عملیات تعیین‌شده MMC توسط کاربر است. .br کاربرد متداول mmc-utils دسترسی به دستگاه حافظه MMC جهت پیکربندی یا خواندن ثبات‌های پیکربندی (configuration registers) آن است. .SH "گزینه‌ها (OPTIONS)" .TP .BI extcsd " " read " " \fIdevice\fR خواندن و چاپ ثبات CSD توسعه‌یافته (extcsd). .TP .BI extcsd " " write " " \fIoffset\fR " " \fIvalue\fR " " \fIdevice\fR نوشتن مقدار \fIvalue\fR در آفست \fIoffset\fR در ثبات extcsd دستگاه. .TP .BI writeprotect " " boot " " get " " \fIdevice\fR چاپ وضعیت حفاظت در برابر نوشتن (write protect) پارتیشن‌های بوت. .TP .BI writeprotect " " boot " " set " " \fIdevice\fR " " [\fInumber\fR] تنظیم وضعیت حفاظت در برابر نوشتن پارتیشن بوت دستگاه. .br اگر \fInumber\fR ارسال شود (۰ یا ۱)، تنها همان پارتیشن بوت eMMC محافظت می‌شود؛ در غیر این صورت هر دو پارتیشن محافظت خواهند شد. .br این حفاظت تا راه‌اندازی (بوت) بعدی پایدار خواهد بود. .TP .BI writeprotect " " user " " get " " \fIdevice\fR چاپ پیکربندی حفاظت در برابر نوشتن ناحیه کاربری برای دستگاه. .TP .BI writeprotect " " user " " set " " \fItype\fR " " \fIstart\-block\fR " " \fIblocks\fR " " \fIdevice\fR تنظیم پیکربندی حفاظت در برابر نوشتن برای محدوده مشخصی از ناحیه کاربری دستگاه. .br \fIstart\-block\fR بلوک آغازین ناحیه محافظت‌شده را مشخص می‌کند. .br \fIblocks\fR اندازه ناحیه محافظت‌شده را بر حسب تعداد بلوک‌ها مشخص می‌سازد. .br توجه! این محدوده باید در مرزهای گروه حفاظت در برابر نوشتن آغاز شده و پایان یابد. از دستور "writeprotect user get" برای دریافت اندازه گروه حفاظت استفاده کنید. \fItype\fR یکی از مقادیر زیر است: .RS .RS .TP .B none پاک کردن حفاظت موقت در برابر نوشتن. .TP .B temp تنظیم حفاظت موقت در برابر نوشتن. .TP .B pwron تنظیم حفاظت در برابر نوشتن تا زمان قطع و وصل مجدد برق (power cycle). .RE .RE .TP .BI disable " " 512B " " emulation " " \fIdevice\fR تنظیم اندازه سکتور داده eMMC به ۴ کیلوبایت با غیرفعال‌سازی شبیه‌سازی روی دستگاه. .TP .BI gp " " create " " \fIdry\-run\fR " " \fIlength\-KiB\fR " " \fIpartition\fR " " \fIenh\-attr\fR " " \fIext\-attr\fR " " \fIdevice\fR ایجاد پارتیشن همه‌منظوره (general purpose) برای دستگاه. .br توجه! این یک تغییر یک‌باربرنامه‌ریزی‌پذیر (غیرقابل بازگشت) است. .br برای تنظیم ویژگی بهبودیافته (enhanced) برای پارتیشن، مقدار \fIenh\-attr\fR را ۱ و در غیر این صورت ۰ بگذارید. .br \fIdry\-run\fR یکی از موارد زیر است: .RS .RS .TP .B \-y مقدار PARTITION_SETTING_COMPLETED در extcsd تنظیم شده و عملیات پارتیشن‌بندی نهایی و اعمال می‌گردد. .TP .B \-c تنظیمات پارتیشن‌بندی بیشتری در راه است؛ عملیات هنوز نهایی نمی‌شود. .TP .B otherwise تغییرات نه اکنون و نه پس از راه‌اندازی مجدد اعمال نخواهند شد. .RE .RE .TP .BI enh_area " " set " " \fIdry\-run\fR " " \fIstart\-KiB\fR " " \fIlength\-KiB\fR " " \fIdevice\fR فعال‌سازی ناحیه کاربری بهبودیافته برای دستگاه (غیرقابل بازگشت). .TP .BI write_reliability " " set " " \fIdry\-run\fR " " \fIpartition\fR " " \fIdevice\fR فعال‌سازی قابلیت اطمینان نوشتن به ازای هر پارتیشن برای دستگاه (غیرقابل بازگشت). .TP .BI status " " get " " \fIdevice\fR چاپ پاسخ دستور STATUS_SEND (CMD13). .TP .BI bootpart " " enable " " \fIboot\-partition\fR " " \fIsend\-ackn\fR " " \fIdevice\fR فعال‌سازی پارتیشن بوت برای دستگاه (اگر \fIboot\-partition\fR برابر با ۰ باشد، غیرفعال می‌شود). .TP .BI bootbus " " set " " \fIboot\-mode\fR " " \fIreset\-boot\-bus\-conditions\fR " " \fIboot\-bus\-width\fR " " \fIdevice\fR تنظیم شرایط گذرگاه بوت (Boot Bus Conditions). .TP .BI bkops_en " " \fImode\fR " " \fIdevice\fR فعال‌سازی قابلیت BKOPS مربوط به eMMC روی دستگاه. .br \fImode\fR می‌تواند auto (خودکار) یا manual (دستی) باشد (حالت دستی غیرقابل بازگشت است). .TP .BI hwreset " " enable " " \fIdevice\fR فعال‌سازی دائمی قابلیت بازنشانی سخت‌افزاری eMMC روی دستگاه (غیرقابل بازگشت). .TP .BI hwreset " " disable " " \fIdevice\fR غیرفعال‌سازی دائمی قابلیت بازنشانی سخت‌افزاری eMMC روی دستگاه (غیرقابل بازگشت). .TP .BI sanitize " " \fIdevice\fR " " \fI[timeout_ms]\fR ارسال دستور Sanitize به دستگاه جهت پاک‌سازی قطعی نواحی نگاشت‌نشده حافظه. .TP .BI rpmb " " write\-key " " \fIrpmb\-device\fR " " \fIkey\-file\fR برنامه‌ریزی کلید احراز هویت ۳۲ بایتی ذخیره‌شده در فایل تعیین‌شده (یا '-' برای ورودی استاندارد). غیرقابل بازگشت است. .TP .BI rpmb " " read\-counter " " \fIrpmb\-device\fR خواندن مقدار شمارنده \fIrpmb\-device\fR در خروجی استاندارد. .TP .BI rpmb " " read\-block " " \fIrpmb\-device\fR " " \fIaddress\fR " " \fIblocks\-count\fR " " \fIoutput\-file\fR " " [\fIkey\-file\fR] خواندن بلوک‌های ۲۵۶ بایتی از \fIrpmb\-device\fR به پرونده خروجی یا stdout. .TP .BI rpmb " " write\-block " " \fIrpmb\-device\fR " " \fIaddress\fR " " \fI256\-byte\-data\-file\fR " " \fIkey\-file\fR نوشتن بلوک ۲۵۶ بایتی از فایل داده به \fIrpmb\-device\fR. .TP .BI rpmb " " secure\-wp\-mode\-on " " \fIrpmb\-device\fR " " \fIkey\-file\fR فعال‌سازی حالت حفاظت امن در برابر نوشتن. .TP .BI rpmb " " secure\-wp\-mode\-off " " \fIrpmb\-device\fR " " \fIkey\-file\fR غیرفعال‌سازی حالت حفاظت امن در برابر نوشتن (حالت موروثی). .TP .BI cache " " enable " " \fIdevice\fR فعال‌سازی قابلیت حافظه نهان (کَش) eMMC روی دستگاه. .TP .BI cache " " disable " " \fIdevice\fR غیرفعال‌سازی قابلیت حافظه نهان (کَش) eMMC روی دستگاه. .TP .BI csd " " read " " \fR[\-h] \fR[\-v] " " \fR[\-b " " \fIbus_type\fR] " " \fR[\-r " " \fIregister\fR] " " \fI\fR چاپ داده‌های ثبات CSD از مسیر دستگاه. .TP .BI cid " " read " " \fR[\-h] \fR[\-v] " " \fR[\-b " " \fIbus_type\fR] " " \fR[\-r " " \fIregister\fR] " " \fI\fR چاپ داده‌های ثبات شناسه کارت CID از مسیر دستگاه. .TP .BI scr " " read " " \fR[\-h] \fR[\-v] " " \fR[\-b " " \fIbus_type\fR] " " \fR[\-r " " \fIregister\fR] " " \fI\fR چاپ داده‌های ثبات پیکربندی SD (ثبات SCR) از مسیر دستگاه. .TP .BI ffu " " \fIimage\-file\-name\fR " " \fIdevice\fR " " [\fIchunk\-bytes\fR] اجرای به‌روزرسانی میان‌افزار میدانی (Field Firmware Update / FFU) با تصویر مشخص‌شده روی دستگاه. .TP .BI erase " " \fItype\fR " " \fIstart\-address\fR " " \fIend\-address\fR " " \fIdevice\fR ارسال دستور Erase CMD38 برای پاک‌سازی بازه مشخص‌شده از داده‌های کاربری. .TP .BI gen_cmd " " read " \fidevice\fR [\fIarg\fR] ارسال دستور عمومی GEN_CMD (CMD56) جهت خواندن داده‌های سلامت یا اطلاعات اختصاصی سازنده دستگاه. .TP .BI softreset " " \fIdevice\fR ارسال فرمان CMD0 برای بازنشانی نرم‌افزاری. .TP .BI boot_operation " " \fIboot\-data\-file\fR " " \fIdevice\fR اجرای عملیات بوت جایگزین و نوشتن بلوک‌های اولیه داده‌های بوت در پرونده درخواستی. .TP .B \-\-help | help | \-h نمایش راهنمای دستورات. .TP .BI \fIcmd\fR " " \-\-help نمایش راهنمای تفصیلی برای دستور خاص \fIcmd\fR. .SH "دستورات RPMB (RPMB COMMANDS)" پارتیشن RPMB (بلوک حافظه محافظت‌شده در برابر بازپخش) در دستگاه‌های eMMC ناحیه ویژه‌ای برای ذخیره‌سازی امن اطلاعات با امضای رمزنگاری‌شده توسط یک کلید محرمانه اختصاصی است. .br جهت نوشتن و خواندن رکوردها از این ناحیه ویژه، احراز هویت الزامی است. .br دسترسی به ناحیه RPMB *منحصراً* از طریق ioctl() از فضای کاربری انجام می‌شود. .SH "مثال‌ها (EXAMPLES)" .PP .B نمونه‌های RPMB .PP برنامه‌ریزی کلید RPMB از طریق ورودی استاندارد: .PP .nf $ echo -n AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH | mmc rpmb write-key /dev/mmcblk0rpmb - .fi .PP خواندن ۲ بلوک از آدرس ۲ و چاپ در خروجی استاندارد با اعتبارسنجی فریم‌ها با کلید: .PP .nf $ echo -n AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH | mmc rpmb read-block /dev/mmcblk0rpmb 0x02 2 - .fi .PP خواندن ۲ بلوک بدون اعتبارسنجی از آدرس ۲ و ذخیره در پرونده /tmp/block: .PP .nf $ mmc rpmb read-block /dev/mmcblk0rpmb 0x02 2 /tmp/block .fi .PP .B نمونه‌های به‌روزرسانی میان‌افزار (FFU) .PP اجرای FFU با حداکثر اندازه قطعه مجاز: .PP .nf $ mmc ffu IO4e0aC2056001801M1100042AE1.fluf /dev/mmcblk0 .fi .PP مشابه بالا اما با قطعات ۴ کیلوبایتی: .PP .nf $ mmc ffu IO4e0aC2056001801M1100042AE1.fluf /dev/mmcblk0 4096 .fi .SH "نویسندگان (AUTHORS)" ابزار .B mmc-utils توسط Chris Ball و نوشته شده است. .br این ابزار در حال حاضر توسط Ulf Hansson نگهداری می‌شود. .SH "گزارش اشکالات (REPORTING BUGS)" اشکالات را به فهرست رایانامه‌ای \fBmmc\fR به نشانی گزارش دهید. .SH "همچنین ببینید (SEE ALSO)" برای مستندات تکمیلی پرونده \fBREADME\fR را مطالعه فرمایید. .br مقدمه کوتاه: .br درخت رسمی گیت: