ACPI:高级配置与电源接口

Emma Jane Hogbin

Erich Schubert - DSDT章节的作者。

修订历史
修订版 v1.5.12004-07-15修订者:ejh
包含指向本文法语翻译的链接。
修订版 v1.52004-05-21修订者:ejh
针对2.6.6内核的少量更新,以及关于哪些内核需要打补丁的修正。
修订版 v1.42004-05-12修订者:ejh
关于2.6.5内核的初步想法;包括关于电池监控应用程序导致触摸板锁定的信息。

概述如何为内核打补丁以支持ACPI。


目录
1. 关于本文档
2. 版权和许可
3. 翻译
4. 关于ACPI
5. 为什么要切换?
6. DSDT:差异化系统描述表
7. 从头安装
7.1. 选择内核
8. 备份
9. 下载并解压缩新内核
9.1. 必需的软件包
9.2. 解压缩
10. 配置新内核
11. 编译新内核
12. 安装新内核
13. 重启并测试
14. 加载相关模块
15. 从APM切换到ACPI
16. 使用ACPI
17. 参考和资源
18. 致谢
A. 修补旧内核
A.1. 获取源代码文件
B. 非Debian方式的ACPI
B.1. 编译内核
B.2. 安装新内核
B.3. 软件包
C. GNU自由文档许可证
C.1. 序言
C.2. 适用性和定义
C.3. 逐字复制
C.4. 批量复制
C.5. 修改
C.6. 组合文档
C.7. 文档集合
C.8. 与独立作品的聚合
C.9. 翻译
C.10. 终止
C.11. 本许可证的未来修订版
C.12. 如何将本许可证用于您的文档

1. 关于本文档

当我第一次开始从APM切换到ACPI时,我没有意识到内核需要打补丁。我的问题(风扇声音异常大)仅仅通过升级到2.4.20(带有acpi.sourceforge.net的早期补丁的Debian打包内核)就解决了。不幸的是,在第一次升级后,我不使用电源开关就无法停止我的计算机。直到后来我才意识到我有一个旧的、无效的ACPI补丁。编写本HOWTO是为了总结我自己的安装过程,并希望能帮助那些也在寻找关于ACPI信息方面遇到困难的人。请注意:主要文章概述了Debian方式的做法。对于那些喜欢...通用方式的人,附录B中也有通用信息。


2. 版权和许可

版权所有 (c) 2003, 2004 Emma Jane Hogbin。

根据自由软件基金会发布的GNU自由文档许可证1.1版或任何更高版本的条款,授予复制、分发和/或修改本文档的权限;不包含不变章节,不包含封面文本,也不包含封底文本。许可证副本包含在附录C中。


3. 翻译

本文档还有以下语言版本:


4. 关于ACPI

在电源管理领域,ACPI相对较新。它于1996年由康柏/惠普、英特尔、微软、凤凰和东芝首次发布。这些开发人员旨在取代以前的电源管理行业标准。他们的ACPI.info网站包含官方规范、支持ACPI的公司列表以及许多其他好东西。这绝对不是必读的,但可能会引起一些非常好奇的人的兴趣。

ACPI允许从操作系统内部控制电源管理。以前的电源管理行业标准,高级电源管理(APM),在BIOS级别控制。当系统变得空闲时,APM被激活 - 系统空闲的时间越长,它消耗的功率越少(例如,屏幕保护程序与睡眠与挂起)。在APM中,操作系统不知道系统何时会改变电源状态。

ACPI通常可以在操作系统内部进行配置。这与APM不同,APM的配置通常涉及重启并进入BIOS配置屏幕来设置参数。

ACPI有几个不同的软件组件

如果您想了解更多关于笔记本电脑电源管理的信息,请查看tuxmobil.org上的资源。具体来说:Linux电源管理 - APM、ACPI、PMU详细硬件部分的Linux移动指南


5. 为什么要切换?

并非所有系统都支持APM和ACPI。我切换是因为我的系统只支持ACPI。这真的是一个很容易的决定。如果您切换是为了获得S3(挂起到RAM)支持,并且您正在使用2.4.x内核,请不要费心。它不受支持。句号。

不确定您的系统是否受支持? ACPI4Linux在其Wiki上启动了一个支持的机器/BIOS列表。如果您安装了ACPI,请贡献到该列表!他们还有一个不支持的机器列表。

有关笔记本电脑电源管理的更多信息,您还可以发现电池供电Linux Mini-HOWTO有用。


6. DSDT:差异化系统描述表

感谢Erich撰写本节。

当某些功能(如电池状态)被错误报告时(通常会导致错误消息记录到syslog),您可能需要覆盖DSDT。 DELL笔记本电脑通常需要这种覆盖。许多系统的固定DSDT可在DSDT页面上找到,以及一个补丁,告诉内核忽略BIOS提供的表,但使用编译到内核中的固定DSDT。

基本上,您需要使用特殊文件名(或者修改DSDT页面上提供的补丁中的文件名)将固定表复制到您的内核源代码中。这种覆盖非常简单:内核不是从BIOS加载DSDT表,而是使用编译到内核中的DSDT表。就是这样。


7. 从头安装

ACPI正在不断修订。它在2.4.x系列内核(2.4.22及更高版本)和所有2.6.x系列内核中可用。如果您想使用2.4.22之前的内核,您需要修补您的内核源代码以添加ACPI功能。如果可能,您应该使用最新稳定版本的内核。补丁可从acpi.sourceforge.net获得。

Red Hat Fedora Core 2现在默认启用ACPI!这是ACPI开发团队的一大进步。祝贺大家。

Note

即使是最新的内核有时也会有可作为补丁提供的少量错误修复。您应该查看ACPI4Linux网站,看看是否有可用的补丁。

您需要获得与您正在运行的内核版本完全匹配的补丁。由于这是“从头安装”部分,我将假设您确切知道您将要安装哪个内核。


7.1. 选择内核

本文档最初是为2.4.20内核编写的,此后已更新为包含有关2.6.x系列内核的信息。在本次更新时,2.6.x系列内核对于某些人来说很容易,而对于其他人来说则更难。(我个人无法使用2.6.5内核正确关闭我的计算机。)

如果可以,我建议等到更多错误被解决后,再将内核升级到2.6.x系列。 2.6.x系列内核中有很多很多的更改。当我升级到2.6.5以更新本文档时,我遇到了无线连接、我的nvidia显卡和ACPI的问题。您的结果可能会有所不同。我个人使用带有最新补丁的2.4.20和没有补丁的2.4.22内核取得了良好的成功。通过Google搜索您发行版的邮件列表和acpi-devel邮件列表应该可以帮助您选择正确的内核。

Note

本文档使用2.4.20内核作为2.4.x系列内核的示例。根据需要替换您自己的内核版本。

无论您选择哪个内核,如果它是一个需要修补的内核,那么使用最新版本的ACPI补丁非常重要。一些发行版已经修补了他们的内核。Debian就是这种情况,其他发行版也可能是这种情况。有关已应用于Debian内核源包的补丁的更多信息,请浏览/usr/src/kernel-source-<版本>/README.Debian。如果您没有使用Debian,您可能仍然能够找到您发行版的等效文件。

acpi-support上的一个用户确认,我不需要应用于内核的任何其他补丁来运行我的笔记本电脑。如果您正在运行生产级别的服务器和/或正在为互联网提供网页,那么您真的应该应用任何其他安全补丁。

Warning

如果内核已经应用了其他补丁,那么应用 ACPI 补丁时可能会遇到问题。当然,不应该将 ACPI 补丁应用到已经为 ACPI 打过补丁的内核。只要内核还没有应用 ACPI 补丁,现在就应该可以应用一个。根据应用的其他补丁,您可能需要修改一些 Makefile 才能成功应用补丁。这超出了我目前的理解范围,因此本文档不包括这部分内容。


7.1.1. Debian 化的预先打过补丁的内核

如果您更喜欢使用 Debian 化的内核而不是全新的内核,maxx 已经提供了一个预先打过补丁的内核源代码包,其中包含 2.4.20 内核的最新补丁。这将代替从 www.kernel.org 下载一个全新的(未打补丁的)内核。他发给我一封电子邮件,其中包含以下详细信息:

 

我从 unstable 中获取了 kernel-source 2.4.20-8,删除了 ACPI 更改 [即旧的补丁],并应用了acpi-20021212-2.4.20.diff.gz从 acpi.sf.net 下载,因为原始的 2.4.20 *确实* 存在几个安全漏洞(ptrace,哈希表,...)。

您可以在 http://people.debian.org/~maxx/kernel-source-2.4.20/ 找到该软件包 (我没有上传 .orig.tar.gz,因为您可以从任何 Debian 镜像站点获取它,而且 .deb 已经足够大了)

 
--maxx 

Warning

我没有测试过这些软件包。您可能成功,也可能不成功。请不要给我发邮件询问它们,请改问 maxx。


8. 备份

如果您已经在运行与您将要打补丁的内核相同版本的内核,我建议为新打过补丁的内核创建一个全新的目录。请记住,备份 *永远* 不是一件坏事。以下是我备份的文件:


9. 下载并解包新的内核

9.1. 必需的软件包

以下是修补 2.4.x 系列内核所需的软件包列表。我仍在编写 2.6.x 系列安装的说明。

2.4.x 系列内核

  • 内核源文件

  • 与内核版本完全匹配的 ACPI 补丁

  • Debian 软件包:make、bzip2、gcc、libc6-dev、tk8.3、libncurses5-dev、kernel-package

  • 在修补内核后,添加 Debian 软件包:acpid、acpi(最后一个软件包在 Debian 的 testing 和 unstable 版本中可用,但在 stable 版本中不可用)


