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@xxxxxxxxxxx > http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb