在编写acpi模块驱动时候,
编译出现以下报错:
/mnt/ACPI/tools/get_acpi_resource: struct acpi_device_id is 32 bytes. The last of 1 is:
0x4f 0x56 0x54 0x49 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
FATAL: modpost: /mnt/ACPI/tools/get_acpi_resource: struct acpi_device_id is not terminated with a NULL entry!
出错原因:
这个错误信息表明你的struct acpi_device_id数组没有以一个空条目(NULL entry)结束。在Linux内核中,ACPI设备ID数组必须以一个全零的条目结束,以便内核能够正确地解析它。
错误信息指出:struct acpi_device_id is not terminated with a NULL entry!
解决方法
确保你的struct acpi_device_id数组以一个全零的条目结束。下面是一个正确的示例:
static const struct acpi_device_id my_acpi_ids[] = {
{ "INT5648", 0 },
{ "", 0 }, // 这个条目是必须的,用于终止数组
};
MODULE_DEVICE_TABLE(acpi, my_acpi_ids);