9.2. 解包

我们需要解压缩 bz2 文件 (bzip2) 并稍微移动一下目录。/usr/src/linux可能指向您当前的内核。我们需要它指向新的内核,所以我们也会这样做。

  • cd/usr/src

  • mkdir kernel-source-<版本> (如果已经安装了此内核的版本,请使用备用名称)

  • cplinux.<版本>.tar.bz2 /usr/src/kernel-source-<版本>

  • cd/usr/src/kernel-source-<版本>

  • tarxjfv linux.<版本>.tar.bz2

  • mvlinux.<版本> /usr/src/linux-<版本>

  • rm linux (假设这是指向旧内核的链接)

  • ln-s /usr/src/linux-<版本> linux

如果您的内核需要打补丁,请立即执行。说明可从 附录 A 获取。


10. 配置新内核

Note先修补你的内核
 

如果您使用的是旧内核,则需要在继续之前对其进行修补。有关修补内核的说明,请参见附录 A。2.6.x 系列内核不需要修补。

现在,我有一个极好的替代方法,而不是使用 make menuconfig。看看这个:复制您当前的.config文件到/usr/src/linux。现在使用make oldconfig。它将运行您的旧配置文件,查看哪些已更新,这样您就不必查找所有新选项。对于与 ACPI 和您的特定硬件相关的所有内容(东芝选择东芝选项,华硕选择华硕选项)选择M作为模块。您需要选择大约十个不同的 ACPI 相关选项。

以要点形式,这是内核应配置的方式:

现在使用 make menuconfig 进入配置文件。我希望您检查并确保已关闭 APM (旧的东西)。在通用设置下,请确保

退出并保存新配置


11. 编译新内核

如果您有不属于主源代码树的其他模块,则在制作 Debian 软件包时需要添加 modules_image。如果您使用的是笔记本电脑和旧内核,这几乎是不可避免的。现在只有我的 nvidia 显卡需要额外的模块。

Note命名内核构建
 

我不再使用 。date来区分内核构建。当我想弄清楚事情时,拥有 030627a、032627b (等等) 太令人沮丧了。我现在使用名称,按字母顺序排列,从内核构建“alien”开始。但我还是会保留日期选项,因为我仍然认为这是一个好方法。

我当前的内核 2.6.6 是 “Elrond”。机器本身是 “Smeagol”。

Note内核编译帮助
 

有关非 Debian 说明,请参见附录 附录 B

有关如何以 Debian 方式编译内核的更多信息,请阅读 使用 Debian 的 kernel-package 系统创建自定义内核


12. 安装新内核

我喜欢自己配置 lilo,但做任何让你高兴的事。

Note内核编译帮助
 

有关非 Debian 说明,请参见附录 附录 B

有关如何以 Debian 方式编译内核的更多信息,请阅读 使用 Debian 的 kernel-package 系统创建自定义内核


13. 重新启动并测试

此时您应该重新启动机器。当您的系统恢复运行时(当然,假设一切顺利并且您仍然拥有一个系统),请使用 uname -a 检查您正在运行的内核。它应该显示您刚刚构建的那个。您还需要确保安装了正确的补丁。您可以使用以下方法做到这一点: dmesg | grep ACPI.*Subsystem\ revision。 它应该给出输出ACPI:子系统修订版 20021212。 如果您没有使用 2.4.20 内核,则修订版号将与我的不同。要查看系统重新启动时加载/启动的所有 ACPI 相关位,请执行以下操作:dmesg | grep ACPIdmesg 打印您的启动消息,grep ACPI 确保仅打印 ACPI 相关消息。

您还可以使用 cat /proc/acpi/info 检查您正在使用的版本。但不要相信你读到的一切。我的输出显示 S3 是支持的状态,但我们已经知道它不是。但它确实给出了正确的版本,这很有用。


14. 加载相关模块

检查您的机器启动后是否已加载每个 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/<版本>. <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

Note模块的扩展名
 

模块名称是之前的一段.o模块文件名的扩展名。processor.o是文件,processor 是模块名。要安装一个可加载内核模块,使用:insmod processor

2.4.x 系列内核使用扩展名.o;然而,2.6.x 系列内核使用扩展名.ko.

第一次重启时,我手动加载了所有模块,输入了 insmod <modulename>。我个人会先加载 processor,尽管对于加载顺序是否重要存在不同意见。

Note操作系统电源管理 (OSPM)
 

我第一次尝试时,所有模块都在单独的目录中,名称为 ospm_<name>。这可能是因为我使用的是旧补丁,但需要注意这一点。 OSPM 模块现在已被弃用,所以希望你不会再看到它们。

为了避免每次重启都必须加载模块,你可以采取两种方法:直接将它们编译到内核中(但现在有点晚了,不是吗?),或者将它们添加到你的/etc/modules文件中。如果你还没有这个文件,创建一个新文件,并将每个模块名称(记住,不要带 .o)放在单独的一行。你也可以尝试运行 update-modules,它应该会自动更新你的/etc/modules.conf配置文件。


