I'm trying to use an X-rite i1 Display 3 to calibrate my laptop screen in
gnome 3 and running into some trouble.  The color calibration settings
screen opens up as soon as I plug in the calibrator, and the first error I
see is after I've gone through all the options and clicked the start button
to actually begin calibrating.

At that point the error message is:

An internal error occurred that could not be recovered.
    You can remove the calibration device.

This error occurs immediately after clicking the button.

So I googled around and I found a few links to folks having similar issues:

[1]: https://github.com/hughsie/colord/pull/29
[2]: https://bugzilla.redhat.com/show_bug.cgi?id=1297167
[3]: https://bugzilla.redhat.com/show_bug.cgi?id=1000910

Out of those, the third seems to be the closest to the issue I'm having.
>From what I can see, the USB device is enumerated properly by the kernel:

% dmesg # snipped the relevant stuff:
[ 2406.995020] usb 1-1.2: new full-speed USB device number 8 using ehci-pci
[ 2407.083266] usb 1-1.2: New USB device found, idVendor=0765,
idProduct=5021
[ 2407.083275] usb 1-1.2: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
[ 2407.083279] usb 1-1.2: Product: i1Display3 Bootloader
[ 2407.083283] usb 1-1.2: Manufacturer: X-Rite Inc.
[ 2407.086060] hid-generic 0003:0765:5021.0004: hiddev0,hidraw0: USB HID
v1.11 Device [X-Rite Inc. i1Display3 Bootloader] on
usb-0000:00:1a.0-1.2/input0
[ 2407.842362] usb 1-1.2: USB disconnect, device number 8
[ 2408.019082] usb 1-1.2: new full-speed USB device number 9 using ehci-pci
[ 2408.107524] usb 1-1.2: New USB device found, idVendor=0765,
idProduct=5020
[ 2408.107531] usb 1-1.2: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
[ 2408.107535] usb 1-1.2: Product: i1Display3
[ 2408.107538] usb 1-1.2: Manufacturer: X-Rite, Inc.
[ 2408.109804] hid-generic 0003:0765:5020.0005: hiddev0,hidraw0: USB HID
v1.11 Device [X-Rite, Inc. i1Display3] on usb-0000:00:1a.0-1.2/input0

And udev seems to be happy about it:

% udevadm monitor --environment --udev # plugging in the device:
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing

UDEV  [3659.893310] add      /class/usbmisc (class)
ACTION=add
DEVPATH=/class/usbmisc
SEQNUM=3434
SUBSYSTEM=class
USEC_INITIALIZED=3659893139

UDEV  [3659.894709] add
/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2 (usb)
ACTION=add
BUSNUM=001
DEVNAME=/dev/bus/usb/001/012
DEVNUM=012
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2
DEVTYPE=usb_device
DRIVER=usb
ID_BUS=usb
ID_MODEL=i1Display3_Bootloader
ID_MODEL_ENC=i1Display3\x20Bootloader
ID_MODEL_ID=5021
ID_REVISION=0001
ID_SERIAL=X-Rite_Inc._i1Display3_Bootloader
ID_USB_INTERFACES=:030000:
ID_VENDOR=X-Rite_Inc.
ID_VENDOR_ENC=X-Rite\x20Inc.
ID_VENDOR_FROM_DATABASE=X-Rite, Inc.
ID_VENDOR_ID=0765
MAJOR=189
MINOR=11
PRODUCT=765/5021/1
SEQNUM=3431
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=3659894455
...

But the calibration isn't working.  Here's the bit of the journal showing
gnome complaining when I hit the start button:

% journalctl -xb # here's the relevant part:
Aug 30 22:36:23 luigi colord[1036]: (colord:1036): Cd-WARNING **: the child
exited with return code 1
Aug 30 22:36:23 luigi gnome-session[1374]: (gnome-control-center:1829):
color-cc-panel-WARNING **: calibration failed with code 1: argyll-spotread
exited unexpectedly
Aug 30 22:36:24 luigi colord[1036]: (colord:1036): Cd-WARNING **: no child
pid to kill!
Aug 30 22:36:24 luigi gnome-session[1374]: (gnome-control-center:1829):
color-cc-panel-WARNING **: failed to start calibrate: failed to calibrate

So when I saw that I started running argyll-spotread on its own to see if
that would still fail:

% argyll-spotread -v -D4
usb_check_and_add: found instrument vid 0x0765, pid 0x5020
new_inst: called with path '/dev/bus/usb/001/013 (X-Rite i1 DisplayPro,
ColorMunki Display)'
Connecting to the instrument ..
i1d3_init_coms: called
i1d3_init_coms: About to init USB
usb_open_port: open port '/dev/bus/usb/001/013' succeeded
i1d3_command: Sending cmd 'GetStatus' args '00 01 00 00 00 00 00 00'
coms_usb_transaction: Submitting urb to fd 3 failed with -1
i1d3_command: response read failed with ICOM err 0x20000
coms_usb_transaction: Submitting urb to fd 3 failed with -1
i1d3_init_coms: failed with rv = 0x70062
Failed to initialise communications with instrument
or wrong instrument or bad configuration!
('Communications failure' + 'Communications failure')
urb_reaper: cleared requests

And when that happens I see this out in dmesg (the USB IDs may not line up
since I plugged and unplugged this many times):

% dmesg
[  232.711891] usb 1-1.2: usbfs: usb_submit_urb returned -28
[  232.711910] usb 1-1.2: usbfs: usb_submit_urb returned -28
[  232.784675] usb 1-1.2: reset full-speed USB device number 7 using
ehci-pci

My questions are:

1. Has anyone successfully used this model of calibrator to successfully
calibrate their display with the gnome tools?

2. Am I missing some dependency or USE flag that isn't getting pulled in
for me?  Or maybe a kernel config option?

Thanks everyone in advance for any help.

Reply via email to