目录

Dell D610 上 Arch Linux 的电源管理配置

CPU 频率调节

为了优化功耗并减少噪音,我们可以配置 CPU 频率调节。这允许处理器根据工作负载自动调整其时钟速度。

首先,安装所需的工具并加载必要的内核模块:

pacman -S cpufrequtils    # 安装 CPU 频率调节工具
modprobe acpi_cpufreq   # 加载 CPU 频率驱动程序
modprobe cpufreq_ondemand    # 加载按需调节器
modprobe cpufreq_powersave

使用 cpufreq-info 检查可用的频率范围:

cpufrequtils 005: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which need to switch frequency at the same time: 0
   hardware limits: 800 MHz - 1.87 GHz
available frequency steps: 1.87 GHz, 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
available cpufreq governors: powersave, ondemand, performance
current policy: frequency should be within 800 MHz and 1.87 GHz.
              The governor "ondemand" may decide which speed to use
              within this range.
current CPU frequency is 800 MHz.

要配置频率调节,请编辑 /etc/conf.d/cpufreq 以选择您喜欢的调节器并设置频率限制。

使用以下命令启动服务:

/etc/rc.d/cpufreq start

要使这些设置在重新启动后保持不变,请将模块添加到 /etc/rc.conf

MODULES=(...acpi_cpufreq cpufreq_ondemand cpufreq_powersave...)
DAEMONS=(cpufreq ......)

风扇控制

适当的风扇控制对于保持最佳温度同时最小化噪音至关重要。不幸的是,标准的 lm_sensors 包不支持 D610 中的芯片组。不过,我发现了一个出色的解决方案:Dellfand

下载 dellfand-0.9.tar.bz2(或从我的文件存储)并安装它:

tar jxvf dellfand-0.9.tar.bz2
cd dellfand-0.9
make
cp dellfand /usr/sbin
cp etc.default.dellfand /etc/conf.d/dellfand      # 编辑此文件以配置不同温度下的风扇速度(关闭、低速、高速)

默认的 init 脚本(etc.init.d.dellfand)与 Arch Linux 的 BSD 风格 init 系统不兼容。您需要创建自定义脚本或修改现有脚本。您可以从我的文件存储下载修改版本。

将 init 脚本放置在 /etc/rc.d 中并修改 /etc/rc.conf

DAEMONS=(... dellfand ...)

这确保 dellfand 守护进程在启动时自动启动。

休眠和挂起

要启用休眠和挂起功能,请安装 pm-utils

pacman -S pm-utils

修改 /boot/grub/menu.lst 以包含 resume 参数:

resume=/dev/sda4 添加到内核行(其中 /dev/sda4 是您的交换分区 - 确保它大于您的物理 RAM)。

电源管理命令:

  • 挂起到 RAM:pm-suspend
  • 休眠到磁盘:pm-hibernate

消除 CPU 空闲噪音

D610 在 Linux 下运行时的一个常见问题是 CPU 空闲时扬声器发出的蜂鸣声。要解决此问题,请修改 /boot/grub/menu.lst 并将 idle=halt 添加到内核参数中。

ACPI 配置

安装 ACPI 守护进程以获得更好的电源管理:

pacman -S acpid

修改 /etc/rc.conf 以启用服务:

DAEMONS=(...hal...) # 在启动时自动加载 HAL 和 acpid

您可以自定义 /etc/acpi/handler.sh(修改版本可在此处获得链接)以处理特定的 ACPI 事件。使用 acpi_listen 识别按键事件,并使用 pm_utils 中的程序来处理它们。