歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

在linux平台上使用一般的遙控器對電腦遙控操作


  你有沒有想象過能夠坐在沙發上,或者躺在床上,拿著遙控器像操作電視一樣來操作電腦?可能你已經見到過市場上出現的那種電腦遙控器,不過它們都是基於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庫提供的接口編寫一定的映射程序。具體的實現過程將在其它文章討論。

Copyright © Linux教程網 All Rights Reserved