كيف يعمل
يصف البرنامج الثابت عبر جداول ACPI الأجهزةَ التي لا يستطيع نظام التشغيل اكتشافها بنفسه، مثل البطارية والأزرار والمستشعرات ووحدات تحكم I²C ووحدة TPM. ولكل منها معرف أجهزة (_HID) يتكون من بادئة للشركة المصنعة وأربعة أرقام ست عشرية تختارها تلك الشركة.
يخصص UEFI Forum البادئات في سجلين: سجل PNP IDs ببادئات من ثلاثة أحرف، وسجل ACPI IDs ببادئات من أربعة محارف. تبحث هذه الأداة عن البادئة في السجلين، وتخبرك أيضًا بالجهاز المقصود في المعرفات القياسية التي تعرّفها Microsoft ومواصفة ACPI.
أمثلة
ACPI\PNP0A08Microsoft — PCI Express Root Bridgeصيغة «إدارة الأجهزة» في Windows. المعرفات PNP0xxx معرفات عامة يمكن لأي شركة مصنعة استخدامها.ACPI\VEN_INT&DEV_33A1Intel Corporation — Intel Power Engine Plug-in (Modern Standby)صيغة VEN_/DEV_ التي يستخدمها Windows في معرفات الأجهزة. تستخدم Intel البادئة INT منذ ما قبل وجود سجل ACPI IDs.Name (_HID, EisaId ("PNP0C0A"))PNP0C0A — Control Method Battery — EisaId 0x0A0CD041سطر من جدول DSDT بعد تفكيكه. تقبل الأداة أيضًا العدد الصحيح المضغوط الذي يولده EisaId.10EC5640Realtek Semiconductor Co., Ltd.تستخدم بعض الشركات المصنعة كبادئة الـ vendor ID الذي خصصته لها PCI-SIG؛ وفي هذه الحالة تُستخرج الشركة المصنعة من كتالوج PCI.حالات الاستخدام
- تحديد جهاز غير معروف في «إدارة الأجهزة» يبدأ معرف الأجهزة الخاص به بـ ACPI\.
- العثور على برنامج التشغيل الصحيح لمستشعرات حاسوب محمول أو أزراره أو وحدات تحكم I²C فيه انطلاقًا من _HID الخاص بها.
- تفسير الأجهزة المعرّفة في جدول DSDT أو SSDT عند تصحيح أخطاء البرنامج الثابت أو كتابة تصحيح ACPI.
- معرفة الشركة التي يقابلها رمز الشركة المصنعة المكوّن من ثلاثة أحرف الذي تُبلغ عنه الشاشة في EDID الخاص بها.
الأسئلة الشائعة
أين أجد معرف ACPI الخاص بجهاز ما؟
في Windows، في خصائص الجهاز ضمن «إدارة الأجهزة»، علامة التبويب «التفاصيل»، الخاصية «معرفات الأجهزة». في Linux، يظهر كل جهاز كمجلد داخل /sys/bus/acpi/devices يحمل اسمه المعرف، ويحتوي الملف hid في ذلك المجلد على المعرف. وفي جداول البرنامج الثابت المفككة باستخدام acpidump وiasl، هو الكائن _HID لكل جهاز.
لماذا تجد الأداة الشركة المصنعة دون الجهاز؟
سجلات UEFI Forum تخصص البادئة فقط. أما معنى الأرقام الأربعة التالية فتقرره كل شركة مصنعة، ولا يوجد كتالوج عام مثل كتالوج PCI أو USB. لا يُعرف الجهاز إلا في المعرفات القياسية، مثل PNP0xxx من Microsoft أو ACPI00xx من المواصفة، وفي بعض المعرفات واسعة الانتشار.
ما الفرق بين PNP ID وACPI ID؟
يحمل PNP ID بادئة من ثلاثة أحرف ويعود إلى Plug and Play في تسعينيات القرن الماضي؛ والرموز نفسها تحدد الشركة المصنعة للشاشة في EDID. أما ACPI ID فيحمل بادئة من أربعة أحرف أو أرقام، وهو الصيغة الحالية. وفي كليهما تأتي أربعة أرقام ست عشرية بعد البادئة.
ما هو EisaId المضغوط؟
في لغة ASL، يحوّل الماكرو EisaId معرف PNP ID إلى عدد صحيح بطول 32 بت: يشغل كل حرف خمسة بتات، ويشغل رقم المنتج البايتين التاليين. لهذا يظهر أحيانًا عند تفكيك جدول رقم مثل 0x0A0CD041 بدلًا من PNP0C0A. تقبل الأداة هذا الرقم وتعرض الصيغة المضغوطة لأي PNP ID.
كم مرة يتم تحديث البيانات؟
تستخدم الأداة نسخة من سجلَّي ACPI IDs وPNP IDs اللذين ينشرهما UEFI Forum، وتجددها بشكل دوري. ويُعرض بجانب النتيجة تاريخ هذه النسخة وتاريخ اعتماد البادئة.