当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 13 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : tvtime + lirc 实现电视遥控
帖子发表于 : 2007-06-12 9:16 

注册: 2007-05-11 9:21
帖子: 65
送出感谢: 0 次
接收感谢: 0 次
在论坛里搜了一下,没发现相关内容,把我当初的配置过程贴出来吧,希望对大家有用。
我用的是ubuntu 7.04,tvtime和lirc都是用新立得安装的现成的。我的电视卡是朗视的,型号忘了,用的是saa713x芯片,tvtime装上就能用。lirc需要一个驱动程序,最初搜到的结果都是需要安装内核源码,然后下载lirc的源文件进行编译才行,看起来非常麻烦,所以我也拖了很久没搞。后来终于提起精神来做了一下,试了几次都是编译错误,包括直接编译的,用module-assistant编译的,最后都不行。前者一直出错,根本编不出结果,后者编译出一个deb包,但安装后modprobe模块时出错。后来终于google到另一种方法,终于搞定了。
这种方法其实很简单的,就在于它不需要安装另外的驱动,直接用系统自带的就可以了。当前版本的lirc支持dev/input设备,用它就可以绕开编译驱动的麻烦,这样就简单多了。下面的安装过程中很多命令都需要root权限。
1,首先看看自己的电视卡用的是那个input端口。
代码:
 cat /proc/bus/input/devices

找到电视卡相关的那部分,我的是下面这样:
代码:
    I: Bus=0001 Vendor=5168 Product=0138 Version=0001
    N: Name="saa7134 IR (LifeView/Typhoon Fl"
    P: Phys=pci-0000:01:09.0/ir0
    S: Sysfs=/class/input/input3
    H: Handlers=kbd event3
    B: EV=100003
    B: KEY=c0304 310000 0 0 0 0 0 0 2 1e0000 0 0 10000ffc

其中 event3 就是我们需要的信息,你的可能是其他值,记得在下面的步骤里把event3改成你自己的。

2,使用 irrecord 生成配置文件 lircd.conf。
代码:
    irrecord -H dev/input -d /dev/input/event3 /etc/lirc/lircd.conf

接下来的过程比较简单,就是给遥控器上的一个键起个名字,然后按下这个键直到提示成功,然后用同样的方法记录另一个键,直到把自己遥控器上所有的按键都记录下来。

3,运行下面的命令试一下(这一步可以略过):
代码:
    lircd  -H dev/input -d /dev/input/event3 -n &
    irw

按几个遥控器按键,如果显示正确就成功一大半了。

4,把硬件信息写入lirc的hardware.conf里,那么下次启动lirc服务时它就能自动连接指定的设备,不需要写那么长的命令行了。这是我修改后的 /etc/lirc/hardware.conf 文件。
代码:
    # /etc/lirc/hardware.conf
    #
    # Arguments which will be used when launching lircd
    LIRCD_ARGS=""

    #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

    # Run "lircd --driver=help" for a list of supported drivers.
    DRIVER="dev/input"
    # If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
    # automatically used instead
    # 下面这行本来应该是event3的,不过我给这个event做了一个链接,请参考本文最后面给出的说明。
    DEVICE="/dev/input/tvremote"
    MODULES=""

    # Default configuration files for your hardware if any
    LIRCD_CONF="lircd.conf"
    LIRCMD_CONF=""


5,从 http://tvtime.sourceforge.net/example.lircrc 下载tvtime的配置例子并改名为 /etc/lirc/lircrc,然后手工修改里面的配置。这个文件格式很简单,根据自己在第二步生成的lircd.conf修改收到什么按键发什么命令就行了。可以通过帮助查看所有支持的命令:
代码:
man tvtime-command


6,因为tvtime需要irexec来帮助转发lirc收到的命令,所以最好修改一下tvtime的启动文件,在tvtime启动前自动启动irexec。
代码:
    mv /usr/bin/tvtime /usr/bin/tvtime_exe
    gedit /usr/bin/tvtime

输入以下内容:
代码:
        #!/bin/sh
        irexec&
        tvtime_exe
        killall irexec

设置为可执行:
代码:
    chmod +x /usr/bin/tvtime

好了,运行tvtime试试看吧:)

不过现在还有一个问题,就是我们从 /proc/bus/input/devices 里得到的那个event值在电脑每次启动时可能是不一样的,难道我们要每次启动都修改 /etc/lirc/hardware.conf 才行?还好没那么惨,我们可以给它自动建一个链接。
步骤不算复杂,首先用“$ udevinfo -a -p $(udevinfo -q path -n /dev/input/event3)”找到电视卡遥控器的vendor ID,然后建一个“/etc/udev/rules.d/10-local.rules”文件,输入下面的内容:
代码:
    KERNEL=="event*",SYSFS{vendor}=="0x1311",SYMLINK="input/tvremote"

其中0x1311就是上一步得到的vendor ID,你的可能是其他值。然后重启udev:
代码:
    /etc/init.d/udev restart

