[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