硬盘主动保护系统
硬盘主动保护系统 (HDAPS) 保护您的硬盘免受突如其来的震动(例如掉落或笔记本电脑在桌子上碰撞)。它通过停放磁盘磁头来实现这一点,这样震动就不会导致磁头撞击到驱动器的盘片上。希望这可以防止灾难性的故障。另请参阅 主动硬盘保护。
震动检测
您的硬件需要支持某种震动检测。这通常以加速计的形式内置在笔记本电脑的主板中。如果您有硬件,您还需要一种方法将硬件检测到的信息传达给您的操作系统。本节介绍将加速计状态传达给操作系统的驱动程序,以便它可以检测和防止震动。
tp_smapi
tp_smapi 是一组适用于许多 ThinkPad 笔记本电脑的驱动程序。如果您有受支持的 ThinkPad,即使您不打算使用 HDAPS,也强烈建议安装。在众多其他有用的功能中,tp_smapi 将加速计输出表示为操纵杆设备 /dev/input/js#
。
安装 tp_smapi。重启后,这将激活大多数驱动程序,这些驱动程序通过 /sys/devices/platform/smapi
文件系统表示。
内核提供了自己的 HDAPS 驱动程序。tp_smapi 软件包将 hdaps.ko
安装到 /lib/modules/$(uname -r)/updates,这将使其取代内置模块。因此,您可以简单地将 hdaps
添加到您的 MODULES
数组中。
反转模块参数
对于某些 ThinkPad,需要反转模块参数才能正确处理 X 和 Y 旋转轴。在这种情况下,您可以在 /etc/modprobe.d/modprobe.conf
中添加该选项
options hdaps invert=1
invert=1
是 ThinkPad T410 使用的示例值。反转选项采用以下值
- invert=1 反转 X 轴和 Y 轴;
- invert=2 反转 X 轴(如果已反转两个轴则取消反转)
- invert=4 交换 X 轴和 Y 轴(在反转之前发生)
请注意,选项可以相加。例如,invert=5 交换轴并反转它们。invert 的最大值显然是 7。如果您不知道哪个选项适合您,只需使用 hdaps-gl 或其他 GUI(见下文)尝试一下。或者,您可以从 此表 的标记为“HDAPS 轴方向”的列中确定适合您 Thinkpad 型号的精确值。
作为重新加载 hdaps
模块的替代方法,invert
值也可以直接写入 /sys/devices/platform/hdaps/invert
。
震动保护
现在您的硬件正在向操作系统报告其震动检测,我们需要使用这些数据做一些事情。本节介绍将传感器输出转换为震动保护的软件实用程序。
hdapsd
hdapsd 监视 HDAPS 操纵杆设备的输出,以确定是否即将发生震动,然后告诉内核停放磁盘磁头。
在设置 hdaps 时,您应该检查 SMART 中的“Load cycle count”(加载周期计数),如果它过于敏感,磁头会过于频繁地停放,并且加载周期计数会迅速上升。
安装 hdapsd。您可以使用 hdapsd@device.service
启动 hdapsd,但您不需要启用它。
该软件包安装 udev 规则。Udev 将为它找到的每个旋转式、不可移动的磁盘启动一个 hdapsd 实例。有关更多信息,请参阅 hdapsd github 页面。
可能需要调整 hdaspd 使用的参数。编辑 hdapsd.service
并将例如 --sensitivity=40 -blp
添加到参数中。
GUI 工具
存在一些实用程序来监视 hdapsd 的状态,以便您在使用笔记本电脑时了解正在发生的事情。这些是完全可选的。
xfce4-hdaps — Xfce4 面板小程序,可以表示硬盘的当前状态。
HDAPSicon — 前身为 thinkhdaps,用于 HDAPS 磁盘保护状态的独立 GTK 小程序。
hdaps-gl — 简单的 OpenGL 应用程序,显示您的 Thinkpad 的 3D 动画。类似于联想随 Windows 分发的应用程序。