15. 从 APM 切换到 ACPI

不要同时运行 apmdacpid,除非你非常清楚自己在做什么。Debian 不会确保一次只运行一个。你需要自己检查。APM 会尝试将你的系统置于 S3 状态。在 2.4.x(以及更早版本)系列内核上,这很可能会导致你的机器挂起。直到 2.5.x 才能支持 S3。即使打补丁也不能在 2.4.x 系列内核中提供对 S3 的支持。我个人使用了 apt-get remove apmd 来解决挂起问题。

你还应该注意我发现的另一个小问题。XFree86 服务器有一个 DPMS(能源之星)功能选项。DPMS 状态可以是 standby(待机)、suspend(挂起)、off(关闭)或 on(开启)。由于 2.4.x 内核无法挂起至磁盘,这可能会导致问题。我通过以下两种方法修复了我的系统:

Warning丢失触摸板和键盘中断
 

Karl Hegbloom 发邮件告诉我 "键盘按键粘滞、触摸板指针突然在屏幕上跳动、在高网络 I/O 下锁定[是]由通过 ACPI 和 proc 文件系统轮询电池状态引起的。"这个问题部分原因是由于对电池状态的初始信息请求和响应之间的延迟。在这种延迟中,中断可能会被锁定,并且与键盘和触摸板的同步可能会丢失。"临时的解决方案是关闭电池小程序,或降低其轮询频率。" Karl 还指出,BIOS 更新也能解决此问题。感谢 Karl!

我没有在 2.4.x 内核中遇到这个问题,但是,升级到 2.6.5 后就出现了。我使用 wmacpi 监控我的电池状态。通过将轮询频率设置为 1(可能的最小值),我似乎消除了触摸板锁定问题。在我的.xinitrc文件中,我使用

/usr/bin/wmacpi -s 1

其中-s 1表示 "每分钟一次"的轮询频率(采样率)。默认值为 20。


16. 使用 ACPI

你需要在你的系统上安装一些不同的应用程序/守护进程:acpid (控制硬件状态的守护进程) 和 acpi (监视事件和状态的接口) 是基础安装。acpi Debian 软件包仅在 testing 版本中可用,并且不稳定。如果你运行的是 stable 版本,你将无法安装它,除非修改 apt 和你的list.sources文件。 你也可以从源代码编译。如果你安装了 acpi,你可以使用它来监控你的系统,如下所示:acpi -V。输出会告诉你关于你的系统的信息。我的输出如下所示

     Thermal 1: ok, 47.1 degrees C
     Thermal 2: ok, 45.1 degrees C
  AC Adapter 1: off-line <-- running off battery
  AC Adapter 1: on-line <-- running off AC power

不幸的是,-V "完整版本"对我不起作用。幸运的是,我仍然可以单独查看每个 acpi 文件,以获取有关我系统的信息。查看/proc/acpi目录中各种重要的东西。如果我想检查我的电池,我会像这样读取以下文件:cat /proc/acpi/battery/BAT0/state。输出如下

present:                 yes
capacity state:          ok
charging state:          discharging <-- running off battery
present rate:            unknown
remaining capacity:      3920 mAh <-- watch this number
present voltage:         14800 mV
present:                 yes
capacity state:          ok
charging state:          discharging
present rate:            unknown
remaining capacity:      3840 mAh <-- capacity getting smaller
present voltage:         14800 mV
present:                 yes
capacity state:          ok
charging state:          charging <-- AC adapter plugged in
present rate:            unknown
remaining capacity:      3840 mAh
present voltage:         14800 mV

如果我想获得有关我的电池的一般信息,我会像这样检查它:cat /proc/acpi/battery/BAT0/info

present:                 yes
design capacity:         3920 mAh
last full capacity:      3920 mAh
battery technology:      rechargeable
design voltage:          14800 mV
design capacity warning: 30 mAh
design capacity low:     20 mAh
capacity granularity 1:  10 mAh
capacity granularity 2:  3470 mAh
model number:            Bat0
serial number:              
battery type:            Lion
OEM info:                Acer

你们都是聪明人。你可能可以从这里弄清楚。:)


17. 参考资料

以下 URL 在编写此 HOWTO 以及通常启动和运行 ACPI 时非常有用。

HOWTOs

如何在 Linux 下安装 ACPI

http://sylvestre.ledru.info/howto/howto_acpi.php

Linux ACPI-HOWTO

http://www.columbia.edu/~ariel/acpi/acpi_howto.txt

Linux on the road, formerly: Linux Laptop HOWTO

http://tuxmobil.org/howtos.html 你需要滚动一下,或者使用 HTML 版本: http://tuxmobil.org/Mobile-Guide.db/Mobile-Guide.html

硬件详细信息 (Linux on the road 的一部分)

