'\" t .\" ** The above line should force tbl to be a preprocessor ** .TH DMIDECODE 8 "June 2025" "dmidecode" .\" .SH "نام (NAME)" dmidecode \- رمزگشای جدول DMI .\" .SH "خلاصه دستور (SYNOPSIS)" .B dmidecode .RI [ گزینه‌ها ] .\" .SH "توضیحات (DESCRIPTION)" دستور .B dmidecode ابزاری برای تخلیه و نمایش محتویات جدول \s-1DMI\s0 (که برخی آن را \s-1SMBIOS\s0 می‌نامند) یک رایانه به قالبی خوانا برای انسان است. این جدول شامل توصیفی از مؤلفه‌های سخت‌افزاری سیستم و همچنین سایر اطلاعات مفید مانند شماره سریال‌ها و نگارش سفت‌افزار (firmware) است. به لطف این جدول، شما می‌توانید بدون نیاز به بررسی مستقیم سخت‌افزار واقعی، این اطلاعات را بازیابی کنید. اگرچه این امر از نظر سرعت گزارش‌گیری و ایمنی یک مزیت محسوب می‌شود، اما همزمان موجب می‌شود اطلاعات ارائه‌شده احتمالاً غیرقابل اعتماد باشند. .PP جدول \s-1DMI\s0 نه تنها وضعیت فعلی قطعات سیستم را شرح می‌دهد، بلکه می‌تواند قابلیت‌های ارتقا و تحولات احتمالی (مانند سریع‌ترین \s-1CPU\s0 پشتیبانی‌شده یا حداکثر حافظه رم قابل پشتیبانی) را نیز گزارش کند. .PP عبارت \s-1SMBIOS\s0 مخفف System Management \s-1BIOS\s0 بوده و \s-1DMI\s0 مخفف Desktop Management Interface است. هر دو استاندارد ارتباط نزدیکی با یکدیگر دارند و توسط \s-1DMTF\s0 (کارگروه مدیریت دسکتاپ) توسعه یافته‌اند. .PP هنگام اجرا، .B dmidecode تلاش خواهد کرد جدول \s-1DMI\s0 را پیدا کند. ابتدا سعی می‌کند جدول DMI را از sysfs بخواند و در صورت عدم موفقیت در دسترسی به sysfs، تلاش می‌کند مستقیماً از حافظه بخواند. اگر .B dmidecode موفق به یافتن یک جدول معتبر DMI شود، سپس این جدول را تجزیه کرده و فهرستی از رکوردها مانند نمونه زیر را نمایش می‌دهد: .PP .nf Handle 0x0002, DMI type 2, 8 bytes. Base Board Information Manufacturer: Intel Product Name: C440GX+ Version: 727281-001 Serial Number: INCY92700942 .fi .PP هر رکورد شامل موارد زیر است: .IP \(bu "\w'\(bu'u+1n" یک دستگیره (Handle). این یک شناسه یکتا است که به رکوردها اجازه می‌دهد به یکدیگر ارجاع دهند. به عنوان مثال، رکوردهای پردازنده معمولاً با استفاده از handleهایشان به رکوردهای حافظه نهان (cache) ارجاع می‌دهند. .IP \(bu یک نوع (Type). مشخصات \s-1SMBIOS\s0 انواع مختلفی از عناصری را که یک رایانه می‌تواند از آن‌ها تشکیل شود تعریف می‌کند. در این مثال، نوع ۲ است، به این معنی که رکورد حاوی «اطلاعات برد اصلی» (Base Board Information) است. .IP \(bu یک اندازه (Size). هر رکورد دارای یک سرآیند ۴ بایتی است (۲ بایت برای handle، ۱ بایت برای type، ۱ بایت برای size)، و مابقی فضا توسط داده‌های رکورد استفاده می‌شود. این مقدار رشته‌های متنی را شامل نمی‌شود (این رشته‌ها در انتهای رکورد قرار می‌گیرند)، بنابراین طول واقعی رکورد ممکن است (و اغلب اوقات) بیشتر از مقدار نمایش‌داده‌شده باشد. .IP \(bu مقادیر رمزگشایی‌شده (Decoded values). اطلاعات ارائه‌شده طبیعتاً به نوع رکورد بستگی دارد. در اینجا، ما درباره سازنده، مدل، نسخه و شماره سریال برد اطلاعات کسب می‌کنیم. .\" .SH "گزینه‌ها (OPTIONS)" .TP .BR "-d" ", " "--dev-mem \fIFILE\fP" خواندن حافظه از پرونده دستگاه \fIFILE\fP (پیش‌فرض: \fI/dev/mem\fP) .TP .BR "-q" ", " "--quiet" خروجی مختصرتر (کم‌حرف). ورودی‌های ناشناخته، غیرفعال و مختص \s-1OEM\s0 نمایش داده نمی‌شوند. فراداده‌ها و ارجاعات handle پنهان می‌شوند. .TP .BR " " " " "--no-quirks" رمزگشایی همه‌چیز دقیقاً همان‌گونه که در جدول وجود دارد، بدون تلاش برای اصلاح اشتباهات رایج یا پنهان‌سازی فیلدهای نامربوط. این حالت در درجه اول برای توسعه‌دهندگان سفت‌افزار در نظر گرفته شده است. .TP .BR "-s" ", " "--string \fIKEYWORD\fP" تنها نمایش مقدار رشته \s-1DMI\s0 مشخص‌شده با \fIKEYWORD\fP. این شناسه باید یک کلیدواژه از فهرست زیر باشد: .nh .BR bios\-vendor , .BR bios\-version , .BR bios\-release\-date , .BR bios\-revision , .BR firmware\-revision , .BR system\-manufacturer , .BR system\-product\-name , .BR system\-version , .BR system\-serial\-number , .BR system\-uuid , .BR system\-sku\-number , .BR system\-family , .BR baseboard\-manufacturer , .BR baseboard\-product\-name , .BR baseboard\-version , .BR baseboard\-serial\-number , .BR baseboard\-asset\-tag , .BR chassis\-manufacturer , .BR chassis\-type , .BR chassis\-version , .BR chassis\-serial\-number , .BR chassis\-asset\-tag , .BR processor\-family , .BR processor\-manufacturer , .BR processor\-version , .BR processor\-frequency . .hy در این زمینه، به دلایل تاریخی، "bios" سفت‌افزار پلتفرم را مشخص می‌کند (صرف‌نظر از اینکه از نظر فنی استاندارد BIOS را پیاده‌سازی کرده باشد یا خیر)، در حالی که "firmware" در صورت وجود، سفت‌افزار کنترل‌کننده تعبیه‌شده (embedded controller) را مشخص می‌کند. هر کلیدواژه با یک نوع \s-1DMI\s0 مشخص و یک آفست معین در این نوع ورودی مطابقت دارد. همه رشته‌ها ممکن است در تمام سیستم‌ها دارای مفهوم یا حتی تعریف‌شده نباشند. برخی از کلیدواژه‌ها ممکن است در برخی سیستم‌ها بیش از یک نتیجه برگردانند (مثلاً .nh .B processor\-version .hy در یک سیستم چندپردازنده‌ای). اگر \fIKEYWORD\fP ارائه نشود یا نامعتبر باشد، فهرستی از تمام کلیدواژه‌های معتبر چاپ شده و .B dmidecode با خطا خارج می‌شود. این گزینه نمی‌تواند بیش از یک بار استفاده شود. .PP نکته: در لینوکس، بیشتر این رشته‌ها را می‌توان به صورت جایگزین مستقیماً از .B sysfs خواند، به طور معمول از فایل‌های موجود در زیرمسیر .IR /sys/devices/virtual/dmi/id . بیشتر این فایل‌ها حتی توسط کاربران عادی نیز قابل خواندن هستند. .TP .BR " " " " "--list-strings" فهرست کردن کلیدواژه‌های متنی موجود که می‌توانند به گزینه \fB--string\fP داده شوند. .TP .BR "-t" ", " "--type \fITYPE\fP" تنها نمایش ورودی‌های از نوع \fITYPE\fP. این مقدار می‌تواند یک شماره نوع \s-1DMI\s0، یا فهرستی از شماره‌های نوع جداشده با کاما، یا یک کلیدواژه از فهرست زیر باشد: .nh .BR bios , .BR system , .BR baseboard , .BR chassis , .BR processor , .BR memory , .BR cache , .BR connector , .BR slot . .hy برای جزئیات بیشتر به بخش «انواع DMI (DMI TYPES)» در زیر مراجعه کنید. در این زمینه، به دلایل تاریخی، "bios" سفت‌افزار پلتفرم را مشخص می‌کند، صرف‌نظر از اینکه از نظر فنی استاندارد BIOS را پیاده‌سازی کرده باشد یا خیر. اگر از این گزینه بیش از یک بار استفاده شود، مجموعه ورودی‌های نمایش‌داده‌شده اجتماع تمام انواع داده‌شده خواهد بود. اگر \fITYPE\fP ارائه نشود یا نامعتبر باشد، فهرستی از تمام کلیدواژه‌های معتبر چاپ شده و .B dmidecode با خطا خارج می‌شود. .TP .BR " " " " "--list-types" فهرست کردن کلیدواژه‌های نوع موجود که می‌توانند به گزینه \fB--type\fP داده شوند. .TP .BR "-H" ", " "--handle \fIHANDLE\fP" تنها نمایش ورودی‌ای که دستگیره (handle) آن با \fIHANDLE\fP مطابقت دارد. \fIHANDLE\fP یک عدد صحیح ۱۶ بیتی است. .TP .BR "-u" ", " "--dump" عدم رمزگشایی ورودی‌ها و در عوض تخلیه (dump) محتویات آن‌ها به صورت هگزادسیمال. توجه داشته باشید که این خروجی همچنان متنی است و داده‌های دودویی خام نمایش داده نخواهند شد. رشته‌های پیوست‌شده به هر ورودی هم به صورت هگزادسیمال و هم به صورت \s-1ASCII\s0 نمایش داده می‌شوند. این گزینه عمدتاً برای اشکال‌زدایی مفید است. .TP .BR " " " " "--dump-bin \fIFILE\fP" عدم رمزگشایی ورودی‌ها و در عوض تخلیه داده‌های DMI در یک فایل به صورت دودویی (باینری). فایل تولیدشده برای استفاده بعدی همراه با \fB--from-dump\fP مناسب است. \fIFILE\fP نباید از قبل وجود داشته باشد. .TP .BR " " " " "--from-dump \fIFILE\fP" خواندن داده‌های DMI از یک فایل باینری که قبلاً با استفاده از \fB--dump-bin\fP تولید شده است. .TP .BR " " " " "--no-sysfs" عدم تلاش برای خواندن داده‌های DMI از فایل‌های sysfs. این گزینه عمدتاً برای اشکال‌زدایی مفید است. .TP .BR " " " " "--oem-string \fIN\fP" تنها نمایش مقدار رشته \s-1OEM\s0 شماره \fIN\fP. اولین رشته \s-1OEM\s0 دارای شماره \fB1\fP است. با مقدار ویژه \fBcount\fP، به جای آن تعداد رشته‌های OEM بازگردانده می‌شود. .TP .BR "-h" ", " "--help" نمایش اطلاعات نحوه استفاده و خروج .TP .BR "-V" ", " "--version" نمایش نسخه و خروج .P گزینه‌های .BR --string , .BR --type , .BR --dump-bin و .B --oem-string فرمت خروجی را تعیین می‌کنند و مانعة‌الجمع هستند. .P لطفاً توجه داشته باشید در صورتی که .B dmidecode روی سیستمی اجرا شود که سفت‌افزار آن از مشخصات جدیدتر SMBIOS برخوردار است که هنوز توسط این ابزار پشتیبانی نمی‌شود، پیامی مرتبط علاوه بر داده‌های درخواستی در بالاترین بخش خروجی چاپ خواهد شد؛ بنابراین اطلاع می‌دهد که داده‌های خروجی قابل اعتماد نیستند. .\" .SH "انواع DMI (DMI TYPES)" مشخصات \s-1SMBIOS\s0 انواع \s-1DMI\s0 زیر را تعریف می‌کند: .TS r l __ r l. Type Information 0 Platform Firmware 1 System 2 Baseboard 3 Chassis 4 Processor 5 Memory Controller 6 Memory Module 7 Cache 8 Port Connector 9 System Slots 10 On Board Devices 11 OEM Strings 12 System Configuration Options 13 Firmware Language 14 Group Associations 15 System Event Log 16 Physical Memory Array 17 Memory Device 18 32-bit Memory Error 19 Memory Array Mapped Address 20 Memory Device Mapped Address 21 Built-in Pointing Device 22 Portable Battery 23 System Reset 24 Hardware Security 25 System Power Controls 26 Voltage Probe 27 Cooling Device 28 Temperature Probe 29 Electrical Current Probe 30 Out-of-band Remote Access 31 Boot Integrity Services 32 System Boot 33 64-bit Memory Error 34 Management Device 35 Management Device Component 36 Management Device Threshold Data 37 Memory Channel 38 IPMI Device 39 Power Supply 40 Additional Information 41 Onboard Devices Extended Information 42 Management Controller Host Interface .TE علاوه بر این، نوع ۱۲۶ برای ورودی‌های غیرفعال استفاده می‌شود و نوع ۱۲۷ نشانگر پایان جدول است. انواع ۱۲۸ تا ۲۵۵ برای داده‌های مختص \s-1OEM\s0 هستند. .B dmidecode این ورودی‌ها را به طور پیش‌فرض نمایش می‌دهد، اما تنها زمانی می‌تواند آن‌ها را رمزگشایی کند که تولیدکنندگان، مستندات یا کدی برای آن‌ها ارائه کرده باشند. .PP می‌توان به جای شماره نوع از کلیدواژه‌ها با \fB--type\fP استفاده کرد. هر کلیدواژه معادل فهرستی از شماره‌های نوع است: .TS l l __ l l. Keyword Types bios 0, 13 system 1, 12, 15, 23, 32 baseboard 2, 10, 41 chassis 3 processor 4 memory 5, 6, 16, 17 cache 7 connector 8 slot 9 .TE کلیدواژه‌ها به بزرگی و کوچکی حروف حساس نیستند (case-insensitive). خطوط فرمان زیر همگی معادل یکدیگرند: .IP \(bu "\w'\(bu'u+1n" dmidecode --type 0 --type 13 .IP \(bu dmidecode --type 0,13 .IP \(bu dmidecode --type bios .IP \(bu dmidecode --type BIOS .\" .SH "فرمت فایل تخلیه دودویی (BINARY DUMP FILE FORMAT)" فایل‌های تخلیه باینری تولیدشده توسط \fB--dump-bin\fP و خوانده‌شده با استفاده از \fB--from-dump\fP به صورت زیر قالب‌بندی شده‌اند: .IP \(bu "\w'\(bu'u+1n" نقطه ورود SMBIOS یا DMI در آفست 0x00 قرار دارد. این بخش طوری طراحی شده است که آدرس جدول در آفست 0x20 به صورت ثابت (hard-code) قرار گیرد. .IP \(bu "\w'\(bu'u+1n" جدول DMI در آفست 0x20 قرار دارد. .\" .SH "فرمت UUID (UUID FORMAT)" در نسخه‌های پیش از ۲٫۶ مشخصات SMBIOS، در مورد نحوه تفسیر فیلدهای UUID ابهاماتی وجود دارد. در آن مشخصات هیچ اشاره‌ای به جابه‌جایی بایت‌ها (byte swapping) نشده بود، و RFC 4122 نیز بیان می‌کند که به طور پیش‌فرض نباید هیچ جابه‌جایی بایتی اعمال شود. با این حال، مشخصات SMBIOS نسخه ۲٫۶ (و نسخه‌های بعدی) صراحتاً بیان می‌کند که ۳ فیلد اول UUID باید به صورت اعداد لیتل-اندین (little-endian با بایت‌های جابه‌جاشده) خوانده شوند. علاوه بر این، این استاندارد دلالت بر این دارد که همین موضوع برای نسخه‌های قدیمی‌تر مشخصات نیز صادق بوده است، حتی اگر ذکر نشده باشد. در عمل، بسیاری از تولیدکنندگان سخت‌افزار بایت‌های UUID را جابه‌جا نمی‌کردند. بنابراین، برای حفظ سازگاری، تصمیم گرفته شد که در صورت قدیمی‌تر بودن نسخه SMBIOS از ۲٫۶، فیلدهای UUID بر اساس RFC 4122 (بدون جابه‌جایی بایت) تفسیر شوند و در صورت ۲٫۶ یا بالاتر بودن نسخه SMBIOS، ۳ فیلد اول به صورت لیتل-اندین (با بایت‌های جابه‌جاشده) تفسیر گردند. هسته لینوکس نیز از همین منطق پیروی می‌کند. .\" .SH "فایل‌ها (FILES)" .I /dev/mem .br .I /sys/firmware/dmi/tables/smbios_entry_point (فقط لینوکس) .br .I /sys/firmware/dmi/tables/DMI (فقط لینوکس) .\" .SH "اشکالات (BUGS)" در اغلب مواقع، اطلاعات موجود در جداول \s-1DMI\s0 نادرست، ناقص یا به کلی اشتباه هستند. .\" .SH "نویسندگان (AUTHORS)" Alan Cox, Jean Delvare .\" .SH "همچنین ببینید (SEE ALSO)" .BR biosdecode (8), .BR mem (4), .BR ownership (8), .BR vpddecode (8)