检查以确保您的机器启动后已加载所有 ACPI 模块。您可以使用命令 lsmod 来执行此操作。您正在查找以下选项:button、battery、fan、ac、thermal 和 processor。如果您在编译内核时选择 "Y" 而不是模块,您将看不到此列表。我的计算机上的输出如下所示
Module Size Used by Tainted: P button 2420 0 (unused) battery 5960 0 (unused) ac 1832 0 (unused) fan 1608 0 (unused) thermal 6664 0 (unused) processor 8664 0 [thermal] NVdriver 945408 11 |
最后一个模块是我的显卡,它使用专有驱动程序。这就是为什么我在顶行 Tainted 旁边有一个 "P" 的原因。
如果您将 ACPI 支持编译为 "M"odules 并且您没有看到列出的 ACPI 模块,则需要手动加载模块。模块应该在/lib/modules/<version>. <date>/kernel/drivers/acpi/,并且如下所示
-rw-r--r-- 1 root root 4.1k Jun 3 23:57 ac.o -rw-r--r-- 1 root root 9.5k Jun 3 23:57 battery.o -rw-r--r-- 1 root root 5.2k Jun 3 23:57 button.o -rw-r--r-- 1 root root 3.7k Jun 3 23:57 fan.o -rw-r--r-- 1 root root 14k Jun 3 23:57 processor.o -rw-r--r-- 1 root root 11k Jun 3 23:57 thermal.o -rw-r--r-- 1 root root 6.2k Jun 3 23:57 toshiba_acpi.o |
![]() | 模块的扩展名 |
---|---|
模块名称是之前的部分.o模块文件名的扩展名。processor.o是文件,而 processor 是模块名称。要安装可加载的内核模块,请使用:insmod processor。 2.4.x 系列内核使用扩展名.o;但是,2.6.x 系列内核使用扩展名.ko. |
第一次重启时,我手动加载了所有模块,输入 insmod <modulename>。我个人首先加载 processor 模块,尽管对于顺序是否重要存在争议。
![]() | 操作系统电源管理 (OSPM) |
---|---|
我第一次尝试时,模块都在单独的目录中,并且名为 ospm_<name>。这可能是因为我使用的是旧补丁,但这是需要注意的事项。OSPM 模块现在已被弃用,所以希望您不会再看到它们。 |
为了避免每次重启都必须加载模块,您可以做两件事之一:将它们直接编译到内核中(虽然现在有点晚了,是吧?),或者将它们添加到您的/etc/modules文件。如果您还没有该文件的副本,请创建一个新文件,并在单独的行中添加每个模块名称(记住,没有 .o)。您也可以尝试运行 update-modules,它应该会自动更新您的/etc/modules.conf配置文件。