| DMIDECODE(8) | System Manager's Manual | DMIDECODE(8) |
نام (NAME)
dmidecode - رمزگشای جدول DMI
خلاصه دستور (SYNOPSIS)
dmidecode [گزینهها]
توضیحات (DESCRIPTION)
دستور dmidecode ابزاری برای تخلیه و نمایش محتویات جدول DMI (که برخی آن را SMBIOS مینامند) یک رایانه به قالبی خوانا برای انسان است. این جدول شامل توصیفی از مؤلفههای سختافزاری سیستم و همچنین سایر اطلاعات مفید مانند شماره سریالها و نگارش سفتافزار (firmware) است. به لطف این جدول، شما میتوانید بدون نیاز به بررسی مستقیم سختافزار واقعی، این اطلاعات را بازیابی کنید. اگرچه این امر از نظر سرعت گزارشگیری و ایمنی یک مزیت محسوب میشود، اما همزمان موجب میشود اطلاعات ارائهشده احتمالاً غیرقابل اعتماد باشند.
جدول DMI نه تنها وضعیت فعلی قطعات سیستم را شرح میدهد، بلکه میتواند قابلیتهای ارتقا و تحولات احتمالی (مانند سریعترین CPU پشتیبانیشده یا حداکثر حافظه رم قابل پشتیبانی) را نیز گزارش کند.
عبارت SMBIOS مخفف System Management BIOS بوده و DMI مخفف Desktop Management Interface است. هر دو استاندارد ارتباط نزدیکی با یکدیگر دارند و توسط DMTF (کارگروه مدیریت دسکتاپ) توسعه یافتهاند.
هنگام اجرا، dmidecode تلاش خواهد کرد جدول DMI را پیدا کند. ابتدا سعی میکند جدول DMI را از sysfs بخواند و در صورت عدم موفقیت در دسترسی به sysfs، تلاش میکند مستقیماً از حافظه بخواند. اگر dmidecode موفق به یافتن یک جدول معتبر DMI شود، سپس این جدول را تجزیه کرده و فهرستی از رکوردها مانند نمونه زیر را نمایش میدهد:
Handle 0x0002, DMI type 2, 8 bytes.
Base Board Information
Manufacturer: Intel
Product Name: C440GX+
Version: 727281-001
Serial Number: INCY92700942
هر رکورد شامل موارد زیر است:
- یک دستگیره (Handle). این یک شناسه یکتا است که به رکوردها اجازه میدهد به یکدیگر ارجاع دهند. به عنوان مثال، رکوردهای پردازنده معمولاً با استفاده از handleهایشان به رکوردهای حافظه نهان (cache) ارجاع میدهند.
- یک نوع (Type). مشخصات SMBIOS انواع مختلفی از عناصری را که یک رایانه میتواند از آنها تشکیل شود تعریف میکند. در این مثال، نوع ۲ است، به این معنی که رکورد حاوی «اطلاعات برد اصلی» (Base Board Information) است.
- یک اندازه (Size). هر رکورد دارای یک سرآیند ۴ بایتی است (۲ بایت برای handle، ۱ بایت برای type، ۱ بایت برای size)، و مابقی فضا توسط دادههای رکورد استفاده میشود. این مقدار رشتههای متنی را شامل نمیشود (این رشتهها در انتهای رکورد قرار میگیرند)، بنابراین طول واقعی رکورد ممکن است (و اغلب اوقات) بیشتر از مقدار نمایشدادهشده باشد.
- مقادیر رمزگشاییشده (Decoded values). اطلاعات ارائهشده طبیعتاً به نوع رکورد بستگی دارد. در اینجا، ما درباره سازنده، مدل، نسخه و شماره سریال برد اطلاعات کسب میکنیم.
گزینهها (OPTIONS)
- -d, --dev-mem FILE
- خواندن حافظه از پرونده دستگاه FILE (پیشفرض: /dev/mem)
- -q, --quiet
- خروجی مختصرتر (کمحرف). ورودیهای ناشناخته، غیرفعال و مختص OEM نمایش داده نمیشوند. فرادادهها و ارجاعات handle پنهان میشوند.
- --no-quirks
- رمزگشایی همهچیز دقیقاً همانگونه که در جدول وجود دارد، بدون تلاش برای اصلاح اشتباهات رایج یا پنهانسازی فیلدهای نامربوط. این حالت در درجه اول برای توسعهدهندگان سفتافزار در نظر گرفته شده است.
- -s, --string KEYWORD
- تنها نمایش مقدار رشته DMI مشخصشده با KEYWORD. این شناسه باید یک کلیدواژه از فهرست زیر باشد: bios-vendor, bios-version, bios-release-date, bios-revision, firmware-revision, system-manufacturer, system-product-name, system-version, system-serial-number, system-uuid, system-sku-number, system-family, baseboard-manufacturer, baseboard-product-name, baseboard-version, baseboard-serial-number, baseboard-asset-tag, chassis-manufacturer, chassis-type, chassis-version, chassis-serial-number, chassis-asset-tag, processor-family, processor-manufacturer, processor-version, processor-frequency. در این زمینه، به دلایل تاریخی، "bios" سفتافزار پلتفرم را مشخص میکند (صرفنظر از اینکه از نظر فنی استاندارد BIOS را پیادهسازی کرده باشد یا خیر)، در حالی که "firmware" در صورت وجود، سفتافزار کنترلکننده تعبیهشده (embedded controller) را مشخص میکند. هر کلیدواژه با یک نوع DMI مشخص و یک آفست معین در این نوع ورودی مطابقت دارد. همه رشتهها ممکن است در تمام سیستمها دارای مفهوم یا حتی تعریفشده نباشند. برخی از کلیدواژهها ممکن است در برخی سیستمها بیش از یک نتیجه برگردانند (مثلاً processor-version در یک سیستم چندپردازندهای). اگر KEYWORD ارائه نشود یا نامعتبر باشد، فهرستی از تمام کلیدواژههای معتبر چاپ شده و dmidecode با خطا خارج میشود. این گزینه نمیتواند بیش از یک بار استفاده شود.
نکته: در لینوکس، بیشتر این رشتهها را میتوان به صورت جایگزین مستقیماً از sysfs خواند، به طور معمول از فایلهای موجود در زیرمسیر /sys/devices/virtual/dmi/id. بیشتر این فایلها حتی توسط کاربران عادی نیز قابل خواندن هستند.
- --list-strings
- فهرست کردن کلیدواژههای متنی موجود که میتوانند به گزینه --string داده شوند.
- -t, --type TYPE
- تنها نمایش ورودیهای از نوع TYPE. این مقدار میتواند یک شماره نوع DMI، یا فهرستی از شمارههای نوع جداشده با کاما، یا یک کلیدواژه از فهرست زیر باشد: bios, system, baseboard, chassis, processor, memory, cache, connector, slot. برای جزئیات بیشتر به بخش «انواع DMI (DMI TYPES)» در زیر مراجعه کنید. در این زمینه، به دلایل تاریخی، "bios" سفتافزار پلتفرم را مشخص میکند، صرفنظر از اینکه از نظر فنی استاندارد BIOS را پیادهسازی کرده باشد یا خیر. اگر از این گزینه بیش از یک بار استفاده شود، مجموعه ورودیهای نمایشدادهشده اجتماع تمام انواع دادهشده خواهد بود. اگر TYPE ارائه نشود یا نامعتبر باشد، فهرستی از تمام کلیدواژههای معتبر چاپ شده و dmidecode با خطا خارج میشود.
- --list-types
- فهرست کردن کلیدواژههای نوع موجود که میتوانند به گزینه --type داده شوند.
- -H, --handle HANDLE
- تنها نمایش ورودیای که دستگیره (handle) آن با HANDLE مطابقت دارد. HANDLE یک عدد صحیح ۱۶ بیتی است.
- -u, --dump
- عدم رمزگشایی ورودیها و در عوض تخلیه (dump) محتویات آنها به صورت هگزادسیمال. توجه داشته باشید که این خروجی همچنان متنی است و دادههای دودویی خام نمایش داده نخواهند شد. رشتههای پیوستشده به هر ورودی هم به صورت هگزادسیمال و هم به صورت ASCII نمایش داده میشوند. این گزینه عمدتاً برای اشکالزدایی مفید است.
- --dump-bin FILE
- عدم رمزگشایی ورودیها و در عوض تخلیه دادههای DMI در یک فایل به صورت دودویی (باینری). فایل تولیدشده برای استفاده بعدی همراه با --from-dump مناسب است. FILE نباید از قبل وجود داشته باشد.
- --from-dump FILE
- خواندن دادههای DMI از یک فایل باینری که قبلاً با استفاده از --dump-bin تولید شده است.
- --no-sysfs
- عدم تلاش برای خواندن دادههای DMI از فایلهای sysfs. این گزینه عمدتاً برای اشکالزدایی مفید است.
- --oem-string N
- تنها نمایش مقدار رشته OEM شماره N. اولین رشته OEM دارای شماره 1 است. با مقدار ویژه count، به جای آن تعداد رشتههای OEM بازگردانده میشود.
- -h, --help
- نمایش اطلاعات نحوه استفاده و خروج
- -V, --version
- نمایش نسخه و خروج
گزینههای --string, --type, --dump-bin و --oem-string فرمت خروجی را تعیین میکنند و مانعةالجمع هستند.
لطفاً توجه داشته باشید در صورتی که dmidecode روی سیستمی اجرا شود که سفتافزار آن از مشخصات جدیدتر SMBIOS برخوردار است که هنوز توسط این ابزار پشتیبانی نمیشود، پیامی مرتبط علاوه بر دادههای درخواستی در بالاترین بخش خروجی چاپ خواهد شد؛ بنابراین اطلاع میدهد که دادههای خروجی قابل اعتماد نیستند.
انواع DMI (DMI TYPES)
مشخصات SMBIOS انواع DMI زیر را تعریف میکند:
| 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 |
علاوه بر این، نوع ۱۲۶ برای ورودیهای غیرفعال استفاده میشود و نوع ۱۲۷ نشانگر پایان جدول است. انواع ۱۲۸ تا ۲۵۵ برای دادههای مختص OEM هستند. dmidecode این ورودیها را به طور پیشفرض نمایش میدهد، اما تنها زمانی میتواند آنها را رمزگشایی کند که تولیدکنندگان، مستندات یا کدی برای آنها ارائه کرده باشند.
میتوان به جای شماره نوع از کلیدواژهها با --type استفاده کرد. هر کلیدواژه معادل فهرستی از شمارههای نوع است:
| 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 |
کلیدواژهها به بزرگی و کوچکی حروف حساس نیستند (case-insensitive). خطوط فرمان زیر همگی معادل یکدیگرند:
- dmidecode --type 0 --type 13
- dmidecode --type 0,13
- dmidecode --type bios
- dmidecode --type BIOS
فرمت فایل تخلیه دودویی (BINARY DUMP FILE FORMAT)
فایلهای تخلیه باینری تولیدشده توسط --dump-bin و خواندهشده با استفاده از --from-dump به صورت زیر قالببندی شدهاند:
- نقطه ورود SMBIOS یا DMI در آفست 0x00 قرار دارد. این بخش طوری طراحی شده است که آدرس جدول در آفست 0x20 به صورت ثابت (hard-code) قرار گیرد.
- جدول DMI در آفست 0x20 قرار دارد.
فرمت UUID (UUID FORMAT)
در نسخههای پیش از ۲٫۶ مشخصات SMBIOS، در مورد نحوه تفسیر فیلدهای UUID ابهاماتی وجود دارد. در آن مشخصات هیچ اشارهای به جابهجایی بایتها (byte swapping) نشده بود، و RFC 4122 نیز بیان میکند که به طور پیشفرض نباید هیچ جابهجایی بایتی اعمال شود. با این حال، مشخصات SMBIOS نسخه ۲٫۶ (و نسخههای بعدی) صراحتاً بیان میکند که ۳ فیلد اول UUID باید به صورت اعداد لیتل-اندین (little-endian با بایتهای جابهجاشده) خوانده شوند. علاوه بر این، این استاندارد دلالت بر این دارد که همین موضوع برای نسخههای قدیمیتر مشخصات نیز صادق بوده است، حتی اگر ذکر نشده باشد. در عمل، بسیاری از تولیدکنندگان سختافزار بایتهای UUID را جابهجا نمیکردند. بنابراین، برای حفظ سازگاری، تصمیم گرفته شد که در صورت قدیمیتر بودن نسخه SMBIOS از ۲٫۶، فیلدهای UUID بر اساس RFC 4122 (بدون جابهجایی بایت) تفسیر شوند و در صورت ۲٫۶ یا بالاتر بودن نسخه SMBIOS، ۳ فیلد اول به صورت لیتل-اندین (با بایتهای جابهجاشده) تفسیر گردند. هسته لینوکس نیز از همین منطق پیروی میکند.
فایلها (FILES)
/dev/mem
/sys/firmware/dmi/tables/smbios_entry_point (فقط
لینوکس)
/sys/firmware/dmi/tables/DMI (فقط
لینوکس)
اشکالات (BUGS)
در اغلب مواقع، اطلاعات موجود در جداول DMI نادرست، ناقص یا به کلی اشتباه هستند.
نویسندگان (AUTHORS)
Alan Cox, Jean Delvare
همچنین ببینید (SEE ALSO)
| June 2025 | dmidecode |