Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#9 closed defect (fixed)

IR Remote control for EmperoarTV does not work anymore with all of Lars' versions of USB drivers

Reported by: Grimus Owned by: Lars Erdmann
Priority: major Component: basedrv
Version: Keywords:
Cc:

Description

I use a "Microsoft Remote Control and Receiver 1.0A for Media Center PC with Windows (Philips)", an USB 1.1 device to IR remote control EmperoarTV. Used to work well with the original IBM drivers, but not at all with usbhcdxxx (any version up to recent version 176).

The device itself is seen fine in, e.g., USB Dock, also a red LED at the front indicates activity when I press buttons on the remote control, however nothing happens to EmperoarTV any more.

Attachments (10)

Phenom02.txt (60.4 KB ) - added by Grimus 13 years ago.
PCI -D sniff output
usbh177.ftf (220.4 KB ) - added by Grimus 13 years ago.
TRacing results
04710815.log (931 bytes ) - added by Grimus 13 years ago.
USB dock log for REmote control unit
2011-12-19_19-20-37_IMG_6360.jpg (120.1 KB ) - added by Grimus 13 years ago.
Trapd with new ETV/2 and using the remote control to change channels.
IMG_6363.jpg (111.4 KB ) - added by Grimus 13 years ago.
GRIMUS.ZIP (177.6 KB ) - added by Lars Erdmann 13 years ago.
fixing a bug in IBM code: on "short packet compaction", increase phys addr. space to map to also cover src address
2011-12-24_10-11-43_IMG_6368.jpg (125.2 KB ) - added by Grimus 13 years ago.
Trap in USBIRC 01
2011-12-22_15-01-17_IMG_6364.jpg (117.8 KB ) - added by Grimus 13 years ago.
TRad d in USBIRC.SYS 02
GRIMUS.2.ZIP (177.9 KB ) - added by Lars Erdmann 13 years ago.
reworked "FinishIO" for USBOHCD.SYS
grimus.zip (177.7 KB ) - added by Lars Erdmann 13 years ago.
reworked "FinishIO" for USBOHCD.SYS a second time

Download all attachments as: .zip

Change History (47)

comment:1 by Lars Erdmann, 13 years ago

1.) follow readme.txt in order to generate a trace and attach file here 2.) change order of USBUHCD.SYS and USBEHCD.SYS in config.sys and check if it makes a difference

Version 0, edited 13 years ago by Lars Erdmann (next)

comment:2 by Lars Erdmann, 13 years ago

Also, revert back to the USBD.SYS 10.162 from IBM. The one I delivered is not ready for prime time.

comment:3 by Lars Erdmann, 13 years ago

Get usbhcd177.zip from Hobbes

by Grimus, 13 years ago

Attachment: Phenom02.txt added

PCI -D sniff output

by Grimus, 13 years ago

Attachment: usbh177.ftf added

TRacing results

comment:4 by Grimus, 13 years ago

Reverted back to the eCS USBD.SYS and updated to usbhcd177. no change - still no reaction of EmperoarTV to remote control commands.

comment:5 by Lars Erdmann, 13 years ago

Can you get device report from USB Dock and attach here ? I would like to know if it is bulk device,interrupt device,isochronous device ...

by Grimus, 13 years ago

Attachment: 04710815.log added

USB dock log for REmote control unit

comment:6 by Lars Erdmann, 13 years ago

replace USBOHCD.SYS with original 10.162 IBM driver (but keep USBEHCD.SYS 10.177) and tell me if that fixes the problem.

comment:7 by Grimus, 13 years ago

Replaced USBOHCD.SYS with the original eCS one -> no change. But I think EmperoarTV brought some version of its own. Will need to check.

comment:8 by Grimus, 13 years ago

Actually there is an updated version of ETV/2 to increase compatibility with the new USB drivers. Now the remote control kind of works - however changing channels results in a trapd. Screenshot attached. Need to investigate further as ETV does not seem to work at all now...

by Grimus, 13 years ago

Trapd with new ETV/2 and using the remote control to change channels.

comment:9 by Grimus, 13 years ago