http://tuxmobil.org/Mobile-Guide.db/mobile-guide-p2c1-hardware-in-detail.html

Linux 的电源管理 - APM, ACPI, PMU

http://tuxmobil.org/apm_linux.html

电池供电 Linux Mini-HOWTO

http://www.tldp.org/HOWTO/mini/Battery-Powered/

使用 Debian 的 Kernel-Package 系统创建自定义内核

http://newbiedoc.sourceforge.net/system/kernel-pkg.html

特定硬件的安装报告和信息

安装报告

http://acpi.sourceforge.net/wiki/index.php/InstallationReports

黑名单

http://acpi.sourceforge.net/documentation/blacklist.html

DSDT:概述

http://acpi.sourceforge.net/dsdt/index.php 包括指向已打补丁的 DSDT 和关于修补你自己的 DSDT 的 HOWTO 的链接。

AcerTM 的 BIOS 设置 (Phoenix BIOS)

http://help.nec-computers.com/au/pri/item_instr_bios_7521N.asp

软件开发团队

ACPI4Linux

http://acpi.sf.net

ACPI 特别兴趣小组

http://www.acpi.info/

Intel

http://developer.intel.com/technology/iapc/acpi/

ACPI 文章

PC 中的风扇速度控制技术

http://www.analog.com/library/analogDialogue/archives/34-04/fan/

ACPI 软件包和相关软件

内核

记住在下载内核源码时选择 "F" 表示完整版。 https://linuxkernel.org.cn

Debian 化的内核

maxx 的预先打过补丁的 2.4.20-8 内核源码包。 更多信息请参阅 maxx 的注释 http://people.debian.org/~maxx/kernel-source-2.4.20/

ACPI 内核补丁

你需要选择与你使用的内核完全匹配的版本。 http://sourceforge.net/project/showfiles.php?group_id=36832

acpid

守护进程 http://sourceforge.net/projects/acpid

acpi

文本界面 http://grahame.angrygoats.net/acpi.shtml

Kacpi

KDE 的图形界面 http://www.elektronikschule.de/~genannt/kacpi/download.html

aKpi

另一个 KDE 界面 http://akpi.scmd.at/

wmacpi

WindowMaker DockApp (另一个 GUI) http://www.ne.jp/asahi/linux/timecop/

wmacpi+clecourt

WindowMaker DockApp (另一个图形界面)。 处理两个电池槽。 http://open.iliad.fr/~clecourt/wmacpi/index.html


18. 感谢

非常感谢以下人员


A. 修补旧内核

如果你正在使用 2.4.x 系列内核,则需要先修补内核,才能添加 ACPI 支持。 尽管 2.6.x 系列内核中已包含 ACPI,但你仍应检查是否已发布任何补丁来修复错误。 你可以在 ACPI4Linux 站点上找到此信息。


A.1. 获取源文件

www.kernel.org 下载一个全新的内核。 你需要确保获得完整的内核。 找到 "Linux 内核的最新稳定版本" 并点击F表示 FULL(完整版)。 耐心等待。 一个 bzipped 内核大约 26M。 如果你特别喜欢钻研技术,你也可以使用 wgethttps://linuxkernel.org.cn/pub/linux/kernel/v2.4/linux-<版本>.tar.bz2.

Tip

你可能需要,也可能不需要最新的稳定版本。 更多信息请阅读本文档的 第 7.1 节。 如果你决定使用未在首页上发布的内核版本,请使用 kernel.org 站点上的 /pub/linux/kernel 目录来查找你想要的内核。

在等待时,也获取一份补丁。 对于 2.4.20 内核,使用 2.4.20 补丁。 它的日期是 2002.12.12。 稍后我们将需要知道这个数字,以检查补丁是否有效。 如果你使用的是不同的内核版本,请务必记下你的补丁的日期。 你的数字会与我稍后使用的数字略有不同。

获得这两个文件(内核和补丁)后,解压它们并修补内核。


A.1.1. 修补

现在我们将实际修补内核。 我从 ACPI4Linux 上的说明中采取了一个额外的步骤。 我没有在同一行中进行 gunzip 和修补,而是使用了两行。 这纯粹是一种偏好。 修补内核时,你要确保没有错误消息。 (没有 "yay" 行,而是查找是否缺少错误。)

  • cd/usr/src/linux

  • cp acpi-20021212-2.4.20.diff.gz /usr/src/linux/. (如果你没有使用 2.4.20 内核,你的补丁文件名将有所不同。)

  • gunzipacpi-20021212-2.4.20.diff.gz

  • patch -p1 < acpi-20021212-2.4.20.diff (这是实际的修补部分)

完成修补内核后,继续阅读 第 10 节


B. 以非 Debian 方式安装 ACPI

Debian 方式和通用方式之间的差异很小。 事实上,可能只有 10 行左右的差异。


B.1. 编译内核

