acpi PRP0001:00: No compatible string found in _DSD
The ACPI node is missing the compatible property, so the kernel doesn't know which driver to load. The device is ignored.
If you are troubleshooting or writing a driver, you can find the real identity of acpi:prp0001:0 by checking the system logs or sysfs.
Method A: Using dmesg
Run dmesg | grep -i prp0001. You will often see output similar to this:
acpi PRP0001:00: bus: acpi type: hid:PRP0001
acpi PRP0001:00: driver: gpio_keys
This example would indicate that the device is a set of GPIO keys (power buttons, lid switch, etc.).
Method B: Using sysfs (Recommended)
You can inspect the device properties directly to see what the firmware intended it to be. acpi prp0001 0
In ACPI, every device in the namespace (\_SB_, \_SB_.PCI0, etc.) has a Hardware ID (HID) – a string like PNP0C09 (embedded controller) or ACPI000C (PPTT table). The HID allows the OS to load the correct driver.
PRP0001 is a special, Microsoft-defined Compatible ID (CID). Its definition:
"Device is compatible with a Device Tree node having a given 'compatible' property."
When an ACPI device node includes:
Name (_HID, "PRP0001")
Name (_DSD, Package()
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package()
Package() "compatible", "my-vendor,my-device",
)
…the Linux kernel interprets this as: "Ignore the PRP0001 HID; instead, match this device against a Device Tree driver that expects my-vendor,my-device in its .compatible table."
Parsing the _DSD for PRP0001 devices adds cycles. On a real-time embedded system with tens of pseudo-devices, disabling PRP0001 can shave tens of milliseconds from the boot sequence – critical for safety-critical initialization.
The 0 is just the instance number.
If you had multiple devices using PRP0001, you'd see PRP0001:0, PRP0001:1, etc.
So acpi prp0001 0 means:
“ACPI device with HID
PRP0001and instance 0.”
Advanced users and firmware developers can add a PRP0001 device to their ACPI tables using an SSDT (Secondary System Description Table). With iasl, you can write:
DefinitionBlock ("ssdt.aml", "SSDT", 2, "HACK", "PRP0001", 0x00000001)
External (_SB_.I2C0, DeviceObj)
Scope (_SB.I2C0)
Device (SENS)
Name (_HID, "PRP0001")
Name (_DSD, Package ()
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package ()
Package () "compatible", "bosch,bme280" ,
Package () "reg", 0x77 ,
)
Compile (iasl ssdt.asl) and load via cat ssdt.aml > /sys/kernel/config/acpi/table/ssdt1.
Caution: Messing with ACPI tables can cause boot failures, kernel panics, or hardware damage. Only attempt on test systems. acpi PRP0001:00: No compatible string found in _DSD
Reviews
There are no reviews yet.