这时你应该可以看到 “/dev/input/tvremote”了,现在它指向event3,下次启动时如果电视卡的遥控设备event变了,它也会自动指向正确的event。好了,把hardware.conf里的DEVICE改成“/dev/input/tvremote”吧!
大功告成!


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-07-28 15:32 

注册: 2006-01-07 21:14
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
我遇到困难了。
第一步的输出是event7,我执行
代码:
sudo irrecord -H dev/input -d /dev/input/event7 /etc/lirc/lircd.conf

提示
代码:
Press RETURN to continue.

不知道RETURN是什么键,我按了回车,又提示
代码:
Hold down an arbitrary button.

我按住遥控器上的某个键,过一会儿就提示
代码:
irrecord: gap not found, can't continue

有时按下会出现一个
代码:
.

但是几秒之后依然是
代码:
.irrecord: gap not found, can't continue


请您看看是哪里出现问题了呢?谢谢!


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-07-29 15:51 

注册: 2007-05-11 9:21
帖子: 65
送出感谢: 0 次
接收感谢: 0 次
return就是回车键,你的操作也是正确的。
请先确定event值是对的,devices里的设备很多,一定要找对摇控器对应的那个。比如我的“saa7134 IR (LifeView”,saa7134是电视卡用的芯片,IR代表红外摇控,LifeView是电视卡的牌子。还有就是按下摇控器按键的时候一定要对准摇控接收窗口,离得近一些,以确保接收质量。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: tvtime + lirc 实现电视遥控
帖子发表于 : 2007-07-29 15:58 
头像

注册: 2006-12-23 13:46
帖子: 9203
地址: Azores Islands
送出感谢: 0 次
接收感谢: 1
ausun 写道:
我的电视卡是朗视的,型号忘了,用的是saa713x芯片,tvtime装上就能用。!


电视卡就买这个,ee的遥控器也不用买了。没想到还可以省3块钱(ee开发的遥控器报价)


_________________
no security measure is worth anything if an attacker has physical access to the machine


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-07-30 13:30 

注册: 2006-01-07 21:14
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
您好,首先感谢您的回复!
我又试了一下,第一步的输出是
代码:
I: Bus=0001 Vendor=1131 Product=0000 Version=0001
N: Name="saa7134 IR (LifeView/Typhoon Fl"
P: Phys=pci-0000:00:0b.0/ir0
S: Sysfs=/class/input/input7
H: Handlers=kbd event7
B: EV=100003
B: KEY=c0304 310000 0 0 0 0 0 0 2 1e0000 0 0 10000ffc

执行
代码:
sudo irrecord -H dev/input -d /dev/input/event7 /etc/lirc/lircd.conf

后依然是那样,提示
代码:
Hold down an arbitrary button.

后,我按住了遥控器上的某个按键不放,几秒之后就提示这个了
代码:
irrecord: gap not found, can't continue

我这次是把遥控器放在距接收窗10厘米左右(上次大概30厘米),正对着接收窗操作的。在Win下即便离2米以外都没问题的。

请问我还应该怎么做呢?谢谢!


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-07-30 13:33 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
ls的试试。lirc可以用usb<->com的转换不。skyx别高兴太早。我还要看市场呢。


_________________
● 鸣学


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-07-30 13:57 
头像

注册: 2007-02-25 22:55
帖子: 185
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
ls的试试。lirc可以用usb<->com的转换不。


usb<->com 还要com<->infred

尽折腾


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-07-30 14:02 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
就是看那软件能过这转换芯片,再控制采样不啊。
你敢用mj。nnnnd


_________________
● 鸣学


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-07-30 18:47 

注册: 2006-01-07 21:14
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
忽然发现按遥控器上的数字键可以在这里输入数字!打开tvtime试了下,按数字键可以调台,静音、音量键也有效,其他键没反应。好奇怪! :em23


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-09-12 0:47 
头像

注册: 2007-02-25 22:55
帖子: 185
送出感谢: 0 次
接收感谢: 0 次
ee 的遥控器有进展没? alpha版有没有?


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-03-02 23:33 

注册: 2008-02-15 15:46
帖子: 10
送出感谢: 0 次
接收感谢: 0 次
占个楼,改天试试看


页首
 用户资料  
 
12 楼 
 文章标题 : Re: tvtime + lirc 实现电视遥控
帖子发表于 : 2009-06-08 20:18 

注册: 2005-10-23 23:06
帖子: 74
送出感谢: 0 次
接收感谢: 0 次
不错,很有用,特别是跟踪变化端口的处理,谢谢


页首
 用户资料  
 
13 楼 
 文章标题 : Re: tvtime + lirc 实现电视遥控
帖子发表于 : 2009-11-01 15:25 

注册: 2009-01-06 19:23
帖子: 29
送出感谢: 0 次
接收感谢: 0 次
LZ:
我的现象跟“5460”朋友 一样。

sudo irrecord -H dev/input -d /dev/input/event4 /etc/lirc/lircd.conf

Enter后长按键没有一点反应,然后就 irrecord: gap not found, can't continue 请问是否少配置一些东东阿。

请问5460朋友 你的解决方法是啥阿??


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 13 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译