Linux系統下遙控器的配置與使用方法

來源:互聯網
上載者:User

你有沒有想象過能夠坐在沙發上,或者躺在床上,拿著遙控器像操作電視一樣來操作電腦?可能你已經見到過市場上出現的那種電腦遙控器,不過它們都是基於windows下的。其實,通過一定的配置,在linux平台上,即使使用一般的遙控器,我們也可以完成對電腦的要控操作。

linux下遙控器的配置使用主要涉及到Linux的紅外驅動程式。LIRC (Linux Infrared Remoter Control),即是Linux下的專門控制處理紅外遙控訊號的程式,包含了各種介面的紅外驅動、多個應用程式及LIRC庫。這裡討論的主要是其中應用於家電遙控器對PC機的控制方面。

紅外訊號的來源可以是串口、並口、IRDA、ETHERNET等。LIRC下串口紅外的驅動叫做lirc_serial,它預設是檢測串口的DCD訊號線,然後測量各種時間參數,並傳遞到上層的應用程式。同時LIRC內建了許多應用工具,例如xmode2用X11的圖形介面畫出DCD上的矩形脈衝,irexec可以將遙控器按鍵對應為命令列上的某一條命令,irrecord獲得新的設定檔lircd.conf等。

 

l         安裝lirc驅動

$ cd ~/

$ mkdir lirc

$ cd lirc

$ sudo apt-get source lirc   #下載 lirc-0.7.1pre2

$ cd lirc-0.7.1pre2

$ sudo ./setup.sh

然後根據相應的遙控器選擇,這裡選擇other serial port device 中的 serial,irq 和 io 地址要根據你的實際情況配置,這裡使用的是預設值。這一步也很重要,否則將無法正常使用。選擇完畢後選擇儲存並配置,然後會運行configure,之後再執行:

$ sudo make ; make install

安裝完畢後會編譯核心模組並安裝到 /lib/modules/2.6.8.1-epia1/misc 下。根據不同的硬體,模組會有所不同。這裡是 lirc_dev.ko 和 lirc_serial.ko 兩個。

 

l         插入模組

$ sudo apt-get install setserial

$ sudo setserial /dev/ttyS1 uart none

$ sudo modprobe lirc_serial irq=3 io=0x2f8

 

l         使用 mode2程式測試

$ sudo mode2  #console下命令

(如果安裝有usbmount(使用udev),裝置節點的位置會發生改變,可用 mode2 -d /dev/lirc0測試。)用遙控器按下,看螢幕有無反應。如:

space 1471423
pulse 3149
space 2905
pulse 687
space 1334
pulse 686

這就表示安裝正確了。

 

l         配置遙控器

因為這裡使用的不是名牌遙控器(可到 http://www.lirc.org/ 下載別人已經做好的設定檔),就要使用 irrecord 命令產生。

$ sudo irrecord new.conf  #此時lircd不能運行

按照提示一步步完成。這裡要注意,按鍵時間不要太短也不要太長,按照提示上的說法是每次按鍵要顯示1~10個點。即使這樣,最後使用得到的配置也可能有的鍵能用有的鍵不能用,這時一個取巧的做法是,尋找規律看什麼樣的情況下鍵是能用的,重複配置多次,將每次能用的鍵抽出來組成一個設定檔。

$ sudo cp new.conf /etc/lircd.conf #將產生的檔案拷到/etc下,重新命名為lircd.conf

$ sudo lircd  #如果裝置節點位置改變,則需要添加-d /dev/lirc0參數

運行 irw 測試組態檔案是否正確,按鍵是否找到。

$ sudo irw

如按下power鍵,螢幕上顯示:

0000000000000001  00  power  new.conf

如果每個鍵顯示的資訊與設定檔中一致,則配置成功。

 

接下來將lirc_serial irq=3 io=0x2f8寫到/etc/modules中

 

l         配置.lircrc檔案

.lircrc為lirc的應用程式設定檔,典型欄位配置如下:

begin

    prog = lirckeyd

    remote = new.conf

    button = power

    repeat = 0

    config = power

end

其中:

begin~end表示一個獨立的配置塊。

prog域的值表示使用該配置塊的程式名稱。

remote的值表示使用的遙控器名稱(參見lircd.conf中的定義)。

button 的值表示遙控器按鍵名稱(參見lircd.conf中的定義)。

repeat 的值表示按鍵的重複次數。

config 的值表示該按鍵對應的字串,該字串可以被prog定義的應用程式獲得。

需要注意的一點是remote的值一定要和lircd.conf中的name值一致,比如上面irrecord 產生的配置中name為new.conf,則這裡的remote值也要為new.conf。

 


l         將遙控器按鍵映射為x事件

接下來就需要將遙控器的按鍵與我們期望的操作對應起來。這時需要根據LIRC庫提供的介面編寫一定的對應程式。具體的實現過程將在其它文章討論


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.