Installing the software


Argyll doesn't come with any installation programs or scripts, so installation is a manual process. Because things are mostly self-contained, this isn't particularly onerous. In general the steps are:

1) Provide somewhere for the executables to reside
2) Provide a means of the shell finding the executables
3) Setup the system to be able to use instruments (USB in particular)

Microsoft Windows:

You will need to unzip the downloaded file in the location you have chosen to hold the executable files (perhaps somewhere like \bin\argyll). I would NOT put them in \Program Files\argyll, since spaces in directory or file names and command line environments are a very bad mix, and will cause you endless problems. You should also configure your %PATH% environment variable to give access to the executables from your command line environment. Look in  Start->ControlPanel->System->Environment or Start->ControlPanel->System->Advanced->EnvironmentVariables for where to add this directory to your %PATH%. Note that a ';' character separates each directory in the path, and you should probably add your new directory at the end. The .zip file also contains several useful reference files (such as scanner chart recognition templates, sample illumination spectrum etc.) in the ref sub-directory, all the current documentation in a doc sub-directory, and instrument USB drivers in the libusbw directory.

If you are using a serial connected instrument, then there is nothing special to do to enable this.

If you are using a USB connected instrument, then suitable USB drivers need to be installed:

If you currently don't have any applications that talk to your instrument using USB, then it is relatively simple to use the drivers provided with Argyll. On plugging the instrument in, MSWindows should pop up a "New Hardware" dialog, and ask you for drivers. Navigate the dialog until you are able to direct it where to look for drivers. Using the "Browse.." selection, locate the libusbw directory within the argyll files, and select the appropriate instrument .inf file (ie. DTP94.inf), and then continue with  the installation wizard.

If you currently have applications other than Argyll accessing your USB connected instrument, then you have a choice to make. You can replace the existing USB drivers used on that device with the ones provided with Argyll, using the MSWindows device manager to "update drivers" for that device, selecting the .inf file provided with Argyll. This will almost certainly mean that your existing applications cannot access the instrument anymore (Blame Microsoft for not anticipating that there might be more than one driver for a USB device!).

The alternative is to go to the libusb-win32 web site, and download and then install the "filter drivers", - see <http://libusb-win32.sourceforge.net./#downloads>. This may then let you access the device using Argyll, without disabling access by existing applications.

Apple OS X:

You will need to unzip the downloaded file in the location you have chosen to hold the executable files. Typically this might be in /usr/local/argyll, or perhaps ~/bin/argyll. You will also have to configure your $PATH environment variable to give access to the executables from your command line environment. If you are unfamiliar with how to do this, consult an appropriate tutorial, e.g. <ShellIntro>. The .zip file also contains several useful reference files (such as scanner chart recognition templates, sample illumination spectrum etc.) in the ref sub-directory, as well as all the current documentation in a doc sub-directory.

Lunix/UNIX using X11:

You will need to unzip the downloaded file in the location you have chosen to hold the executable files. Typically this might be in /usr/local/argyll, or perhaps ~/bin/argyll. You will also have to configure your $PATH environment variable to give access to the executables from your command line environment. The .zip file also contains several useful reference files (such as scanner chart recognition templates, sample illumination spectrum etc.) in the ref sub-directory, as well as all the current HTML documentation in a doc sub-directory. You may want to copy things to more standard locations such as /usr/local/bin, /usr/local/argyll/bin etc., depending on the conventions used on your system.

If you are using a color instrument on a serial port, note that a serial mouse may occupy the first port (/dev/ttyS0), so you will have to discover which physical port maps to which tty, and that if you are not running as root, you may have to change the permissions on the serial port you are using for the instruments. One way of changing the permissions is to do this manually:

(as root:)  chmod 666 /dev/ttyS1

but you may find that this has to be done on every system start. A way this can be automated is to add the chmod command to the /etc/rc.serial file (you may have to create this file if it doesn't exist. Check the /etc/rc.sysinit script, to make sure that the rc.serial file is being invoked.)

On more modern Linux systems, the serial ports are probably being created by the udev system, so modifying the udev configuration is a neater way to go. You could for example, create a  10-Argyll.permissionsfile:

    ----------------- cut here ---------------------
    # Color instrument serial ports
    # Should have an "argyll" group, but do it crudely for now,
    ttyS1:root:uucp:0666
    ----------------- cut here ---------------------

and then install it as /etc/udev/permissions.d/10-Argyll.permissions, making sure it has owner root, group root, permissions 644.



USB access has similar permission issues, and these can be solved by modifying the appropriate hotplug or udev configuration files. You need to be running as root to make these changes to your system.

Under older versions of Linux, you should look into the hotplug system configuration. Assuming we want to configure for an X-Rite DTP94, create a DTP94.usermap file containing:

    ----------------- cut here ---------------------
    DTP94 0x0003 0x0765 0xd094 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
    ----------------- cut here ---------------------

and then install as /etc/hotplug/usb/DTP94.usermap, making sure it has owner root, group root, permissions 644.

 (For even older versions, append the line above to /etc/hotplug/usb.usermap, and you may have to run update-usb.usermap)

Then create a script file called DTP94:

    ----------------- cut here ---------------------
    #!/bin/sh
    # Simply enable permissions.
    if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
    then
        # Should have a "pci" group, or "argyll" group, but do it crudely for now,
        # by making it world readable.
        # chgrp baz "${DEVICE}"
        # chmod 660 "${DEVICE}"
        chmod 666 "${DEVICE}"
    fi
    ----------------- cut here ---------------------

and copy it to /etc/hotplug/usb/ too, making sure it has, owner root, group root, permissions 755.



Newer Linux systems use udev in preference to hotplug, so the approach is slightly different:

[NOTE - I wasn't able to get this to work on my test system - this could be a bug in udev]

Create 10-DTP94.rules file containing:

    ----------------- cut here ---------------------
    # udev rule to change permissions so that the DTP94 can be accessed by argyll
    # MODE="660", GROUP="argyll" would be better here.
    BUS="usb", SYSFS{idVendor}="0765", SYSFS{idProduct}="d094", MODE="666", NAME="%k"
    ----------------- cut here ---------------------

and copy it to /etc/udev/rules.d/10-DTP94.rules, making sure it has owner root, group root, permissions 644.
You need to run /sbin/udevstart to get the new file noticed.