<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Linux 筆記本基于“敲打”的命令

          Linux 筆記本基于“敲打”的命令

          作者: 時間:2016-09-12 來源:網(wǎng)絡 收藏

          有史以來第一次您可以敲打一下計算機并得到有意義的響應!使用 Linux® 和 Hard Drive Active Protection System(硬盤活動保護系統(tǒng)HDAPS)內(nèi)核驅(qū)動程序我們可以訪問 Lenovo(以前稱為 IBM®)ThinkPads 上的嵌入式加速器然后處理加速器的數(shù)據(jù)來讀取特定 敲打 事件序列(也就是您使用關節(jié)敲打筆記本的事件序列)并基于這些敲打事件運行一些雙擊鎖定屏幕然后敲入密碼來解鎖敲打顯示屏一次就可以讓 MP 播放器前進一個音軌這類可能事物是無窮無盡的

          本文引用地址:http://www.ex-cimer.com/article/201609/303753.htm

          年IBM 開始發(fā)行集成了加速器和相關軟件的 ThinkPad 筆記本以便在筆記本掉到地上時對硬盤進行保護來自 IBM 和其他地方的黑客已經(jīng)為 內(nèi)核開發(fā)了一些模塊來利用這些傳感器的優(yōu)點屏幕顯示方向桌面切換甚至是游戲控制和實時的筆記本傾斜度 D 模塊現(xiàn)在都已經(jīng)可以使用了本文將展示 敲打代碼 這種新技術和一個簡單程序該程序在檢測到特定的敲打代碼時會運行一些

          使用帶有 HDAPS 驅(qū)動的已更新的內(nèi)核我們就可以用一個簡單程序 knockAge 來生成敲打代碼了我們也可以下載并使用一個 Perl 腳本來定制自己的敲打輸入環(huán)境請參閱本文最后的 下載 和 參考資料 部分給出的鏈接其中包括了解 knockAge 操作的鏈接

          硬件需求

          容易實現(xiàn)

          正如您從展示視頻(請參見下面 參考資料 中的鏈接)可以看到的敲打操作是由一系列指節(jié)敲打構成的盡管 ThinkPad 的加速器是為保護它不受意外事件的影響但太強力的振蕩仍然會對硬盤造成損壞因此我們必須小心

          很多在 年以及這以后生產(chǎn)的 IBM(現(xiàn)在是 Lenovo)的 ThinkPads 中都有 HDAPS 硬件如果您不確定自己的硬件配置可以檢查 Lenovo 的 Web 站點上關于您自己型號的機器的技術細節(jié)如果您的機器上沒有 ThinkPad那么這段代碼可能無法在您的筆記本上正常工作

          本文是在 x 體系架構上編寫的本文中的代碼是在 ThinkPad Tp 的兩個不同模塊上進行開發(fā)和測試的有關 ThinkPad 硬件的鏈接請參閱 參考資料 部分

          如果您有一臺 Apple MacBook那么您可能也有這種加速器并且可以使用相同的方法通過內(nèi)核訪問它們?nèi)欢疚闹械拇a并沒有在 Apple 硬件上進行測試

          軟件要求

          HDAPS 驅(qū)動程序必須包括在內(nèi)核中才能啟用對加速器的訪問試圖對現(xiàn)有內(nèi)核增加補丁也不會獲得成功因此我們建議從自己喜歡的鏡像站點上下載最新的內(nèi)核新內(nèi)核發(fā)行版中已經(jīng)包含了對 HDAPS 驅(qū)動程序的支持

          啟動內(nèi)核配置選擇程序并在配置中包含 HDAPS 驅(qū)動程序HDAPS 驅(qū)動程序位于Device Drivers > Hardware Monitoring Support > IBM Hard Drive Active Protection System (hdaps) 選項中更多的內(nèi)核配置和安裝過程已經(jīng)超出了本文的范圍但是在 Web 站點上有很多教程可以提供具體的幫助有關可以幫助我們?nèi)腴T的鏈接請參閱 參考資料 一節(jié)的內(nèi)容

          本文是在 版本的內(nèi)核上進行開發(fā)和測試的

          創(chuàng)建簡單的敲打序列

          從 下載 一節(jié)的鏈接中下載源代碼并從中找到 knockAgepl 腳本這就是讓我們可以創(chuàng)建敲打序列的主要 Perl 程序它還允許監(jiān)聽特殊的敲打序列并運行下面讓我們來介紹一下這個用戶空間程序的用法以及 knockAgepl 程序的配置然后再對這個函數(shù)進行回顧

          使用下面的命令運行 knockAgepl 程序

          perl knockAgepl c

          這會啟動 Perl 程序來監(jiān)聽敲打事件并記錄下它們之間的間距以供將來使用一旦程序開始運行之后對筆記本進行的敲打操作就會產(chǎn)生效果我們并不需要在物理上移動自己的 ThinkPad 來注冊敲打事件如果 ThinkPad 在一個平面上只要對其進行一些移動和滑行即可我建議您用左右握住 ThinkPad 左邊接近連接軸的地方同時用右手在距離 LCD 底部 英寸的地方敲打顯示屏即可請參閱 下載 部分給出的視頻展示或參閱 參考資料 中用來創(chuàng)建敲打序列的例子

          體驗不同的敲打幅度和力度從而了解 knockAge 程序能夠捕獲的事件判斷率對于創(chuàng)建復雜的敲打事件來說這非常重要

          第一次真正嘗試敲打應該非常簡單兩次雙擊之間停留 秒然后再次運行 perl knockAgepl c在看到 enter a knock sequence 時穩(wěn)定地敲打 LCD 邊上兩次中間停留 秒在 秒之后會自動超時(這是可以配置的)您所敲打的序列會被打印出來這類似于下面的例子

          _#_ (command here) _#_

          讓我們來分析一下這一行的內(nèi)容敲打序列分隔符命令區(qū)分隔符最后是注釋區(qū)我們的下一個步驟是將這行內(nèi)容復制到 knockAgepl 程序使用的默認配置文件 {$HOME}/knockFile 中該配置文件也可能是 /home//knockFile 文件在使用上面的敲打序列行創(chuàng)建好 knockFile 文件之后就可以對這行進行修改來運行程序了將 (command here) 文本修改成 /bin/echo double tap并將注釋區(qū)的內(nèi)容修改成更有意義的內(nèi)容例如

          _#_ /bin/echo double tap _#_ Double tap event

          現(xiàn)在我們已經(jīng)修改好這個配置文件可以打印一條通知了接下來使用下面的命令在守護模式下運行 knockAge 腳本

          perl knockAgepl

          這個程序會在后臺安靜地監(jiān)聽 ~/knockFile 所羅列的事件請使用相同的間隔再次雙擊屏幕您會看到在屏幕上打印出了 double tap 消息如果我們希望更詳細地了解 knockAgepl 腳本是如何工作的那么我們可以使用下面的命令在守護模式下運行它

          perl knockAgepl v

          使用 xscreensaver 鎖定屏幕或打開屏幕

          創(chuàng)建 password 序列

          使用下面的命令在 create 模式下運行 knockAgepl 程序

          perl knockAgepl c

          現(xiàn)在我們需要創(chuàng)建一個解鎖的密碼序列我建議使用 刮臉和理發(fā)的動作請確保每次您都可以以一貫精確的方式執(zhí)行這個動作盡管您可以通過修改參數(shù)來控制輸入密碼敲打操作所需要的精度但是這仍然很難匹配精確的時間刮臉和理發(fā)動作 除了可以提供穩(wěn)定的擊打順序之外其復雜性和簡單性對于屏保解鎖密碼來說也非常適合下面是一個刮臉和理發(fā)動作 的擊打序列示例

          _#_ /bin/echo shave the haircut _#_ two bits

          在進行下一步操作之前您應該體驗一下上面的命令和 ~/knockFile 配置文件中的雙擊命令這可以在屏保運行時提供很好的幫助它更難檢測出敲打是否正確


          上一頁 1 2 3 4 下一頁

          關鍵詞: Linux 命令

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();