Installing the software on Linux with X11
You
will need to unpack the downloaded file in the location you have chosen
to hold the executable files. Typically this might be in /usr/local/, or perhaps $HOME/bin/. You would then unpack
the files using tar -zxf archivename.tgz, which will create a
directory Argyll_VX.X.X, where
X.X.X is the version number, and the executables will be in Argyll_VX.X.X/bin You will also
have to
configure your $PATH
environment
variable to give access to the executables from your command line
environment.
The .tgz 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.
Note
on the system bell:
When reading strips using the Eye-One Pro instrument, the system bell
is used to indicate when the instrument the ready to be used, and to
provide feedback on any problems. On some Linux installations the
system bell may be disabled. As well as checking the terminal and GUI
sound preferences, you may have to enable the used of the PC speaker
driver, which can be done by adding the command /sbin/modprobe pcspkr to the /etc/rc.local startup script. You
may also have to run xset b 100 1000
200 in your local setup, if you are running in an X11
environment. You can check that the system bell is operating by doing
an "echo ^G", where ^G is ctrl-G.
Note
on X11 multi-monitor setups:
When working with a multi-monitor X11 configuration, note that you will
only be able to individually calibrate monitors if the multi-window
extension you are using (if any), supports access to the individual
screen Video LUT tables that are used for calibration. The native X11
multi-screen addressing supports this, as does the Xinerama extension,
and XRandR V1.2.
The proprietary NVidia TwinView and ATI MergeFB extensions do not
currently support access to the individual screen Video LUTs, so
calibration of
each screen independently is impossible if either of these extensions
are running. You can switch to using Xinerama to solve this problem, or
you can try doing a calibration for the screens that do
have accessible Video LUTs with these proprietary extensions, or ignore
calibration and rely purely on display profiling. Use the dispwin
utility to figure out what works on your system. The NVidia ATI binary
drivers do not seem to properly support XRandR V1.2 either, even though
they claim to do so. You may have to set the ARGYLL_IGNORE_XRANDR1_2
environment variable if the XRandR V1.2 extension is faulty.
If these limitations trouble you, then as a valuable customer of NVidia
or AMD/ATI,
perhaps you should contact them and urge them to fix the problems with
Video LUT access in their proprietary multi-monitor extensions and
XRandR implementation,
bringing their support for multi-monitors on X11 up to the same
standards as other operating systems. Ask them to add full and correct
support for the
XRandR V1.2 extension.
Fixing
access to Video LUTs:
Some users have noted that their default X11 installation doesn't
properly enable access to the video card Video Lookup Tables (RAMDAC).
The Video LUTs are used for display calibration purposes, and a warning
will be issues by the dispcal
and dispread utilities if
there is a problem with this. Without access to the VideoLUTs, you
won't be able to use display calibration.
The problem may be because certain X11 extensions aren't being loaded
by default. You may want to check that you have
Load "extmod"
in the appropriate (or any) section of
your Xorg.conf file, to allow the XF86Video LUT extensions to
function correctly.
Another source of problems is if the display isn't configured with a
suitable visual. Typically for high quality color you need to be using
at least 24 bits per pixel (8
Bits for each of Red, Green and Blue
channels), but more importantly the number of entries in the the
VideoLUTs needs to match the depth of the screen. So if the VideoLUTs
have 256 entries per channel, then the screen must be using 8 bits per
channel to match. Or 64 entries and 6 bits. Or 4096 entries and 12
bits, etc. Running "dispwin -E" may give some clues as to what the
nature of the problem is. You might have to look into your xorg.conf or
XRANDR setup, or on some distributions there will be some configuration
program that will let you choose the display configuration (ie. YaST or
SaX2 on openSUSE, etc.).
Setting
up instrument access:
By default most Linux based systems make devices
inaccessible to user mode programs, so it is necessary to make some
modification to your permissions so that Argyll utilities are able to
access the Color Measurement Instruments. In order from newest
to oldest, the following sub-systems may need to be configured to
permit this:
No
device configuration needed when running from the console:
Mandriva 2008.0 default
installation
Fedora Core 8
Mandriva 2008.1
OpenSuSE 10.3
Ubuntu 7.1
Kubuntu 7.1
Debian 4.0
Red Hat 4.0
Fedora Core 4
Fedora Core 3
Fedora Core 2
No
device configuration needed:
Some systems have in place a security configuration such that
anyone logging in at the console of a machine has access to all the
local devices.
USB
instruments access using udev:
Most recent systems use udev to manage device names and
permissions, but by default color instruments may not be accessible to
normal system users.
To solve this a udev rule file needs to be added that modifies the
group and permission of any Color Measurement Instruments, and you may
then need to add youself to that group.
Copy the file libusb/55-Argyll.rules from the binary or
source distribution into /etc/udev/rules.d/55-Argyll.rules
with owner root, group root, permissions 644.
If you are on an older system
that uses a udev that doesn't recognize the syntax used in
55-Argyll.rules, or that doesn't have rules to create the libusb
/dev/bus/usb/00X/00Y
device entries, you should install the libusb/45-Argyll.rules
file instead.
On recent systems the new rules file will be notices as soon as you
plug the instrument in again.
On older systems you may need to run /sbin/udevtrigger,
/sbin/udevcontrol reload_rules or /sbin/udevstart
or reboot to get the new file
noticed.
----------------- cut here ---------------------
# udev rule to recognize instruments and make them accessible to user
applications.
# Copy this to /etc/udev/rules.d/55-Argyll.rules
# Skip all this to speed things up if it'a not an add.
ACTION!="add", GOTO="argyll_rules_end"
# Recognize the color measurement devices
# DTP20
ATTRS{idVendor}=="0765", ATTRS{idProduct}=="d020",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# DTP92Q (not testedt)
ATTRS{idVendor}=="0765", ATTRS{idProduct}=="d092",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# DTP94
ATTRS{idVendor}=="0765", ATTRS{idProduct}=="d094",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# MonacoOPTIX (Same as i1 Display 1)
ATTRS{idVendor}=="0670", ATTRS{idProduct}=="0001",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# i1Display
ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2003",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# i1Monitor
ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2001",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# i1Pro
ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2000",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# ColorMunki
ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2007",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# Colorimtre HCFR
ATTRS{idVendor}=="04db", ATTRS{idProduct}=="005b",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# Spyder 2
ATTRS{idVendor}=="085c", ATTRS{idProduct}=="0200",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# Spyder 3
ATTRS{idVendor}=="085c", ATTRS{idProduct}=="0300",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# Huey
ATTRS{idVendor}=="0971", ATTRS{idProduct}=="2005",
ENV{COLOR_MEASUREMENT_DEVICE}="1"
# Let ACL manage these devices, if it is installed
TEST=="/lib/udev/udev-acl", ENV{COLOR_MEASUREMENT_DEVICE}=="*?",
ENV{ACL_MANAGE}="1"
# Otherwise users should be members of the plugdev group
TEST!="/lib/udev/udev-acl", ENV{COLOR_MEASUREMENT_DEVICE}=="*?",
MODE="660", GROUP="plugdev"
LABEL="argyll_rules_end"
----------------- cut here ---------------------
(You may want to refer to this document
for more guidance on modifying udev rules, as well as this.)
YOU THEN MAY NEED TO:
If your system is not using
the new ACL to manage device access
for console users (the file /lib/udev/udev-acl
doesn't exist on your system), then you will need to add yourself to
the plugdev group, if you are
not already a member of it. You can do this either by using a "Users
and Groups" system administration tool, or on the command line running
as root:
sudo usermod -a -G plugdev yourusernamehere
or
su root
usermod -a -G plugdev yourusernamehere
(If the usermod program isn't found as root, it might be in /usr/sbin,
ie. use /usr/sbin/usermod .... etc.
If usermod doesn't recognize the -a flag try "usermod -A plugdev
yourusernamehere".
If this doesn't work you will have to run "id yourusername" to
list the current supplemental
groups, and add them plus plugdev using just "usermod -G
group1,group2,... yourusername")
You may find that the plugdev
group doesn't exist on your system, and if so you will need to create
it:
sudo groupadd -r plugdev
and then add yourself to the plugdev group.
You may have to log out and then in again for the groups to become
effective.
You can check whether the instrument is being recognized and set to the
plugdev group by comparing the output of ls -l -R /dev/bus/usb without and
then with the instrument plugged in.
You can test whether your instrument is accessible by plugging it in
and then running "spotread -?" and looking for it listed after the -c option.
USB
instruments access using hotplug:
Under much older versions of Linux,
you should look into the hotplug system
configuration for USB devices. You know you are running this because
the /etc/hotplug directory
exists on
your system.
Assuming we want to configure for all Argyll supported USB instruments,
copy the file libusb/Argyll.usermap from the binary or
source distribution into /etc/hotplug/usb/Argyll.usermap
with owner root, group root, permissions 644.
----------------- cut here ---------------------
# hotplug device mapping to handling script.
# Copy this to /etc/hotplug/usb/Argyll.usermap
#
# Detect instruments by their USB VID and PID
#
# DTP20
Argyll 0x0003 0x0765 0xd020 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# DTP92Q - not tested
Argyll 0x0003 0x0765 0xd092 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# DTP94
Argyll 0x0003 0x0765 0xd094 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# MonacoOPTIX (Same as i1 Display 1)
Argyll 0x0003 0x0670 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# i1 Display
Argyll 0x0003 0x0971 0x2003 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# i1 Monitor
Argyll 0x0003 0x0971 0x2001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# i1 Pro
Argyll 0x0003 0x0971 0x2000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# ColorMunki
Argyll 0x0003 0x0971 0x2007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# Colorimtre HCFR
Argyll 0x0003 0x04DB 0x005B 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# Spyder 2
Argyll 0x0003 0x085C 0x0200 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# Spyder 3
Argyll 0x0003 0x085C 0x0300 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
#
# Huey
Argyll 0x0003 0x0971 0x2005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000
----------------- cut here ---------------------
(For even older versions, append the lines above to
/etc/hotplug/usb.usermap, and
you may have to run update-usb.usermap)
Then copy the file libusb/Argyll from the binary or source
distribution into /etc/hotplug/usb/Argyll
with owner root, group root, permissions 744.
----------------- cut here ---------------------
#!/bin/sh
# Copy to /etc/hotplug/usb/Argyll
#
# Argyll hotplug script. Adds the USB devices to the plugdev group.
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
chgrp plugdev "${DEVICE}"
chmod 660 "${DEVICE}"
fi
----------------- cut here ---------------------
YOU THEN NEED TO:
If your system is not using
the new ACL to manage device access
for console users (the file /lib/udev/udev-acl
doesn't exist on your system), then you will need to add yourself to
the plugdev group, if you are
not already a member of it. You can do this either by using a "Users
and Groups" system administration tool, or on the command line running
as root:
sudo usermod -a -G plugdev yourusernamehere
or
su root
usermod -a -G plugdev yourusernamehere
(If the usermod program isn't found as root, it might be in /usr/sbin,
ie. use /usr/sbin/usermod .... etc.
If usermod doesn't recognize the -a flag try "usermod -A plugdev
yourusernamehere".
If this doesn't work you will have to run "id yourusername" to
list the current suplemental
groups, and add them plus plugdev using just "usermod -G
group1,group2,... yourusername")
You may find that the plugdev
group doesn't exist on your system, and if so you will need to create
it:
sudo groupadd -r plugdev
and then add youself to the plugdev group.
You may have to log out and then in again for the groups to become
effecive.
You can test whether your instrument is accessible by plugging it in
and then running "spotread -?" and looking for it listed after the -c option.
Serial
instruments access:
If you have a serial instrument then you may find that by default you
don't have permission to access the serial ports or a Serial to USB
adapter. Most systems make the serial ports available to any user in
the tty and uucp group, so the best way of
getting access to the serial ports is to add yourself to those groups.
You can do this either by using a "Users and Groups" system
administration tool, or on the command line using "usermod":
su root
usermod -a -G tty,uucp yourusernamehere
or
sudo usermod -a -G tty,uucp yourusernamehere
(If the usermod program isn't found as root, it might be in /usr/sbin,
ie. use /usr/sbin/usermod .... etc.
If usermod doesn't recognize the -a flag try "usermod -A plugdev
yourusernamehere".
If this doesn't work you will have to run "id yourusername" to
list the current suplemental
groups, and add them plus plugdev using just "usermod -G
group1,group2,... yourusername")
You may have to log out and then in again for the groups to become
effecive.