[linux-dvb] T200 Remote Oddities

Ben Griffiths b.tgriff at tiscali.co.uk
Thu Nov 3 20:00:37 CET 2005


On Thursday 03 November 2005 19:32, Jon Burgess wrote:
> Ben Griffiths wrote:
> > On Sunday 30 October 2005 23:11, Jon Burgess wrote:
> > I'm running SuSE 9.1 with vanilla 2.6.12 and self compiled lirc 0.7.2.
> >
> > I think the issue is the iteraction between mythbackend and lirc (but I
> > have no idea why mythbackend would be talking to lirc). I don't have the
> > problem if I don't load mythbackend - the remote works fine. So I shall
> > go and post on the mythtv list.
> >
> > Ben
>
> Could you try checking the ioctls by using strace on the lircd. You
> should see the following amongst the output:
> ...
> open("/dev/input/event1", O_RDONLY)     = 7
> ioctl(7, EVIOCGRAB, 0x1)                = 0

I can't see this. Here's the output of the strace.

marty:/etc/init.d # strace lircd -H dev/input -d /dev/input/event2
execve("/usr/sbin/lircd", ["lircd", "-H", "dev/input", "-d", 
"/dev/input/event2"], [/* 64 vars */]) = 0
uname({sys="Linux", node="marty", ...}) = 0
brk(0)                                  = 0x8055000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x40017000
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or 
directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=122402, ...}) = 0
old_mmap(NULL, 122402, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3)                                = 0
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360U\1"..., 512) = 
512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1349081, ...}) = 0
old_mmap(NULL, 1132940, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40036000
madvise(0x40036000, 1132940, MADV_SEQUENTIAL|0x1) = 0
old_mmap(0x40140000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x10a000) = 0x40140000
old_mmap(0x40148000, 10636, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|
MAP_ANONYMOUS, -1, 0) = 0x40148000
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x4014b000
set_thread_area({entry_number:-1 -> 6, base_addr:0x4014b080, limit:1048575, 
seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, 
seg_not_present:0, useable:1}) = 0
munmap(0x40018000, 122402)              = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
open("/var/run/lircd.pid", O_RDWR|O_CREAT, 0644) = 3
fcntl64(3, F_GETFL)                     = 0x2 (flags O_RDWR)
brk(0)                                  = 0x8055000
brk(0x8076000)                          = 0x8076000
brk(0)                                  = 0x8076000
fstat64(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x4014c000
_llseek(3, 0, [0], SEEK_CUR)            = 0
flock(3, LOCK_EX|LOCK_NB)               = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
_llseek(3, 0, [0], SEEK_SET)            = 0
getpid()                                = 15331
write(3, "15331\n", 6)                  = 6
_llseek(3, 0, [6], SEEK_CUR)            = 0
ftruncate(3, 6)                         = 0
socket(PF_UNIX, SOCK_STREAM, 0)         = 4
stat64("/dev/lircd", {st_mode=S_IFSOCK|0660, st_size=0, ...}) = 0
unlink("/dev/lircd")                    = 0
bind(4, {sa_family=AF_UNIX, path="/dev/lircd"}, 110) = 0
chmod("/dev/lircd", 0140660)            = 0
chown32("/dev/lircd", 0, 33)            = 0
listen(4, 3)                            = 0
setsockopt(4, SOL_SOCKET, SO_LINGER, {onoff=0, linger=0}, 8) = 0
open("/var/log/lircd", O_WRONLY|O_APPEND|O_CREAT, 0666) = 5
fstat64(5, {st_mode=S_IFREG|0644, st_size=4167986, ...}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x4016c000
fstat64(5, {st_mode=S_IFREG|0644, st_size=4167986, ...}) = 0
_llseek(5, 4167986, [4167986], SEEK_SET) = 0
uname({sys="Linux", node="marty", ...}) = 0
rt_sigaction(SIGTERM, {0x8049650, ~[RTMIN], SA_RESTART}, NULL, 8) = 0
rt_sigaction(SIGINT, {0x8049650, ~[RTMIN], SA_RESTART}, NULL, 8) = 0
rt_sigaction(SIGALRM, {0x8049680, [], SA_RESTART}, NULL, 8) = 0
open("/etc/lircd.conf", O_RDONLY)       = 6
fstat64(6, {st_mode=S_IFREG|0600, st_size=11180, ...}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x4018c000
read(6, "begin remote\n\tname linux-input-l"..., 131072) = 11180
read(6, "", 131072)                     = 0
close(6)                                = 0
munmap(0x4018c000, 131072)              = 0
rt_sigaction(SIGHUP, {0x8049670, [], SA_RESTART}, NULL, 8) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0x4014b0c8) = 15332
exit_group(0)                           = ?
marty:/etc/init.d #     
> ...
>
> If the ioctl() call is missing then it is probably the cause of the
> duplicates. This is probably because you are missing EVIOCGRAB from
> /usr/include/linux/input.h. It should contain the following line:
>
> #define EVIOCGRAB _IOW('E', 0x90, int) /* Grab/Release device */
>
I can however see this. 

#define EVIOCGRAB		_IOW('E', 0x90, int)			/* Grab/Release device */

Thanks,
Ben

>
> 	Jon
>
> _______________________________________________
> linux-dvb mailing list
> linux-dvb at linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb



More information about the linux-dvb mailing list