Seems to work now. After 2 more traps and re-installs of ETV/2, remote control works again. Will observe what happens in the future but for the moment the problem seems gone with ETV/2 v 2.06c. Now have to rebuild my PMMail directory structure :-(

comment:10 by Lars Erdmann, 13 years ago

I think I found the cause of the trap. Please try grimus.zip. I have not changed anything about the functionality. I just tried to fix the trap.

Last edited 13 years ago by Lars Erdmann (previous) (diff)

comment:11 by Grimus, 13 years ago

Doesn't help. Trap is reproducible with changing channels quickly using the remote control. See trap screen attached. :-(

by Grimus, 13 years ago

Attachment: IMG_6363.jpg added

comment:12 by Lars Erdmann, 13 years ago

Am I assuming correctly that you also experience the trap when you either use the original 10.162 IBM driver or the binary patched driver supplied by Rüdiger Ihle (the maker of EmperoarTV I believe) ?

For your info: I know where exactly it traps and I know why it traps. That's a good precondition to getting it fixed. If the original 10.162 version (and Rüdigers version for that matter) also traps it will just confirm my suspicion.

By the way: the very same error is in all 3 drivers: USBUHCD.SYS,USBOHCD.SYS,USBEHCD.SYS. The fix will therefore bring the solution to all 3 drivers.

Last edited 13 years ago by Lars Erdmann (previous) (diff)

by Lars Erdmann, 13 years ago

Attachment: GRIMUS.ZIP added

fixing a bug in IBM code: on "short packet compaction", increase phys addr. space to map to also cover src address

comment:13 by Lars Erdmann, 13 years ago

I have updated. Please "stress test" as you already did.

comment:14 by Grimus, 13 years ago

Looks very good so far. No traps. Can change channels, switch to full screen and back. Switch to VCR mode and to TV mode. No issues whatsoever. This is with EperoarTV 2.06c.

Let's wait a couple of days - but I think this particular issues has been solved!

comment:15 by Lars Erdmann, 13 years ago

Ok, let's leave it open for a while. If you can provoke a "low memory/heavy swapping" situation I would like to know if everything still works ok. There is a small risk that memory gets swapped out where it shouldn't.

comment:16 by Grimus, 13 years ago

That's hard I guess - 3.3 GB of memory are hardly ever used here. Or are you talking about shared memory?

comment:17 by Lars Erdmann, 13 years ago

No, I am talking about forcing the system to start swapping out memory. If it's impossible - let's hope that it won't be a problem. Very maybe I can do some further analysis with the kernel debugger. Problem is, I don't have an environment where I would hit the code path were the bug showed up.

comment:18 by Grimus, 13 years ago

OK. I can open a lot of high res pictures with PMView and see what happens then.

comment:19 by Grimus, 13 years ago

Hi. Not yet 100% good. Now I experience traps in USBIRC.SYS, the EmperoarTV IR remote control driver. (see uploads) IS this possibly still related to the USB stack or do I need to raise this with Rudi now?

by Grimus, 13 years ago

Trap in USBIRC 01

by Grimus, 13 years ago

TRad d in USBIRC.SYS 02

comment:20 by rudi, 13 years ago

The trap screen indicates, that a bogus data length (buffer1Length) is returned by the host controller driver. Therefore USBIRC tries to read beyond the end of it's data segment.

comment:21 by Lars Erdmann, 13 years ago

Yes the traps are most likely related to USBOHCD.SYS (if you use an USB 1.x device which I think you do) or USBEHCD.SYS (if you use an USB 2.0 device). I understand the error but I am not yet sure why it occurs as I haven't changed anything with regard to computation of "buffer1Length". What HC driver is in use ? USBOHCD.SYS ?
Please try all combinations:
a.) USBOHCD.SYS 10.162 and USBEHCD.SYS 10.162
b.) USBOHCD.SYS 10.162 and my USBEHCD.SYS
c.) my USBOHCD.SYS and USBEHCD.SYS 10.162
d.) my USBOHCD.SYS and my USBEHCD.SYS

and tell me for each case if you experience the same trap or not.

Last edited 13 years ago by Lars Erdmann (previous) (diff)

comment:22 by Lars Erdmann, 13 years ago

I seem to remember that EmperoarTV comes with a binary patched version of USBOHCD.SYS. If yes, use that instead of USBOHCD.SYS 10.162.

by Lars Erdmann, 13 years ago

Attachment: GRIMUS.2.ZIP added

reworked "FinishIO" for USBOHCD.SYS

comment:23 by Lars Erdmann, 13 years ago

Try updated grimus2.zip. If you still get a trap it would be helpful to create a trap dump (see readme.txt in usbhcd178.zip). If it works it would still be helpful to have the tracefile (see readme.txt in usbhcd178.zip).

comment:24 by Lars Erdmann, 13 years ago

I again updated just now. Use the latest version.

comment:25 by Grimus, 13 years ago

So far so good - no more traps till now. Tested remote control heavily. Thanks a lot!!

comment:26 by Lars Erdmann, 13 years ago

Resolution: fixed
Status: newclosed

I am closing the ticket. When the next release comes out (usbhcd179, eventually), please retest with that new release (I just want to be sure I didn't break anything else in USBOHCD.SYS along the way. There are still other things to fix ...). I you again run into problems open a new ticket or reopen this ticket.

comment:27 by Lars Erdmann, 13 years ago

Resolution: fixed
Status: closedreopened

by Lars Erdmann, 13 years ago

Attachment: grimus.zip added

reworked "FinishIO" for USBOHCD.SYS a second time

comment:28 by Lars Erdmann, 13 years ago

On second thought: would you please do a final check with the newly uploaded driver ? I changed something that is not directly related to your traps but would lead to occasional hangs of USBOHCD.SYS on other occasions. I want to be sure it doesn't break anything for you.

comment:29 by Grimus, 13 years ago

Seems to work well. Will test a little more tomorrow. But so far no traps.

comment:30 by Lars Erdmann, 13 years ago

Forgot to mention: also test USBOHCD.SYS with memory sticks by opening large files (20 MB or bigger). For this to work you might need to disable USB 2.0 in your BIOS so that USBOHCD.SYS will be in use instead of USBEHCD.SYS.
If it is not too much hassle, also try all this (use in Emperoar TV + memory sticks) with the original IBM 10.162 USBOHCD.SYS and see if you experience the traps you have been reporting in the past.

comment:31 by Grimus, 13 years ago

What do you mean by 'opening some 20MB files'? I can open a large movie - but the USB stick is too slow to play it smoothly. Also opened 300MB zip file with pictures while watching EmperoarTV. All with USB 2.0 disabled - works like a charm (except that USB 1.1 is slooooooow).

Will try to reproduce the traps with the original IBM driver next. BTW - now that USB 1 and 2 work very well here... what about USB 3? ;-)

in reply to:  31 comment:32 by Lars Erdmann, 13 years ago

Replying to Grimus:

What do you mean by 'opening some 20MB files'? I can open a large movie - but the USB stick is too slow to play it smoothly. Also opened 300MB zip file with pictures while watching EmperoarTV. All with USB 2.0 disabled - works like a charm (except that USB 1.1 is slooooooow).

Want I meant was to open a large file from a USB stick. I have changed something in USBOHCD.SYS to prevent a hang when reading a large file from a USB stick. Therefore, if you have done exactly that and say that everything works OK without a hang I consider this bug closed. But a test with original USBOHCD.SYS 10.162 and the results would still be of help for me to determine if I really have nailed down the problem.

Will try to reproduce the traps with the original IBM driver next. BTW - now that USB 1 and 2 work very well here... what about USB 3? ;-)

Certainly a good idea. I haven't yet fully investigated but it might need changes in USBD.SYS and potentially in the USBxHCD.SYS drivers to still be compatible. It depends on if the new features of USB 3.0 need changes in the interfaces between the client drivers (USBMOUSE.SYS, USBKBD.SYS, USBPRT.SYS etc.), USBD.SYS and the HC drivers USBxHCD.SYS so that these new features can be exploited. And it needs new manpower as it is a new development.

Last edited 13 years ago by Lars Erdmann (previous) (diff)

comment:33 by Lars Erdmann, 13 years ago

Owner: changed from somebody to Lars Erdmann
Status: reopenedaccepted

comment:34 by Grimus, 13 years ago

Tested with original IBM OHCI driver - USB 2 switched off in BIOS. Using the EmperoarTV remote control once - trap! Reverting back to the last version of your driver - everything working perfectly well.

So this particular bug is nailed! And the bug has obviously been there forever ;-)

However, I am not able to produce any trap opening big files. (with neither driver version).

Thanks a milliion times for this one!

BTW.: Teh drivers are still about 5 times the size of the release versions. I assume that they are still debug versions? Do you want me to test the release versions as well?

in reply to:  34 comment:35 by Lars Erdmann, 13 years ago

Replying to Grimus:

Tested with original IBM OHCI driver - USB 2 switched off in BIOS. Using the EmperoarTV remote control once - trap! Reverting back to the last version of your driver - everything working perfectly well.

So this particular bug is nailed! And the bug has obviously been there forever ;-)

Ha, I knew it !

However, I am not able to produce any trap opening big files. (with neither driver version).

Good.

Thanks a milliion times for this one!

BTW.: Teh drivers are still about 5 times the size of the release versions. I assume that they are still debug versions? Do you want me to test the release versions as well?

In theory there is a small chance that the release version drivers won't work. But no, I don't see a need to explicitely test the release version. Of course I will place the release versions on Hobbes (tracing capability will nonetheless always be included but can be dynamically enabled/disabled as you most likely know).

comment:36 by Lars Erdmann, 13 years ago

Resolution: fixed
Status: acceptedclosed

comment:37 by Grimus, 13 years ago

Just wanted to comment that all is well also with the new non-debug version. Thanks again!

Note: See TracTickets for help on using tickets.