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


## CPU 频率调节

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

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

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

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

```bash
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` 以选择您喜欢的调节器并设置频率限制。

使用以下命令启动服务：
```bash
/etc/rc.d/cpufreq start
```

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

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

## 风扇控制

适当的风扇控制对于保持最佳温度同时最小化噪音至关重要。不幸的是，标准的 `lm_sensors` 包不支持 D610 中的芯片组。不过，我发现了一个出色的解决方案：[Dellfand](http://dellfand.dinglisch.net/)。

下载 [dellfand-0.9.tar.bz2](http://dellfand.dinglisch.net/dellfand-0.9.tar.bz2)（或从[我的文件存储](http://www.adrive.com/public/0c017d983564397a53e3360550b017a315adf738472cce13c67c0b89254d40c6.html)）并安装它：

```bash
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 系统不兼容。您需要创建自定义脚本或修改现有脚本。您可以从[我的文件存储](http://www.adrive.com/public/452cb8ebbd2b2830a96e028c9668c4965a69f646292873d941b1032c92563883.html)下载修改版本。

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

```bash
DAEMONS=(... dellfand ...)
```

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

## 休眠和挂起

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

```bash
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 守护进程以获得更好的电源管理：

```bash
pacman -S acpid
```

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

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

您可以自定义 `/etc/acpi/handler.sh`（修改版本可在此处获得[链接](http://www.adrive.com/public/29178ed6fd594c0ba91fbe4e230c85cea2aa228fbe60e7cead4e7d37077f2fc9.html)）以处理特定的 ACPI 事件。使用 `acpi_listen` 识别按键事件，并使用 `pm_utils` 中的程序来处理它们。

