如何卸载使用ACPI_CONFIG_SYSFS加载的覆盖



https://www.kernel.org/doc/html/latest/admin-guide/acpi/ssdt-overlays.html给出了以下加载覆盖的方法

cd /config/acpi/table
mkdir my_ssdt
cat ~/ssdt.aml > my_ssdt/aml

这种方法只起作用一次。一旦我加载了aml文件,我就无法重新加载它。

〔1901.153829〕ACPI配置:表已加载

有办法卸载aml文件吗?目前,我正在尝试使用ACPI加载一个枚举设备。作为ACPI和Overlays的新手,我正在更新asl文件以解决问题,并重新编译和尝试加载。

但是一旦加载了模块,内核似乎不会再次应用覆盖,这迫使我重新加载,然后重新检查。

那么,有没有办法重新加载重新生成的aml文件?

内核文档确实没有描述这一时刻。但是,如果您查看ACPI ConfigFS支持的源代码,您可能会发现它支持丢弃项目。它是ConfigFS API的基本内容,即对rmdir()系统调用的反应。因此,这意味着你需要简单地删除文件夹来卸载表:

rm -rf /sys/kernel/config/acpi/table/my_ssdt

注意,这是一个调试功能,不能保证在所有可能类型的表上都能正常工作。在内核中,只有SPI、I2C和平台设备可以解除绑定。

还要注意的是,在出现commit Unload SSDT on configfs条目删除之前,内核中并没有卸载表。

最新更新