编译内核的 "正常" 方式不使用 make-kpkg。 而是使用以下步骤

  • cd /usr/src/linux 该目录应该指向 2.4.20 内核(已解压)文件。

  • makedep

  • makeclean

  • makebzImage

  • make modules (记住先解压你的模块)


B.2. 安装新的内核

Debian 的方式中,你创建一个 deb 文件,其中包含内核的位置信息(以及创建内核等等)。在“正常”方式中,你直接将文件放到它们应该在的位置。你需要安装你的模块,然后配置 lilo 以指向新的内核,最后运行 lilo。如果你没有采用Debian 的方式,你的“安装”过程看起来会像这样:

  • cd/usr/src/linux

  • makemodules_install

  • cparch/i386/boot/bzImage /boot/vmlinuz.<date>

  • vi /etc/lilo.conf 并复制你现有内核的结构。不要删除对现有内核的引用!你需要将 lilo 指向你在上面编译内核时创建的 “vmlinuz” 文件。

  • lilo (是的,就是这样。)Lilo 会告诉你加载新内核时是否会遇到重大问题。

Warning

在重启之前不要忘记运行 lilo。输入 lilo。就是这么简单(但也容易忘记)。


B.3. 软件包

即使你没有使用 Debian,你仍然可以使用本 HOWTO 中提到的所有软件。不幸的是,你需要付出更多的努力来下载和安装所有内容。幸运的是,这并不难。大多数软件包在解压后都包含一个 README 文件,其中会解释你需要做什么才能让它们在你的系统上正常工作。

Tip软件下载
 

有关 ACPI 软件的更多信息,请使用ACPI 软件包和相关软件


C. GNU 自由文档许可证

版本 1.1,2000 年 3 月

