分页: 1 / 1

终于搞定DELL 1536红外遥控

发表于 : 2010-08-25 19:15
lion1131
dell studio 1536本身附带一个小巧的遥控器,红外遥控接收器在笔记本的前下方,一直以来都希望在ubuntu下使用这个小玩意,今天总算搞定了。

本文的绝大部分内容来源于这里:http://www.ge.ubuntuforums.org/showthre ... 640&page=1 :em02

1536的红外使用lsusb和lspci都看不到,不过根据帖子的内容可以在以下地址发现

代码: 全选

/sys/bus/acpi/devices/ITE8708:00
要使用红外遥控,首选的肯定是lirc,不过lirc并没有提供ITE8708的驱动(或者是ITE8512(?)),所以就有人对已有的ITE87驱动动起了手脚,并把源码贴出来替换lirc提供的驱动。
不过我从源码编译lirc以后没有能够配置好,只好推倒重来,不过好赖得到了编译后的lirc_it87.ko这个库文件。
接下来我取巧了,不再从源码编译lirc,而是安装了源里面的预编译的lirc,只替换了它自带的IT87驱动。

代码: 全选

$sudo mv lirc_it87.ko /lib/modules/<你的内核版本>/kernel/ubuntu/lirc/lirc_it87
覆盖原有的驱动。
修改/etc/lirc/hardware.conf文件,

代码: 全选

$sudo gedit /etc/lirc/hardware.conf
用以下内容代替

代码: 全选

# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="ITE IT8712/IT8705/IT8720 CIR port"
REMOTE_MODULES="lirc_dev lirc_it87"
REMOTE_DRIVER=""
REMOTE_DEVICE="/dev/lirc0"
REMOTE_SOCKET=""
REMOTE_LIRCD_CONF=""
REMOTE_LIRCD_ARGS=""

#Chosen IR Transmitter
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_SOCKET=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"

#Try to load appropriate kernel modules
LOAD_MODULES="true"

# Default configuration files for your hardware if any
LIRCMD_CONF=""

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""
lirc的兼容硬件里面有DELL的MR425遥控板的描述信息,再加上我搜集的内容,直接贴在/etc/lirc/lircd.conf文件里

代码: 全选

$sudo gedit /etc/lirc/lircd.conf

代码: 全选

# Please make this file available to others
# by sending it to <[email protected]>
#
# this config file was automatically generated
# using lirc-0.8.6(default) on Sun Jan 24 15:46:41 2010
#
# contributed by 
#
# brand:                       file.conf
# model no. of remote control: 
# devices being controlled by this remote:
#

begin remote

  name DELLMR425 
  bits            8
  flags RC6|NO_HEAD_REP|CONST_LENGTH
  eps            30
  aeps          100

  header       2470   840
  one           406   417
  zero          406   417
  pre_data_bits   29
  pre_data       0x37FE354
  gap          77824
  min_repeat      4
  toggle_bit_mask 0x8000
  rc6_mask    0x100000000

      begin codes
          key_up                   0xA7
          key_down                 0xA6
          key_ok                   0xA3
          key_left                 0xA5
          key_right                0xA4
          key_playpause            0xD3
          key_stop                 0xCE
          key_next                 0xDF
          key_previous             0xDE
          key_back                 0xD0
          key_forward              0xD1
          key_volumeup             0xEF
          key_volumedown           0xEE
          key_mute                 0xF2
          key_media                0x63
          key_power                0xF3
          key_player               0x64
          key_info                 0xF0
          key_back                0x5B
          key_plus                   0x31
          key_minus              0x30
      end codes

end remote

将两个文件保存后,重新启动lirc

代码: 全选

$sudo /etc/init.d/lirc restart
接下来就要看看是不是系统已经认出了我们的遥控接收器了

代码: 全选

dmesg | grep lirc
我的输出是

代码: 全选

[ 6368.876140] lirc_dev: IR Remote Control driver registered, major 61 
[ 6368.879248] lirc_dev: lirc_register_driver: sample_rate: 0
[ 6517.301265] lirc_dev: lirc_register_driver: sample_rate: 0
[ 6517.301898] lirc_it87: found it8712.
[ 6517.301919] lirc_it87: set default irq 0x4
[ 6517.301955] lirc_it87: I/O port 0x0300, IRQ 4.
[ 6517.301990] lirc_it87: Installed.

代码: 全选

lsmod | grep lirc 
输出

代码: 全选

lirc_it87              18008  0 
lirc_dev               11302  1 lirc_it87
这应该是已经认出来了。

代码: 全选

cat /proc/ioports | grep lirc
输出

代码: 全选

0300-0307 : lirc_it87
确认是8位位宽。

现在准备完成了,开始测试了

代码: 全选

sudo irw
然后对着遥控器接收端按下遥控板上的按钮。输出是类此的

代码: 全选

000000037fe354a7 00 key_up DELLMR425
000000037fe354a7 01 key_up DELLMR425
000000037fe354a7 02 key_up DELLMR425
000000037fe354a7 03 key_up DELLMR425
000000037fe354a7 04 key_up DELLMR425
000000037fe354a3 00 key_ok DELLMR425
000000037fe354a3 01 key_ok DELLMR425
000000037fe354a3 00 key_ok DELLMR425
000000037fe354a3 01 key_ok DELLMR425
或者

代码: 全选

sudo mode2 -d /dev/lirc0 
或者

代码: 全选

sudo xmode2
按下按钮后可以看到相应的输出。

到此为止,我们的遥控器已经可以使用了,剩下的就是遥控具体的应用程序了。方法是在自己的home目录下建立
./.lircrc文件,在里面写入指令。我将自己的.lircrc文件贴上来,具体的写法可以参考Lirc官方的文档。

代码: 全选

$touch ./.lircrc
OK,大功告成了,享受吧。

另外,这个方法应该对DELL studio 15系列和17系列都有效。至少1537是可以的。

Re: 终于搞定DELL 1536红外遥控

发表于 : 2010-08-26 18:53
wzssyqa
:em11

Re: 终于搞定DELL 1536红外遥控

发表于 : 2012-04-30 21:15
lion1131
ITE的驱动现在已经包含在内核中了,不用再单独编译。
在hardware.conf文件中更改相应信息为

代码: 全选

REMOTE_MODULES="lirc_dev ite-cir"
即可。