Dear Maintainer, *** Reporter, please consider answering these questions, where appropriate *** After installing argyll and enabling the appropriate udev rules, argyll fails to enumerate USB-based colorimeters and spectrometers on PowerPC (big-endian, 32-bit). Specifically, 'spotread -?' does not list any usb devices connected to the system. I can find no means of debugging why the device (an i1Display Pro Plus) fails to be detected, but it enumerates fine on my i386 and amd64 machines with the same udev rules. Manually setting the permissions on the appropriate /dev/bus/usb/*/* node does not fix things, either, so I am relatively sure this is not a simple permissions problem. I suspect that USB PID's and Vendor ID's are being read in an endian-specific (and incorrect) manner. Argyll should be able to run on big-endian machines as well as little-endian ones. The only way I was able to profile this machine was to run Argyll on an i386 system with X forwarding to the powerbook's display. As a side-note, I noticed that my argyll-ref package was out of date when I ran reportbug; I just upgraded it to 2.2.0+repack-1 and nothing changed.
I have finally had some time to verify; by adding the byte-swapped version of my colorimeter's USB Vendor and Product ID's, Argyll enumerates it and lets me use it. 0765:5020 became 6507:2050. Spotread appears to be giving correct results, given that they are about the same on average as when I run it on an x86 system. This makes me believe that this may be the only big endian issue, but there is plenty I have not tested (including all other colorimeters and spectrometers Argyll supports). In summary, Argyll needs to either change how it retrieves the VID and PID to avoid things like memcpy(), or it needs to swap the bytes internally for big endian platforms.
Sorry for the hasty email. I just tried it again, and realized it was only working because of *another* change I made while investigating. It still fails with my suggested fix. The thing that was working was setting USE_LIBUSB=true either in the Jamfile or on the command line. It is my understanding that Argyll normally uses its own code for interacting with the colorimeters; is that correct? Since the Libusb support seems to be something the project wants to move away from, I think this might be worth considering.