版权所有 (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 允许任何人复制和分发此许可文档的完整副本,但不允许更改它。


C.1. 序言

本许可证的目的是使手册、教科书或其他书面文档在自由的意义上是“自由的”:确保每个人都拥有复制和重新分发它的有效自由,无论是否对其进行修改,无论是商业还是非商业目的。其次,本许可证为作者和出版商保留了一种为其工作获得认可的方式,同时不被认为对他人所做的修改负责。

本许可证是一种“反版权”,这意味着该文档的衍生作品本身必须在相同的意义上是自由的。它补充了 GNU 通用公共许可证,后者是为自由软件设计的反版权许可证。

我们设计本许可证是为了将其用于自由软件的手册,因为自由软件需要自由文档:自由程序应附带提供与软件相同自由的手册。但是,本许可证不仅限于软件手册;它可用于任何文本作品,无论其主题或是否以印刷书籍形式出版。我们主要推荐本许可证用于以指导或参考为目的的作品。


C.2. 适用性和定义

本许可证适用于任何手册或包含版权持有人声明可以按照本许可证的条款进行分发的其他作品。下面的“文档”是指任何此类手册或作品。公众中的任何成员都是被许可人,并被称为“你”。

文档的“修改版本”是指包含文档或其一部分的任何作品,无论是逐字复制,还是经过修改和/或翻译成另一种语言。

“次要章节”是指文档的命名附录或前言部分,仅涉及文档的出版商或作者与文档的总体主题(或相关事项)的关系,并且不包含可能直接属于该总体主题的任何内容。(例如,如果文档部分是数学教科书,则次要章节可能不会解释任何数学。)该关系可能是与主题或相关事项的历史联系,或者关于它们的法律、商业、哲学、伦理或政治立场。

“不变章节”是指某些次要章节,其标题被指定为不变章节,在声明文档根据本许可证发布的声明中。

“封面文字”是指某些简短的文字段落,在声明文档根据本许可证发布的声明中被列为封面文字或封底文字。

文档的“透明”副本是指一种机器可读的副本,以一种格式表示,该格式的规范可供公众使用,其内容可以使用通用文本编辑器(对于由像素组成的图像)通用绘画程序或(对于绘图)一些广泛可用的绘图编辑器直接和直接地查看和编辑,并且适合输入到文本格式化程序或自动翻译成各种适合输入到文本格式化程序的格式。以其他透明文件格式制作的副本,其标记旨在阻止或阻止读者进行后续修改,则不是透明的。不是“透明”的副本称为“不透明”。

透明副本的合适格式示例包括没有标记的纯 ASCII、Texinfo 输入格式、LaTeX 输入格式、使用公开可用的 DTD 的 SGML 或 XML,以及为人工修改设计的符合标准的简单 HTML。不透明格式包括 PostScript、PDF、只能由专有文字处理器读取和编辑的专有格式、DTD 和/或处理工具通常不可用的 SGML 或 XML,以及某些文字处理器仅为输出目的而生成的机器生成的 HTML。

“标题页”对于印刷书籍,是指标题页本身,加上需要容纳(清晰地)本许可证要求出现在标题页中的材料的后续页面。对于没有标题页格式的作品,“标题页”是指文本正文开始之前,最突出的作品标题附近的文本。


C.3. 逐字复制

您可以以任何媒介复制和分发文档,无论是商业还是非商业目的,前提是本许可证、版权声明和声明本许可证适用于文档的许可证声明在所有副本中均被复制,并且您不对本许可证的条款添加任何其他条件。您不得使用技术措施来阻碍或控制您制作或分发的副本的阅读或进一步复制。但是,您可以接受报酬以换取副本。如果您分发足够数量的副本,您还必须遵守第 3 节中的条件。

您也可以在上述相同条件下借出副本,并且您可以公开展示副本。


C.4. 批量复制

如果您发布印刷的文档副本超过 100 份,并且文档的许可证声明要求封面文字,则您必须将这些副本装在封面上,封面上清晰易读地印有所有这些封面文字:正面封面的正面封面文字和背面封面的背面封面文字。两个封面还必须清晰易读地标识您为这些副本的出版商。封面必须以同样突出和可见的方式呈现标题的完整标题和所有文字。您可以在封面上添加其他材料。仅限于封面更改的复制,只要它们保留文档的标题并满足这些条件,就可以在其他方面被视为逐字复制。

如果任一封面的所需文本过于庞大而无法清晰地放置,您应将列出的第一个文本(尽可能多地放置)放在实际封面上,并将其余文本继续放在相邻的页面上。

如果您发布或分发超过 100 份文档的不透明副本,您必须在每个不透明副本中包含一个机器可读的透明副本,或者在每个不透明副本中或与其一起声明一个可公开访问的计算机网络位置,其中包含文档的完整透明副本,不包含添加的材料,并且使用公共标准网络协议,普通网络用户可以免费匿名下载该副本。如果您使用后一种选择,则在开始批量分发不透明副本时,您必须采取合理谨慎的措施,以确保该透明副本在所述位置保持可访问状态,直到您向公众分发该版本的最后一个不透明副本(直接或通过您的代理商或零售商)后至少一年为止。

建议(但不是必需的)在重新分发大量副本之前与文档的作者联系,以便让他们有机会为您提供文档的更新版本。


C.5. 修改

您可以根据上述第 2 节和第 3 节的条件复制和分发文档的修改版本,前提是您根据本许可证精确地发布修改版本,修改版本起着文档的作用,从而将修改版本的发布和修改授权给拥有其副本的任何人。此外,您必须在修改版本中执行以下操作

  1. 在标题页(以及封面,如果有的话)中使用与文档标题以及先前版本标题不同的标题(如果存在任何标题,则应在文档的历史记录部分中列出)。如果该版本的原始出版商允许,您可以使用与先前版本相同的标题。

  2. 在标题页上列出,作为作者,负责修改版本中的修改的一个或多个人或实体,以及至少五位文档的主要作者(如果文档的主要作者少于五位,则列出其所有主要作者)。

  3. 在标题页上声明修改版本的出版商名称,作为出版商。

  4. 保留文档的所有版权声明。

  5. 在其他版权声明旁边添加适用于您的修改的版权声明。

  6. 在版权声明之后立即包含一个许可证声明,允许公众根据本许可证的条款使用修改版本,其形式如下面的附录所示。

  7. 保留该许可证声明中给出的文档许可证声明中不变章节和所需封面文本的完整列表。

  8. 包含本许可证的未经修改的副本。

  9. 保留题为“历史”的部分及其标题,并在其中添加一项,至少说明修改版的标题、年份、新作者和出版者(如扉页上所示)。如果文档中没有题为“历史”的部分,则创建一个,说明文档的标题、年份、作者和出版者(如扉页上所示),然后添加一项,描述修改版,如上一句所述。

  10. 保留文档中给出的任何网络位置,以便公众访问文档的透明副本,同样保留文档中给出的基于先前版本的网络位置。这些可以放在“历史”部分中。您可以省略某个作品的网络位置,如果该作品的发布时间至少在文档本身发布前四年,或者如果其引用的版本的原始出版者给予了许可。

  11. 在任何题为“致谢”或“题献”的部分中,保留该部分的标题,并保留该部分中每个贡献者致谢和/或题献的所有实质和语气。

  12. 保留文档的所有不变部分,其文本和标题均不得更改。节号或等效项不被视为节标题的一部分。

  13. 删除任何题为“背书”的部分。修改版中不得包含此类部分。

  14. 不要将任何现有部分重命名为“背书”,或与任何不变部分的标题冲突。

如果修改版包含符合二级部分的条件的新扉页部分或附录,并且不包含从文档复制的材料,您可以选择将其中一些或全部部分指定为不变部分。为此,请将它们的标题添加到修改版许可证声明中的不变部分列表中。这些标题必须与任何其他节标题不同。

您可以添加一个题为“背书”的部分,前提是它只包含各个方对您的修改版的背书--例如,同行评审声明或该文本已获得组织的批准,作为标准的权威定义。

您可以添加一段最多五个单词的文本作为封面文字,并添加一段最多 25 个单词的文本作为封底文字,添加到修改版中封面文字列表的末尾。任何一个实体只能添加(或通过安排)一段封面文字和一段封底文字。如果文档已经包含了针对同一封面的封面文字,该文字先前由您或您代表的同一实体添加,则您不得添加另一个;但是,您可以替换旧的文字,前提是获得了添加旧文字的先前出版商的明确许可。

本文档的作者和出版商不通过本许可证授予使用其姓名进行宣传或断言或暗示对任何修改版的认可的许可。


C.6. 合并文档

您可以将文档与其他根据本许可证发布的文档合并,根据上述第 4 节中定义的修改版本的条款,前提是您在组合中包含所有原始文档的所有不变部分,未经修改,并在其许可证声明中将它们全部列为组合作品的不变部分。

组合作品只需要包含本许可证的一个副本,并且多个相同的不变部分可以用单个副本替换。如果存在多个名称相同但内容不同的不变部分,请通过在其末尾添加括号中的该部分的原始作者或出版者的姓名(如果已知)或唯一的数字来使每个此类部分的标题唯一。对组合作品的许可证声明中的不变部分列表中的节标题进行相同的调整。

在组合中,您必须合并各个原始文档中题为“历史”的任何部分,形成一个题为“历史”的部分;同样合并题为“致谢”的任何部分,以及题为“题献”的任何部分。您必须删除所有题为“背书”的部分。


C.7. 文档集合

您可以创建一个由文档和其他根据本许可证发布的文档组成的集合,并将各个文档中的本许可证的各个副本替换为包含在集合中的单个副本,前提是您遵循本许可证的规则,在所有其他方面逐字复制每个文档。

您可以从这样的集合中提取单个文档,并根据本许可证单独分发它,前提是您将本许可证的副本插入到提取的文档中,并在逐字复制该文档的所有其他方面都遵循本许可证。


C.8. 与独立作品的聚合

将文档或其衍生作品与其他单独且独立的文档或作品组合在一个存储或分发介质的卷中或卷上,整体上不构成文档的修改版,前提是不对该组合主张任何组合版权。这种组合称为“聚合”,并且本许可证不适用于这样与文档组合的其他独立的自包含作品,因为它们是这样组合的,如果它们本身不是文档的衍生作品。

如果第 3 节的封面文字要求适用于这些文档副本,那么如果该文档小于整个聚合的四分之一,则该文档的封面文字可以放在仅围绕聚合内文档的封面上。否则,它们必须出现在整个聚合的封面上。


C.9. 翻译

翻译被认为是一种修改,因此您可以根据第 4 节的条款分发文档的翻译。用翻译替换不变部分需要其版权持有者的特殊许可,但您可以包含一些或全部不变部分的翻译,以及这些不变部分的原始版本。您可以包含本许可证的翻译,前提是您还包含本许可证的原始英文版本。如果本许可证的翻译版本与原始英文版本之间存在分歧,则以原始英文版本为准。


C.10. 终止

除非本许可证明确规定,否则您不得复制、修改、再许可或分发文档。任何其他复制、修改、再许可或分发文档的尝试均无效,并将自动终止您在本许可证下的权利。但是,根据本许可证从您那里收到副本或权利的各方,只要这些方保持完全合规,其许可证将不会被终止。


C.11. 本许可证的未来修订

自由软件基金会可能会不时发布 GNU 自由文档许可证的新修订版本。这些新版本在精神上与当前版本相似,但可能在细节上有所不同,以解决新的问题或疑虑。请参阅 https://gnu.ac.cn/copyleft/

每个版本的许可证都给出了一个区分版本的编号。如果文档指定本许可证的某个编号版本“或任何更高版本”适用于它,您可以选择遵循该指定版本的条款和条件,或者遵循自由软件基金会发布的任何更高版本(不是草案)。如果文档未指定本许可证的版本号,您可以选择自由软件基金会发布的任何版本(不是草案)。


C.12. 如何将本许可证用于您的文档

要在您编写的文档中使用本许可证,请在文档中包含本许可证的副本,并在扉页之后立即添加以下版权和许可证声明

版权所有 (c) YEAR YOUR NAME。在 GNU 自由文档许可证的条款下,允许复制、分发和/或修改本文档,版本 1.1 或自由软件基金会发布的任何更高版本;不变部分为 LIST THEIR TITLES,封面文字为 LIST,封底文字为 LIST。许可证副本包含在题为“GNU 自由文档许可证”的部分中。

如果没有不变部分,请写“没有不变部分”,而不是说哪些是不变的。如果没有封面文字,请写“没有封面文字”,而不是“封面文字为 LIST”;封底文字同理。

如果您的文档包含程序代码的重要示例,我们建议并行地在您选择的自由软件许可证(例如 GNU 通用公共许可证)下发布这些示例,以允许它们在自由软件中使用。