"new_disprd() failed with 'Instrument Access Failed" Linux (Solved)

Home Forums Help and Support "new_disprd() failed with 'Instrument Access Failed" Linux (Solved)

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #14768

    Dominig
    Participant
    • Offline

    Hello,

    You may have seen the error below when trying to calibrate your display on Linux.
    “new_disprd() failed with ‘Instrument Access Failed”

    It’s very easy to permanently fix.

    1. Checking the cause
      Most likely you have an issue with write access to your calibration device.  To confirm that just open the log from the menu (tools->Show Log Window).
      09:49:32,806 DisplayCAL: Starting interaction with subprocess
      09:49:36,163 Number of patches = 3
      09:49:36,165 Setting up the instrument
      09:49:36,165 usb_open_port: open ‘/dev/bus/usb/002/092’ config 1 failed (-1) (Permissions ?)
      09:49:36,166 usb_open_port: open ‘/dev/bus/usb/002/092’ config 1 failed (-1) (Permissions ?)
      09:49:36,166 dispread: Error – new_disprd failed with ‘Instrument Access Failed’
      09:49:36,167
      09:49:36,168 DisplayCAL: Reached EOF (OK)
      Your will check the device rights access (path may be different than on my system). Check the access right on it.
      sudo ls -l /dev/bus/usb/002/*
      Bingo, only root can write on it.

    2. The permanent fix.
    We are going to add a udev rule for the calibration device.
    a) let find its ID with the command lsusb
    dominig@linux-hv0w:~> lsusb
    Bus 002 Device 092: ID 0765:5020 X-Rite, Inc. i1 Display Pro

    b) add a udev rule
    create a file in “/etc/udev/rules.d” named “90-xlite-colour_cal.rules“. You need to be root or sudo to create it.
    The content of the file will be (0765 and 5021 must be align with the values returned by the command lsusb) :

    # Gives write access for group “users” on the xlite Calibration USB device
    SUBSYSTEM==”usb”, ATTR{idVendor}==”0765″, ATTR{idProduct}==”5021″, GROUP=”users”, MODE=”0660″

    c) Trigger a udev reload
    You need to activate your new rule. You can do it without rebooting.
    sudo udevadm trigger

    d) Check the change
    getfacl /dev/bus/usb/002/*
    Notes: a simple ls will not show you the change (just a little +) as the new privilege is activated via the extended acl
    as 002 and 092 are not numbers but file names, the leading 0 are important.

    3. Conclusion
    I have done my test on a Linux OpenSUSE 15.0 but it should work on any modern Linux distro.
    Please note that the usb bus ID numbers 002 and 092 will most likely be different on your system.
    usb”, ATTR{idVendor}==”0765″, ATTR{idProduct}==”5021″ are linked to the version of my xlite device, yours may be different.

    lsusb will give you the right ID numbers to use on your system for your device.
    Once the rule added, it will be persistent on reboot and USB hotplug.

    Enjoy your day.

    Dominig

    Calibrite Display Pro HL on Amazon  
    Disclosure: As an Amazon Associate I earn from qualifying purchases.

    #14778

    Florian Höch
    Administrator
    • Offline

    Hi,

    there is an easier way: menu “Tools” -> “Instrument” -> “Install instrument configuration files” (may have to uninstall existing ones first).

    #14784

    Dominig
    Participant
    • Offline

    Florient

    would have been nice but on my system (Linux OpenSUSE 15.0) that option is grayed out.
    The only possible action in that menu is to “enable Spyder2”

    If it works for others, you solution is certainly better.

    Changing hotplug config requires to be root. But doing the config from the application would be nice.

    Dominig

    #16750

    Herve5
    Participant
    • Offline

    Hello,

    You may have seen the error below when trying to calibrate your display on Linux.
    “new_disprd() failed with ‘Instrument Access Failed”

    It’s very easy to permanently fix.

    1. Checking the cause
      Most likely you have an issue with write access to your calibration device.  To confirm that just open the log from the menu (tools->Show Log Window).
    2. (…)

    Dominig

    Dominig,

    I found your how-to refreshingly clear and even with my rather low Linux level I believe I followed it correctly here on Debian 9 (why are you switching the value in ATTR{idProduct}==”5021″ from 5020 to 5021?)

    Anyway, I followed your advice twice, once without changing my ID and then a second time adding 1 like in your example; then I checlk getfacl /dev/bus/usb/001/* (in my case) gives the right perms :

    saincth@Tuxedo:~$ getfacl /dev/bus/usb/001/*
    getfacl : suppression du premier « / » des noms de chemins absolus
    (...)# file: dev/bus/usb/001/015
    # owner: root
    # group: root
    user::rw-
    group::rw-
    other::r--

    (the xrite i1studio is indeed on usb 001/015 here, while the last value seems to increase by 1 each time I unplug the device)

    From what I see above it sound like users do have write access to the device, and anyhow I still get exactly the same error in the log :

    22:28:45,273 Connecting to the instrument ..
    22:28:45,273 usb_open_port: open '/dev/bus/usb/001/016' config 1 failed (-1) (Permissions ?)
    22:28:45,274 usb_open_port: open '/dev/bus/usb/001/016' config 1 failed (-1) (Permissions ?)
    22:28:45,275 Failed to initialise communications with instrument
    22:28:45,276 or wrong instrument or bad configuration!

    I am now wondering what ELSE could prevent write access.

    I have read elsewhere that this was an USB3 vs USB2 issue : as I only have USB3 ports on my machine I’ll try to  find a relaying hub tomorrow (unless it’s ridiculous?)

    I also suspected a specific firewalling action by the application Firejail, which I installed out of probably excessive concern about closed-source apps : I once discovered it was able to filter some outside connections quite unexpectedly. I “killall’ed it then restarted DisplayCAL, checking no more Firejail process was present -to no avail alas…

    I find myself a bit unable to go farther on my own… Would you have any advice?

    Thank you!

    Hervé

    #16895

    Dominig
    Participant
    • Offline

    Hervé,

    check with the command lsusb the actual ID of your device.
    Do not forget to reload the hotplug rules after any change.
    sudo udevadm trigger

    There is no Firewall issue on USB connections.

    If that fail try to change the access right by hand with the command chmod on the device.
    I do not know Debian security configuration, you may have some extra constrains from that side.

    Most likely your device as a different ID.

    Kenavo.

    Dominig

    #32076

    Oleg
    Participant
    • Offline

    I am also having problems with the method suggested by Dominic. However, I am grateful to him for the fact that he found the basis of the problem, and I chose a simpler solution method. Just gave the rights through the “chmod” command.

    chmod -R 777 / dev / bus / usb / 001 /

    And it worked for me. Thanks to all the participants in the discussion! Maybe this will help someone.

    Hakuna Matata!

    Oleg

Viewing 6 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic.

Log in or Register

Display Calibration and Characterization powered by ArgyllCMS