[argyllcms] Re: dispread fails with ubuntu packed argyllcms with i1pro

  • From: Pascal de Bruijn <pmjdebruijn@xxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sun, 10 Jan 2010 01:23:41 +0100

On Sat, Jan 9, 2010 at 10:58 PM, Graeme Gill <graeme@xxxxxxxxxxxxx> wrote:
> Lars Tore Gustavsen wrote:
>>
>> When I run dispread it stop the measurements at about patch 340 and
>> just hangs there.  When I use the binary provided from Gill there is
>> no such error.
>
> If you edit the source and change the SW_THREAD_TIMEOUT
> #define to a smaller value (say 20.0 seconds), does it fail sooner ?
>
> If so it's a concurrent access issue with the USB driver.
>
> The way the switch is detected is that there is a concurrent
> outstanding USB read that gets returned if the switch is hit. There
> is normally a timeout of 10 minutes on this, so you get through
> about 300 x 2 second display reads before it times out and the
> timeout clashes with another USB read.
>
> The switch read is actually necessary on the Rev A and Rev B
> instruments, or the instrument suffers 1.5 second internal delays.
> [The Rev D. may not be so sensitive since it uses a different
>  micro and seems to have more buffering its USB.]
>
> libusb has to be able to deal with two threads accessing the
> same device having independent timeouts. The original libusb V0.1
> code didn't handle that.
>
> [This is exactly why Argyll comes with its own copy of
>  libusb, and why I strongly object to Linux distributions
>  removing it - it's not a whim, there are very concrete reasons
>  for not trusting whatever version of libusb happens to be on
>  the system ! You certainly aren't doing yourselves or end users
>  any favors distributing broken versions of Argyll, and
>  I'm particularly unhappy about how it then reflects back
>  on upstream.]

I just noticed Argyll is linked against libusb-0.1 which seems to
still be the default version of libusb on Ubuntu.

However, since Jaunty libusb-1.0 has been available in a packaged
form, ready to go for install. The same is true for Debian Squeeze
(testing).

Would linking against libusb-1.0.x solve this issue? Or has the API changed?

Regards,
Pascal de Bruijn

Other related posts: