यह कैसे काम करता है
फ़र्मवेयर ACPI टेबल के ज़रिए उन डिवाइसों का वर्णन करता है जिन्हें ऑपरेटिंग सिस्टम खुद नहीं खोज सकता, जैसे बैटरी, बटन, सेंसर, I²C कंट्रोलर या TPM। हर डिवाइस का एक हार्डवेयर पहचानकर्ता (_HID) होता है, जो निर्माता के प्रीफ़िक्स और उसी निर्माता द्वारा चुने गए चार हेक्साडेसिमल अंकों से बना होता है।
प्रीफ़िक्स UEFI Forum दो रजिस्ट्री में आवंटित करता है: तीन अक्षरों वाली PNP IDs रजिस्ट्री और चार कैरेक्टर वाली ACPI IDs रजिस्ट्री। यह टूल दोनों रजिस्ट्री में प्रीफ़िक्स खोजता है और Microsoft तथा ACPI विनिर्देश द्वारा परिभाषित मानक पहचानकर्ताओं के लिए यह भी बताता है कि वह कौन-सा डिवाइस है।
उदाहरण
ACPI\PNP0A08Microsoft — PCI Express Root BridgeWindows डिवाइस प्रबंधक का फ़ॉर्मैट। PNP0xxx सामान्य पहचानकर्ता हैं जिन्हें कोई भी निर्माता इस्तेमाल कर सकता है।ACPI\VEN_INT&DEV_33A1Intel Corporation — Intel Power Engine Plug-in (Modern Standby)VEN_/DEV_ रूप, जिसे Windows हार्डवेयर आईडी में इस्तेमाल करता है। Intel, ACPI IDs रजिस्ट्री के अस्तित्व में आने से पहले से INT प्रीफ़िक्स इस्तेमाल करता है।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 से सही ड्राइवर खोजें।
- फ़र्मवेयर डीबग करते समय या ACPI पैच लिखते समय DSDT या SSDT टेबल में घोषित डिवाइसों को समझें।
- जानें कि कोई मॉनिटर अपने EDID में जो तीन अक्षरों वाला निर्माता कोड बताता है, वह किस कंपनी का है।
अक्सर पूछे जाने वाले प्रश्न
किसी डिवाइस का ACPI पहचानकर्ता कहाँ मिलता है?
Windows में, डिवाइस प्रबंधक में डिवाइस के गुणों में, विवरण टैब पर, "हार्डवेयर आईडी" प्रॉपर्टी में। Linux में, हर डिवाइस /sys/bus/acpi/devices में एक फ़ोल्डर के रूप में दिखता है जिसके नाम में उसका पहचानकर्ता होता है, और उस फ़ोल्डर की hid फ़ाइल में वह पहचानकर्ता होता है। acpidump और iasl से डिसअसेंबल की गई फ़र्मवेयर टेबल में यह हर डिवाइस का _HID ऑब्जेक्ट होता है।
निर्माता तो मिल जाता है, पर डिवाइस क्यों नहीं?
UEFI Forum की रजिस्ट्री केवल प्रीफ़िक्स आवंटित करती है। उसके बाद आने वाले चार अंकों का अर्थ हर निर्माता खुद तय करता है, और PCI या USB जैसा कोई सार्वजनिक कैटलॉग मौजूद नहीं है। डिवाइस केवल मानक पहचानकर्ताओं में ज्ञात होता है, जैसे Microsoft के PNP0xxx या विनिर्देश के ACPI00xx, और कुछ बहुत प्रचलित पहचानकर्ताओं में।
PNP ID और ACPI ID में क्या अंतर है?
PNP ID में तीन अक्षरों का प्रीफ़िक्स होता है और यह नब्बे के दशक के Plug and Play से आया है; यही कोड EDID में मॉनिटर के निर्माता की पहचान करते हैं। ACPI ID में चार अक्षरों या अंकों का प्रीफ़िक्स होता है और यह मौजूदा फ़ॉर्मैट है। दोनों में प्रीफ़िक्स के बाद चार हेक्साडेसिमल अंक होते हैं।
संपीड़ित EisaId क्या है?
ASL भाषा में EisaId मैक्रो किसी PNP ID को 32-बिट पूर्णांक में बदलता है: हर अक्षर पाँच बिट लेता है और उत्पाद संख्या अगले दो बाइट। इसलिए किसी टेबल को डिसअसेंबल करने पर कभी-कभी PNP0C0A की जगह 0x0A0CD041 जैसी संख्या दिखती है। यह टूल वह संख्या स्वीकार करता है और किसी भी PNP ID का संपीड़ित रूप दिखाता है।
डेटा कितनी बार अपडेट होता है?
यह टूल UEFI Forum द्वारा प्रकाशित ACPI IDs और PNP IDs रजिस्ट्री की एक कॉपी इस्तेमाल करता है और उसे समय-समय पर नवीनीकृत करता है। परिणाम के साथ उस कॉपी की तारीख और प्रीफ़िक्स की स्वीकृति की तारीख दिखाई जाती है।