Nasıl çalışır
Ürün yazılımı, işletim sisteminin kendi başına keşfedemediği pil, düğmeler, sensörler, I²C denetleyicileri veya TPM gibi aygıtları ACPI tablolarıyla tanımlar. Her birinin, bir üretici önekinden ve o üreticinin seçtiği dört onaltılık basamaktan oluşan bir donanım tanımlayıcısı (_HID) vardır.
Önekler UEFI Forum tarafından iki kayıtta atanır: üç harfli PNP ID kaydı ve dört karakterli ACPI ID kaydı. Bu araç öneki her iki kayıtta da arar ve Microsoft ile ACPI belirtiminin tanımladığı standart tanımlayıcılar için hangi aygıt olduğunu da söyler.
Örnekler
ACPI\PNP0A08Microsoft — PCI Express Root BridgeWindows Aygıt Yöneticisi biçimi. PNP0xxx tanımlayıcıları, her üreticinin kullanabileceği genel tanımlayıcılardır.ACPI\VEN_INT&DEV_33A1Intel Corporation — Intel Power Engine Plug-in (Modern Standby)Windows'un donanım kimliklerinde kullandığı VEN_/DEV_ biçimi. Intel, INT önekini ACPI ID kaydı oluşturulmadan önce de kullanıyordu.Name (_HID, EisaId ("PNP0C0A"))PNP0C0A — Control Method Battery — EisaId 0x0A0CD041Tersine derlenmiş bir DSDT tablosundan bir satır. Araç, EisaId'in ürettiği sıkıştırılmış tamsayıyı da kabul eder.10EC5640Realtek Semiconductor Co., Ltd.Bazı üreticiler önek olarak PCI-SIG'in kendilerine atadığı vendor ID'yi kullanır; bu durumda üretici PCI kataloğundan alınır.Kullanım senaryoları
- Aygıt Yöneticisi'nde donanım kimliği ACPI\ ile başlayan bilinmeyen bir aygıtı tanımlayın.
- Bir dizüstü bilgisayarın sensörleri, düğmeleri veya I²C denetleyicileri için doğru sürücüyü _HID'lerinden yola çıkarak bulun.
- Ürün yazılımında hata ayıklarken veya bir ACPI yaması yazarken DSDT ya da SSDT tablosunda tanımlanan aygıtları yorumlayın.
- Bir monitörün EDID'inde bildirdiği üç harfli üretici kodunun hangi şirkete ait olduğunu öğrenin.
Sık sorulan sorular
Bir aygıtın ACPI tanımlayıcısını nerede bulurum?
Windows'ta Aygıt Yöneticisi'nde aygıtın özelliklerinde, Ayrıntılar sekmesindeki "Donanım Kimlikleri" özelliğinde. Linux'ta her aygıt /sys/bus/acpi/devices altında adında tanımlayıcısı bulunan bir klasör olarak görünür ve bu klasördeki hid dosyası tanımlayıcıyı içerir. acpidump ve iasl ile tersine derlenmiş ürün yazılımı tablolarında ise her aygıtın _HID nesnesidir.
Neden üreticiyi buluyor da aygıtı bulamıyor?
UEFI Forum kayıtları yalnızca öneki atar. Ardından gelen dört basamağın ne anlama geldiğine her üretici kendisi karar verir ve PCI veya USB'deki gibi herkese açık bir katalog yoktur. Aygıt yalnızca Microsoft'un PNP0xxx'leri veya belirtimin ACPI00xx'leri gibi standart tanımlayıcılarda ve çok yaygın olan bazılarında bilinir.
PNP ID ile ACPI ID arasındaki fark nedir?
PNP ID üç harfli bir öneke sahiptir ve doksanlı yılların Plug and Play'inden gelir; aynı kodlar EDID'de bir monitörün üreticisini tanımlar. ACPI ID dört harf veya rakamdan oluşan bir öneke sahiptir ve günümüzdeki biçimdir. Her ikisinde de önekten sonra dört onaltılık basamak bulunur.
Sıkıştırılmış EisaId nedir?
ASL dilinde EisaId makrosu bir PNP ID'yi 32 bitlik bir tamsayıya dönüştürür: her harf beş bit, ürün numarası ise sonraki iki baytı kaplar. Bu yüzden bir tabloyu tersine derlerken bazen PNP0C0A yerine 0x0A0CD041 gibi bir sayı görünür. Araç bu sayıyı kabul eder ve herhangi bir PNP ID'nin sıkıştırılmış biçimini gösterir.
Veriler ne sıklıkla güncelleniyor?
Araç, UEFI Forum'un yayımladığı ACPI ID ve PNP ID kayıtlarının bir kopyasını kullanır ve bunu düzenli aralıklarla yeniler. Sonucun yanında bu kopyanın tarihi ve önekin onaylandığı tarih gösterilir.