12.3. 中央处理器 (CPU)

您可以在第 1 章 “购买哪种笔记本电脑?”中找到关于移动设备中使用的、Linux 支持的 CPU 的调查。

12.3.1. SpeedStep

Speedstep 是英特尔公司最近生产的 CPU 的一项功能,可让您设置 CPU 频率。有不同的 Linux 工具可以实现此功能。AMD 或 StrongARM CPU 的其他 CPU 也提供了类似的功能,我将在以后的版本中对此进行描述(欢迎协助)。

在配置 SpeedStep 之前,请查看 BIOS 选项。

12.3.1.1. SpeedStep 工具

SpeedStep 工具仅适用于 Mobile Pentium-III CPU。请参阅 cat /proc/cpuinfo 的输出

   model name : Intel(R) Pentium(R) III Mobile CPU 1000MHz
它不适用于移动版本的 Pentium-III
   model name : Pentium III (Coppermine)

12.3.1.2. CPUFREQ

您可能需要查看 linux-2.4/2.5 内核的 cpufreq 补丁:Linux 的 CPU 时钟频率缩放,适用于 x86 和 ARM 架构的处理器。此模块为该功能提供了用户空间和标准内核空间接口,以及 ARM 片上系统设备,以应对处理器时钟变化。由于处理器消耗的功率与其运行速度直接相关,因此尽可能保持较低的时钟速度可以让您的电池获得更长的运行时间。有些人使用它来每秒多次调整他们的时钟速度,以优化性能与电池寿命之间的平衡。另请参阅 CVS 仓库

12.3.1.2.1. cpufreqd

cpufreqd 旨在替代您在某些其他操作系统上可以找到的 speedstep 小程序,它监视电池电量、交流电状态和正在运行的程序,并根据配置文件中指定的一组规则调整频率调节器。它同时适用于 APM 和 ACPI。

12.3.1.2.2. cpudyn

cpudyn 控制集成了 cpufreq 的 Intel SpeedStep 和 PowerPC 机器的速度。它可以节省电池电量并降低温度,而不会影响交互式应用程序的性能。

12.3.1.2.3. cpuspeedy

cpuspeedy 允许您使用 Linux 的 CPUFreq 驱动程序更改 CPU 的时钟速度和电压。它是一个用户空间程序,因此它可以在内核的 CPUFreq 驱动程序支持的每个处理器上工作。

12.3.1.2.4. powernowd

PowerNowd 是一个简单的客户端守护程序,用于使用 sysfs 接口的 Linux cpufreq 驱动程序。它在后台运行,并根据使用情况以可配置的“steps”更改 CPU 速度。它用 C 语言编写,重点是速度和简洁性。它非常可配置,并支持非 x86 和 SMP 系统。

12.3.1.3. 笔记本电脑模式 (Laptop Mode)

笔记本电脑模式 (Laptop mode) 是一种内核“模式”,可让您延长笔记本电脑的电池续航时间。它通过智能地将磁盘上的写入活动分组来实现这一点,以便只有读取未缓存的数据才会导致磁盘启动。据报道,它可以显着提高电池续航时间(对于允许它的使用模式)。

笔记本电脑模式工具 (Laptop Mode Tools) 包会像 noflushd 一样停止您的硬盘驱动器,但它也适用于日志文件系统。它与 apmd/acpid/pbbuttonsd 集成,以便仅在您使用电池供电时启用此行为。它还会调整一些 hdparm 设置并重新挂载您的文件系统 noatime,并且它可以调整您的最大 CPU 频率。

12.3.1.4. SONY VAIO SPIC 守护程序 (Daemon)

SONY VAIO SPIC 守护程序 (daemon) 是一个快速且小巧的 hack,用于为 Sony VAIO 笔记本电脑创建可用的 apmd。它使用 sonypi 内核模块来检测交流适配器状态和 LCD 背光,并使用 cpufreq 进行 CPU 频率缩放。

12.3.1.5. CPUIDLE

一个 软件实用程序,可以让您的 CPU 运行更凉爽?听起来很奇怪,是吗?让我解释一下:您有没有想过,当您使用计算机时,您的 CPU 大部分时间都处于空闲状态?例如,当您使用文字处理器、编写电子邮件、浏览网页时,CPU 除了等待用户输入之外什么也不做。事实上,它会消耗高达 30W 的功率,并在什么都不做的情况下产生大量热量。像 Linux、NT 和 OS/2 这样的优秀操作系统都有一个所谓的“空闲循环”——当 CPU 无事可做时始终执行的循环。这个循环由 halt (HLT) 指令组成。像 AMD K6、Cyrix 6x86 和 6x86MX 这样的 CPU 具有一个称为“suspend-on-halt”的特殊功能。这意味着每次 CPU 执行 hlt 指令时,它都会在短时间内进入“挂起模式”。因此,在执行空闲循环时,CPU 将处于挂起模式,使用更少的电量,并保持更凉爽。当然,这根本不会影响性能!用户甚至不会注意到他的 CPU 大部分时间都处于挂起模式(除非他触摸散热器)。

12.3.1.6. ACPI

如果您在内核中启用了 ACPI 支持,您还可以通过以下方式设置 SpeedStep 参数/proc/apci/接口,例如 echo 1 > /proc/acpi/processor/CPU0/performance 将降低 CPU 速度。注意:命令中的空格很重要!另请注意:此功能在内核 > 2.6.11 中已被弃用。或者使用 Sebastian Henschel 提供的此脚本。

#! /bin/sh

# /etc/init.d/slowcpu: slow down cpu or accelerate it via speedstep

test -e /proc/acpi/processor/CPU0/performance || exit 0

case "$1" in
    start)
    echo "Setting CPU0-Speed to: 733 MHz."
    echo 1 > /proc/acpi/processor/CPU0/performance
	;;
    stop)
    echo "Setting CPU0-Speed to: 1133 MHz."
    echo 0 > /proc/acpi/processor/CPU0/performance
	;;
    force-reload|restart)
	;;

    *)
	echo "Usage: $0 {start|stop}"
	exit 1
esac

exit 0