内核驱动 lis3lv02d¶
支持的芯片
意法半导体 LIS3LV02DL, LIS3LV02DQ (12 位精度)
意法半导体 LIS302DL, LIS3L02DQ, LIS331DL (8 位) 和 LIS331DLH (16 位)
- 作者
Yan Burman <burman.yan@gmail.com>
Eric Piel <eric.piel@tremplin-utc.net>
描述¶
此驱动程序提供对各种惠普笔记本电脑中加速度计的支持,该功能正式称为“HP Mobile Data Protection System 3D”或“HP 3D DriveGuard”。它会自动检测带有此传感器的笔记本电脑。已知型号(完整列表可以在 drivers/platform/x86/hp_accel.c 中找到)将自动按照标准方式定向其轴(例如:您可以直接玩 Neverball)。加速度计数据可通过 /sys/devices/platform/lis3lv02d 读取。报告的值按 mg 值缩放(地球重力的 1/1000)。
/sys/devices/platform/lis3lv02d/ 下的 Sysfs 属性
- position
加速度计报告的 3D 位置。格式:“(x,y,z)”
- rate
读取报告加速度计设备的采样率(以 HZ 为单位)。写入会更改加速度计设备的采样率。仅接受硬件支持的值。
- selftest
按照芯片制造商的规定执行芯片的自检。
此驱动程序还提供一个绝对输入类设备,允许笔记本电脑充当弹球机风格的操纵杆。可以校准操纵杆设备。操纵杆设备可以处于两种不同的模式。默认情况下,输出值在 -32768 .. 32767 之间缩放。在操纵杆原始模式下,操纵杆和 sysfs 位置条目具有相同的比例。由于输入系统模糊功能,可能存在细微差异。事件也可作为输入事件设备使用。
自检仅用于硬件诊断目的。它不应在正常操作期间使用。自检期间位置数据不会损坏,但不保证中断行为可靠。在测试模式下,感应元件会在内部移动一点点。自检测量正常模式和测试模式之间的差异。芯片规格说明每种类型的芯片的验收限制。限制通过平台数据提供,以便在不更改实际驱动程序的情况下调整限制。Seltest 返回“OK x y z”或“FAIL x y z”,其中 x、y 和 z 是模式之间测量的差异。自检模式下轴不会重新映射。提供测量值是为了帮助硬件诊断应用程序做出最终决定。
在惠普笔记本电脑上,如果激活了 LED 基础设施,则将提供一个 LED 指示磁盘保护,路径为 /sys/class/leds/hp::hddprotect。
该驱动程序的另一个功能是一个名为“freefall”的杂项设备,其作用类似于 /dev/rtc,并对从设备接收到的自由落体中断做出反应。它支持阻塞操作、poll/select 和 fasync 操作模式。您必须从设备读取 1 个字节。结果是自上次成功读取以来自由落体中断的次数(如果中断次数不适合,则为 255)。有关使用该设备的示例,请参见 freefall.c 文件。
轴向方向¶
为了在各种笔记本电脑之间实现更好的兼容性。加速度计报告的值将转换为轴的“标准”组织(又名“可以开箱即玩 Neverball”)
当笔记本电脑水平放置时,报告的 X 和 Y 位置约为 0,Z 的值为正
如果左侧抬高,则 X 增大(变为正值)
如果前侧(触摸板所在的位置)抬高,则 Y 减小(变为负值)
如果将笔记本电脑倒置,则 Z 变为负值
如果您的笔记本电脑型号未被识别(请参考“dmesg”),您可以发送电子邮件给维护人员将其添加到数据库中。在报告新笔记本电脑时,请包括“dmidecode”的输出以及这四种情况下 /sys/devices/platform/lis3lv02d/position 的值。
问答¶
问:如何安全地模拟自由落体?我有一台惠普“便携式工作站”,重约 3.5 公斤,外壳是塑料的,所以让它掉到地上是不可能的...
答:传感器非常灵敏,所以您的手可以做到。将其抬到自由空间中,用手跟随下降约 10 厘米。这应该足以触发检测。