Klaus Schmidinger wrote:
Carsten Koch wrote:
Dirk wrote: ...
is anybody else experiencing sluggish response to remote control commands? It started when I updated to kernel 2.6 and VDR 1.3.
Yes, same for me. But I am observing that remote control key presses are never lost. Sometimes I press several keys in sequence and nothing happens. After some seconds, the keys are "executed" very quickly.
Yes, you are right. Of course, for a toggle key like "Menu" it is sometimes hard to say, but I agree - it looks like they are never lost, just delayed sometimes an the executed all at once.
I think, there must be some instance inside VDR which "caches" the remote key strokes in some kind of queue.
It may be the lirc demon which is buffering them and vdr may just not get around to reading the lirc queue all the time.
@Klaus, is that possible? Any suggestion where I should start looking?
VDR buffers up to 16 keystrokes in cRemote::keys[].
OK, here is an update: I added this
--- vdr-1.3.17/lirc.c 2003-10-18 13:34:02.000000000 +0200 +++ /home/cko/vdr-1.3.17/lirc.c 2005-03-06 14:06:06.333149544 +0100 @@ -56,13 +56,16 @@ char LastKeyName[LIRC_KEY_BUF] = ""; bool repeat = false; int timeout = -1; +int lirc_serial = 0;
for (; f >= 0;) {
LOCK_THREAD;
bool ready = cFile::FileReady(f, timeout); +buf[0] = 0; int ret = ready ? safe_read(f, buf, sizeof(buf)) : -1; +dsyslog("%u:'%s'", lirc_serial++, buf);
if (ready && ret <= 0 ) { esyslog("ERROR: lircd connection lost");
--- vdr-1.3.17/remote.c 2004-10-31 15:05:12.000000000 +0100 +++ /home/cko/vdr-1.3.17/remote.c 2005-03-06 14:39:02.316353120 +0100 @@ -125,6 +125,7 @@
bool cRemote::Put(const char *Code, bool Repeat, bool Release) { +dsyslog("put '%s' %u %u", Code, Repeat, Release); if (learning && this != learning) return false; eKeys Key = Keys.Get(Name(), Code);
to lirc.c / remote.c and waited for the problem to occur.
A few minutes ago it did. I pressed Menu to bring up the main menu and Down a few times to get to "recordings". The main menu came up but the cursor did not move down. I pressed down many times for almost a minute. No effect. I waited a few seconds and the cursor skipped down all the way to the last main menu entry. My log shows that vdr has received my commands when I pressed them, not all at once like it would seem from their effect on the screen. This also exctly matches Dirk's description:
Mar 7 00:18:28 vdr vdr[6816]: 533:'00000000000060c6 00 Menu NokiaVCN620 ' Mar 7 00:18:28 vdr vdr[6816]: put 'Menu' 0 0 Mar 7 00:18:28 vdr vdr[6816]: 534:'00000000000060c6 00 Menu NokiaVCN620 ' Mar 7 00:18:29 vdr vdr[6816]: 535:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:29 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:29 vdr vdr[6812]: changing pids of channel 47 from 1110+1110:1120=deu:130 to 1110+1110:1120:130 Mar 7 00:18:30 vdr vdr[6816]: 536:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:30 vdr vdr[6816]: 537:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:30 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:30 vdr vdr[6816]: 538:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:31 vdr vdr[6812]: channel 1 (3sat) event 23:45 'Die Dämonischen' status 4 Mar 7 00:18:31 vdr vdr[6816]: 539:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:31 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:31 vdr vdr[6816]: 540:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:32 vdr vdr[6816]: 541:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:32 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:32 vdr vdr[6816]: 542:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:34 vdr vdr[6816]: 543:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:34 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:35 vdr vdr[6816]: 544:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:36 vdr vdr[6816]: 545:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:36 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:36 vdr vdr[6816]: 546:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:37 vdr vdr[6816]: 547:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:37 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:38 vdr vdr[6816]: 548:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:39 vdr vdr[6816]: 549:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:39 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:39 vdr vdr[6816]: 550:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:40 vdr vdr[6816]: 551:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:40 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:40 vdr vdr[6816]: 552:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:40 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:41 vdr vdr[6816]: 553:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:41 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:42 vdr vdr[6816]: 554:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:42 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:42 vdr vdr[6816]: 555:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:42 vdr vdr[6816]: 556:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:42 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:42 vdr vdr[6816]: 557:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:43 vdr vdr[6816]: 558:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:43 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:43 vdr vdr[6816]: 559:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:43 vdr vdr[6816]: 560:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:43 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:44 vdr vdr[6816]: 561:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:44 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:44 vdr vdr[6816]: 562:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:45 vdr vdr[6816]: 563:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:45 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:45 vdr vdr[6816]: 564:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:45 vdr vdr[6816]: 565:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:45 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:46 vdr vdr[6816]: 566:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:46 vdr vdr[6816]: 567:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:46 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:46 vdr vdr[6816]: 568:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:47 vdr vdr[6816]: 569:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:47 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:47 vdr vdr[6816]: 570:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:47 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:47 vdr vdr[6816]: 571:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:48 vdr vdr[6816]: 572:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:48 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:49 vdr vdr[6816]: 573:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:49 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:49 vdr vdr[6816]: 574:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:51 vdr vdr[6816]: 575:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:51 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:52 vdr vdr[6816]: 576:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:52 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:52 vdr vdr[6816]: 577:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:53 vdr vdr[6816]: 578:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:53 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:53 vdr vdr[6816]: 579:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:53 vdr vdr[6816]: 580:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:53 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:54 vdr vdr[6816]: 581:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:54 vdr vdr[6816]: 582:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:54 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:54 vdr vdr[6816]: 583:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:55 vdr vdr[6816]: 584:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:55 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:55 vdr vdr[6816]: 585:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:56 vdr vdr[6816]: 586:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:56 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:57 vdr vdr[6816]: 587:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:57 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:58 vdr vdr[6816]: 588:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:58 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:58 vdr vdr[6816]: 589:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:59 vdr vdr[6816]: 590:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:18:59 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:18:59 vdr vdr[6816]: 591:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:00 vdr vdr[6816]: 592:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:00 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:00 vdr vdr[6816]: 593:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:00 vdr vdr[6816]: 594:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:00 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:01 vdr vdr[6816]: 595:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:01 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:01 vdr vdr[6816]: 596:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:03 vdr vdr[6816]: 597:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:03 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:03 vdr vdr[6816]: 598:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:03 vdr vdr[6816]: 599:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:03 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:04 vdr vdr[6816]: 600:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:04 vdr vdr[6816]: 601:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:04 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:05 vdr vdr[6816]: 602:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:05 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:05 vdr vdr[6816]: 603:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:06 vdr vdr[6816]: 604:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:06 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:06 vdr vdr[6816]: 605:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:07 vdr vdr[6816]: 606:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:07 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:07 vdr vdr[6816]: 607:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:08 vdr vdr[6816]: 608:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:08 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:08 vdr vdr[6816]: 609:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:08 vdr vdr[6816]: 610:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:08 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:08 vdr vdr[6816]: 611:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:09 vdr vdr[6816]: 612:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:09 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:09 vdr vdr[6816]: 613:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:10 vdr vdr[6816]: 614:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:10 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:10 vdr vdr[6816]: 615:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:11 vdr vdr[6816]: 616:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:11 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:11 vdr vdr[6816]: 617:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:11 vdr vdr[6816]: 618:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:11 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:13 vdr vdr[6816]: 619:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:13 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:13 vdr vdr[6816]: 620:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:13 vdr vdr[6816]: 621:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:13 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:14 vdr vdr[6816]: 622:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:14 vdr vdr[6816]: 623:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:14 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:14 vdr vdr[6816]: 624:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:15 vdr vdr[6816]: 625:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:15 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:16 vdr vdr[6816]: 626:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:16 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:16 vdr vdr[6816]: 627:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:17 vdr vdr[6816]: 628:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:17 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:17 vdr vdr[6816]: 629:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:18 vdr vdr[6816]: 630:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:18 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:18 vdr vdr[6816]: 631:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:19 vdr vdr[6816]: 632:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:19 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:19 vdr vdr[6816]: 633:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:20 vdr vdr[6816]: 634:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:20 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:20 vdr vdr[6816]: 635:'0000000000006392 00 Down NokiaVCN620 ' Mar 7 00:19:20 vdr vdr[6816]: put 'Down' 0 0 Mar 7 00:19:23 vdr vdr[6815]: channel 25 (Phoenix) event 00:15 'VOR ORT' status 4
So I guess the problem is not in lircd and not in vdr's lirc.c. Any ideas what I should try next?
Carsten.