设计 工具 系统 开发 安全 办公 陶吧 IT教育 Vista频道|Google Chrome SOA案例研究
您现在的位置: 天极网 > 软件频道 > 操作系统 > Linux > 解析Linux笔记本基于“敲打”的命令
全文

解析Linux笔记本基于“敲打”的命令

2006-09-27 01:00作者:出处:IBM中国责任编辑:原野

  更多Linux文章请看:Linux操作系统应用专区

  史以来第一次,您可以敲打一下计算机并得到有意义的响应!使用 Linux® 和 Hard Drive Active Protection System(硬盘活动保护系统,HDAPS)内核驱动程序,我们可以访问 Lenovo(以前称为 IBM®)ThinkPads 上的嵌入式加速器,然后处理加速器的数据来读取特定 “敲打” 事件序列(也就是您使用关节敲打笔记本的事件序列),并基于这些敲打事件运行一些命令。双击锁定屏幕,然后敲入密码来解锁。敲打显示屏一次就可以让 MP3 播放器前进一个音轨。这类可能事物是无穷无尽的。

  2003 年,IBM 开始发行集成了加速器和相关软件的 ThinkPad 笔记本,以便在笔记本掉到地上时对硬盘进行保护。来自 IBM 和其他地方的黑客已经为 Linux 内核开发了一些模块来利用这些传感器的优点。屏幕显示方向、桌面切换、甚至是游戏控制和实时的笔记本倾斜度 3D 模块现在都已经可以使用了。本文将展示 “敲打代码” 这种新技术和一个简单程序,该程序在检测到特定的敲打代码时会运行一些命令。

  使用带有 HDAPS 驱动的已更新的内核,我们就可以用一个简单程序 knockAge 来生成敲打代码了。我们也可以下载并使用一个 Perl 脚本来定制自己的敲打输入环境。

  硬件需求

  很多在 2003 年以及这以后生产的 IBM(现在是 Lenovo)的 ThinkPads 中都有 HDAPS 硬件。如果您不确定自己的硬件配置,可以检查 Lenovo 的 Web 站点上关于您自己型号的机器的技术细节。如果您的机器上没有 ThinkPad,那么这段代码可能无法在您的笔记本上正常工作。

  本文是在 x86 体系架构上编写的。本文中的代码是在 ThinkPad T42p 的两个不同模块上进行开发和测试的。有关 ThinkPad 硬件的链接。

  如果您有一台 Apple MacBook,那么您可能也有这种加速器,并且可以使用相同的方法,通过内核访问它们。然而,本文中的代码并没有在 Apple 硬件上进行测试。

  软件要求

  HDAPS 驱动程序必须包括在内核中才能启用对加速器的访问。试图对现有内核增加补丁也不会获得成功,因此我们建议从自己喜欢的镜像站点上下载最新的内核。新内核发行版中已经包含了对 HDAPS 驱动程序的支持。

  启动内核配置选择程序,并在配置中包含 HDAPS 驱动程序。HDAPS 驱动程序位于 Device Drivers > Hardware Monitoring Support > IBM Hard Drive Active Protection System (hdaps) 选项中。更多的内核配置和安装过程已经超出了本文的范围,但是在 Web 站点上有很多教程可以提供具体的帮助;有关可以帮助我们入门的链接。

  本文是在 2.6.15.1 版本的内核上进行开发和测试的。

  创建简单的敲打序列

  从 下载 一节的链接中下载源代码,并从中找到 knockAge.pl 脚本。这就是让我们可以创建敲打序列的主要 Perl 程序,它还允许监听特殊的敲打序列并运行命令。下面让我们来介绍一下这个用户空间程序的用法,以及 knockAge.pl 程序的配置,然后再对这个函数进行回顾。

  使用下面的命令运行 knockAge.pl 程序:

  perl knockAge.pl -c

  这会启动 Perl 程序来监听敲打事件并记录下它们之间的间距以供将来使用。一旦程序开始运行之后,对笔记本进行的敲打操作就会产生效果。我们并不需要在物理上移动自己的 ThinkPad 来注册敲打事件,如果 ThinkPad 在一个平面上,只要对其进行一些移动和滑行即可。我建议您用左右握住 ThinkPad 左边接近连接轴的地方,同时用右手在距离 LCD 底部 3 英寸的地方敲打显示屏即可。

  体验不同的敲打幅度和力度,从而了解 knockAge 程序能够捕获的事件判断率。对于创建复杂的敲打事件来说,这非常重要。

  第一次真正尝试敲打应该非常简单,两次双击之间停留 0.5 秒,然后再次运行 perl knockAge.pl -c,在看到 “enter a knock sequence” 时稳定地敲打 LCD 边上两次,中间停留 0.5 秒。在 4 秒之后会自动超时(这是可以配置的),您所敲打的序列会被打印出来,这类似于下面的例子:

  0 540031 _#_ (command here) _#_ <comments here>

  让我们来分析一下这一行的内容:敲打序列,分隔符,命令区,分隔符,最后是注释区。我们的下一个步骤是将这行内容复制到 knockAge.pl 程序使用的默认配置文件 {$HOME}/.knockFile 中,该配置文件也可能是 /home/<username>/.knockFile 文件。在使用上面的敲打序列行创建好 .knockFile 文件之后,就可以对这行进行修改来运行程序了。将 (command here) 文本修改成 /bin/echo "double tap",并将注释区的内容修改成更有意义的内容,例如:

  0 540031 _#_ /bin/echo "double tap" _#_ Double tap event

  现在我们已经修改好这个配置文件,可以打印一条通知了,接下来使用下面的命令在守护模式下运行 knockAge 脚本:

  perl knockAge.pl

  这个程序会在后台安静地监听 ~/.knockFile 所罗列的事件。请使用相同的间隔再次双击屏幕,您会看到在屏幕上打印出了 “double tap” 消息。如果我们希望更详细地了解 knockAge.pl 脚本是如何工作的,那么我们可以使用下面的命令在守护模式下运行它:

  perl knockAge.pl -v

  使用 xscreensaver 锁定屏幕或打开屏幕

共6页。 1 2 3 4 5 :
相关搜索:
关注此文读者还看过
热门关注
特别推荐
文章排行
本周
本月
最近更新
关于我们|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2008 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 Powered by 天极内容管理平台CMS4i
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众