Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > a09757cf7e287c7b4a85bae207244d5f > files > 82

argyllcms-0.70-0.1.Beta8.1mdv2008.1.i586.rpm

<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
  <meta http-equiv="Content-Type"
 content="text/html; charset=iso-8859-1">
  <meta http-equiv="content-type"
 content="text/html; charset=ISO-8859-1">
  <meta name="GENERATOR"
 content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
  <title>Argyll Installation</title>
</head>
<body>
<h1>
<u>Installing the software</u></h1>
<br>
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:<br>
<br>
1) Provide somewhere for the executables to reside<br>
2) Provide a means of the shell finding the executables<br>
3) Setup the system to be able to use instruments (USB in particular)<br>
<br>
<span style="font-weight: bold;"><a href="#MSWindows">Microsoft Windows</a><br>
<a href="#OSX">Apple OS X</a><br>
<a href="#Linux">Linux/UNIX X11</a><br>
<br>
</span>If you have a Spyder 2 colorimeter, please also see <a
 href="spyd2en.html">spyd2en</a>.<br>
<br>
<hr style="width: 100%; height: 2px;">
<h2 style="color: rgb(51, 51, 255);"><a name="MSWindows"></a>Microsoft
Windows:</h2>
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 <span
 style="font-weight: bold;">NOT</span> put them in <span
 style="font-style: italic;">\Program Files\argyll</span>,
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&nbsp;
Start-&gt;ControlPanel-&gt;System-&gt;Environment or
Start-&gt;ControlPanel-&gt;System-&gt;Advanced-&gt;EnvironmentVariables
for where to add this directory to your %PATH%. Note that a <span
 style="font-weight: bold;">';</span>' 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.<br>
<br>
If you are using a serial connected instrument, then there is nothing
special to do to enable this.<br>
<br>
If you are using a USB connected instrument, then suitable USB drivers
may need to be installed.<br>
<br>
<span style="font-weight: bold;">NOTE</span> that if you are updating
to a new version of Argyll, that it may be necessary to uninstall all
the Argyll USB devices, and re-install them, to update the relevant
libusb-win32 system driver and dll. (This is true for updating to
Argyll Version 0.70).<br>
<br>
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 <span style="font-weight: bold;">libusbw</span>
directory within the argyll files, and select the appropriate
instrument <span style="font-weight: bold;">.inf</span> file (ie.
DTP94.inf, i1Disp.inf etc.), and then continue with&nbsp; the
installation
wizard.<br>
<br>
Note that the "Huey" colorimeter appears as an HID (USB Human Interface
Device Class) device, and hence will be assigned to the default
MSWindows HID driver, rather than popping a "New Hardware" dialog. If
your version of Argyll has been compiled with MSWindows HID driver
support (as the binary distribution does), then you do not need to
install an Argyll <span style="font-weight: bold;">libusbw</span>
driver. If your version of Argyll does not have HID driver support (no
DDK available), then you will need to switch the "Huey" from the HID
driver to a <span style="font-weight: bold;">libusbw</span> driver
(see below).<br>
<br>
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, browsing for, then selecting the .inf file provided with
Argyll. Once the Argyll drivers are installed, you can most easily
switch between the different drivers using "update drivers", and
using&nbsp; the "display a list of known drivers" option, switching
backwards and forwards between the original drivers and the Argyll
drivers. Note that for the "Huey" colorimeter when not using the HID
driver support, you will have to locate the device labelled "USB Human
Interface Device" that corresponds to the "Huey", and "update" it to
the Argyll supplied "Huey.inf" <span style="font-weight: bold;">libusbw</span>
driver. You can then switch backwards and forwards the same as other
devices.<br>
<br>
The alternative is to go to the libusb-win32 web site, and download and
then install the "filter drivers", - see
&lt;http://libusb-win32.sourceforge.net./#downloads&gt;. This may then
let you access the device using Argyll, without disabling access by
existing applications. (I haven't tried this, so I'm not sure how well
it works).<br>
You don't make use of the Argyll <span style="font-weight: bold;">.inf</span>
file using this approach.<br>
<br>
<hr style="width: 100%; height: 2px;">
<h2 style="color: rgb(51, 102, 255);"><a name="OSX"></a>Apple OS X:</h2>
You
will need to unzip the downloaded file in the location you have chosen
to hold the executable files. Typically this might be in <span
 style="font-style: italic;">/usr/local/argyll</span>, or perhaps <span
 style="font-style: italic;">$HOME/bin/argyll</span>. 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. &lt;<a
 href="http://heather.cs.ucdavis.edu/%7Ematloff/UnixAndC/Unix/ShellIntro.html#tth_sEc1">ShellIntro</a>&gt;.
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.<br>
<br>
For most devices there is nothing special to do. Plug in and go. For
some devices though (specifically, if you want to use the HCFR
colorimeter), the default OS X class
drivers will grab the device, preventing Argyll from accessing it. To
overcome this, you need to install a codeless kernel extension if you
wish to use the HCFR colorimeter, that
prevents this from happening. From the command line you need to create
a directory called Argyll.kext somewhere convenient, and then place in
it one file called Info.plist, containing the following:<br>
<br>
&nbsp;&nbsp;&nbsp; ----------------- cut here ---------------------<br>
&nbsp;&nbsp; &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>
&nbsp;&nbsp; &lt;!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST
1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;<br>
&nbsp;&nbsp; &lt;plist version="1.0"&gt;<br>
&nbsp;&nbsp; &lt;dict&gt;<br>
&nbsp; &nbsp;&nbsp; &nbsp;
&lt;key&gt;CFBundleDevelopmentRegion&lt;/key&gt;
&lt;string&gt;English&lt;/string&gt;<br>
&nbsp;&nbsp; &nbsp; &nbsp; &lt;key&gt;CFBundleGetInfoString&lt;/key&gt;
&lt;string&gt;Libusb USB device Shield&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
&lt;key&gt;CFBundleIdentifier&lt;/key&gt;
&lt;string&gt;com.libusb.USB_Shield&lt;/string&gt;<br>
&nbsp;&nbsp; &nbsp; &nbsp;
&lt;key&gt;CFBundleInfoDictionaryVersion&lt;/key&gt;
&lt;string&gt;6.0&lt;/string&gt;<br>
&nbsp; &nbsp; &nbsp;&nbsp; &lt;key&gt;CFBundleName&lt;/key&gt;
&lt;string&gt;Libusb USB device Shield&lt;/string&gt;<br>
&nbsp; &nbsp; &nbsp;&nbsp; &lt;key&gt;CFBundlePackageType&lt;/key&gt;
&lt;string&gt;KEXT&lt;/string&gt;<br>
&nbsp;&nbsp; &nbsp; &nbsp; &lt;key&gt;CFBundleSignature&lt;/key&gt;
&lt;string&gt;????&lt;/string&gt;<br>
&nbsp; &nbsp; &nbsp;&nbsp; &lt;key&gt;CFBundleVersion&lt;/key&gt;
&lt;string&gt;6.0&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
&lt;key&gt;IOKitPersonalities&lt;/key&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;dict&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;
&lt;key&gt;HCFR&lt;/key&gt;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;dict&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;
&lt;key&gt;CFBundleIdentifier&lt;/key&gt;
&lt;string&gt;com.apple.driver.AppleUSBComposite&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;
&lt;key&gt;IOClass&lt;/key&gt;
&lt;string&gt;AppleUSBComposite&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;
&lt;key&gt;IOProviderClass&lt;/key&gt;
&lt;string&gt;IOUSBDevice&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp; &lt;key&gt;idVendor&lt;/key&gt;
&lt;integer&gt;1243&lt;/integer&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; &lt;key&gt;idProduct&lt;/key&gt;
&lt;integer&gt;91&lt;/integer&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dict&gt;<br>
&nbsp;&nbsp; &nbsp; &nbsp; &lt;/dict&gt;<br>
&nbsp; &nbsp; &nbsp;&nbsp;
&lt;key&gt;OSBundleCompatibleVersion&lt;/key&gt;
&lt;string&gt;1.8&lt;/string&gt;<br>
&nbsp;&nbsp; &nbsp; &nbsp; &lt;key&gt;OSBundleLibraries&lt;/key&gt;<br>
&nbsp; &nbsp; &nbsp;&nbsp; &lt;dict&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
&lt;key&gt;com.apple.kernel.iokit&lt;/key&gt;
&lt;string&gt;6.0&lt;/string&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/dict&gt;<br>
&nbsp;&nbsp; &lt;/dict&gt;<br>
&nbsp;&nbsp; &lt;/plist&gt;<br>
&nbsp; &nbsp; ----------------- cut here ---------------------<br>
<br>
(You can also copy this from the source installation in
libusb/Argyll.kext)<br>
<br>
You then need to install it by using:<br>
<br>
&nbsp; sudo cp -R Argyll.kext /System/Library/Extensions<br>
<br>
supplying the appropriate root password when prompted.<br>
Reboot the system to activate the extension.<br>
<br>
<hr style="width: 100%; height: 2px;">
<p> </p>
<a href="../../../usr/graeme/www.argyllcms.com/ArgyllDoc.html">
</a>
<h2 style="color: rgb(51, 102, 255);"><a name="Linux"></a>Lunix/UNIX
using X11:</h2>
You will need to unzip the downloaded file in the location you have
chosen to hold
the executable files. Typically this might be in <span
 style="font-style: italic;">/usr/local/argyll</span>, or perhaps <span
 style="font-style: italic;">$HOME/bin/argyll</span>. 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.<br>
<br>
<big style="color: rgb(51, 102, 255);"><span style="font-weight: bold;">Note
on the system bell:</span></big><br>
<br>
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 <span
 style="font-weight: bold;">/sbin/modprobe pcspkr </span>to the <span
 style="font-weight: bold;">/etc/rc.local</span> startup script. You
may also have to run <span style="font-weight: bold;">xset b 100 1000
200</span> in your local setup, if you are running in an X11
environment.<br>
<br>
<big style="color: rgb(51, 102, 255);"><span style="font-weight: bold;">Note
on X11 multi-monitor setups:</span></big><br>
<br>
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.<br>
<br>
The proprietary NVidia TwinView and ATI MergeFB extensions do not
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 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.<br>
If these limitations trouble you, then as a customer of NVidia or ATI,
perhaps you should contact them and urge them to fix the problems with
Video LUT access in their proprietary multi-monitor extensions,
bringing their support for multi-monitors on X11 up to the same
standards as other operating systems. When RandR V1.2 becomes more
popular, this may also solve this problem.<br>
<br>
<big style="color: rgb(51, 102, 255);"><span style="font-weight: bold;">Fixing
access to Video LUTs:</span></big><br>
<br>
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 <span style="font-weight: bold;">dispcal</span>
and <span style="font-weight: bold;">dispread</span> utilities if
there is a problem with this.<br>
<br>
The problem may be because certain X11 extensions aren't being loaded
by default. You may want to check that you have<br>
<br>
<big style="color: rgb(51, 102, 255);"><span style="font-weight: bold;"></span></big>&nbsp;
Load&nbsp; "extmod"
<br>
<br>
in&nbsp;the&nbsp;appropriate&nbsp;(or&nbsp;any)&nbsp;section&nbsp;of
your Xorg.conf file, to allow the XF86Video&nbsp;LUT extensions&nbsp;to
function correctly.<br>
<br>
<big style="color: rgb(51, 102, 255);"><span style="font-weight: bold;">Setting
up instrument access:</span></big><br>
<h5><span style="color: rgb(204, 51, 204);">Serial instruments:</span><br>
</h5>
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:<br>
<br>
(as root:)&nbsp; chmod 666 /dev/ttyS1<br>
<br>
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.)<br>
<br>
On more modern Linux systems, the serial ports are probably being
created by the <span style="font-weight: bold;">udev</span> system, so
modifying the udev configuration is a neater way to go. You could for
example, create a&nbsp; <span style="font-weight: bold;">10-Argyll.permissions</span>file:<br>
<br>
&nbsp;&nbsp;&nbsp; ----------------- cut here ---------------------<br>
&nbsp;&nbsp;&nbsp; # Color instrument serial ports<br>
&nbsp; &nbsp; # Should have an "argyll" group, but do it crudely for
now,<br>
&nbsp;&nbsp;&nbsp; ttyS1:root:uucp:0666<br>
&nbsp; &nbsp; ----------------- cut here ---------------------<br>
<br>
and then install it as <span style="font-weight: bold;">/etc/udev/permissions.d/</span><span
 style="font-weight: bold;">10-Argyll.permissions</span>, making sure
it has owner root, group root, permissions 644.<br>
<br>
<h5><span style="color: rgb(204, 51, 204);">USB using hotplug:</span></h5>
Some systems appear to be setup with <span style="font-weight: bold;">udev</span>
rules that automatically cope with <span style="font-weight: bold;">libusb</span>
devices, making the right devices appear in the file system, and
setting their permissions appropriately. Other systems have USB access
problems similar to those with serial ports,&nbsp; and these can be
solved by
modifying the appropriate <span style="font-weight: bold;">hotplug</span>
or <span style="font-weight: bold;">udev</span> configuration files.
You need to be running as root to make these changes to your system.<br>
<br>
Under <span style="font-weight: bold;">older versions of Linux</span>,
you should look into the hotplug system
configuration. You know you are running this because the <span
 style="font-weight: bold;">/etc/hotplug</span> directory exists on
your system.<br>
<br>
Assuming we want to configure for all Argyll supported USB instruments,
copy the file <span style="font-weight: bold;">libusb/</span><span
 style="font-weight: bold;">Argyll.usermap</span> from the binary or
source distribution into&nbsp; <span style="font-weight: bold;">/etc/hotplug/usb/Argyll.usermap</span>
with owner root, group root, permissions 644. It should contain
something like:<span style="font-weight: bold;"></span><br>
<br>
&nbsp;&nbsp;&nbsp; ----------------- cut here ---------------------<br>
# Detect instruments by their USB VID and PID<br>
# DTP20<br>
Argyll 0x0003 0x0765 0xd020 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000<br>
#<br>
# DTP92Q - not tested<br>
Argyll 0x0003 0x0765 0xd092 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000<br>
#<br>
# DTP94<br>
Argyll 0x0003 0x0765 0xd094 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000<br>
#<br>
# MonacoOPTIX (Same as i1 Display 1)<br>
Argyll 0x0003 0x0670 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000<br>
#<br>
# i1 Display<br>
Argyll 0x0003 0x0971 0x2003 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000<br>
#<br>
# i1 Pro<br>
Argyll 0x0003 0x0971 0x2000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000<br>
#<br>
# Colorimtre HCFR<br>
Argyll 0x0003 0x04DB 0x005B 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000<br>
#<br>
# Spyder 2<br>
Argyll 0x0003 0x085C 0x0200 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000<br>
#<br>
# Huey<br>
Argyll 0x0003 0x0971 0x2005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00
0x00000000<br>
&nbsp;&nbsp;&nbsp; ----------------- cut here ---------------------<br>
<br>
&nbsp;(For even older versions, append the lines above to
<span style="font-weight: bold;">/etc/hotplug/usb.usermap</span>, and
you may have to run <span style="font-weight: bold;">update-usb.usermap</span>)<br>
<br>
Then copy the file <span style="font-weight: bold;">libusb/</span><span
 style="font-weight: bold;">Argyll</span> from the binary or source
distribution into <span style="font-weight: bold;">/etc/hotplug/usb/Argyll</span>
with owner root, group root, permissions 644. It should contain
something like:<span style="font-weight: bold;"></span><br>
<br>
&nbsp;&nbsp;&nbsp; ----------------- cut here ---------------------<br>
&nbsp;&nbsp;&nbsp; #!/bin/sh<br>
&nbsp;&nbsp;&nbsp; # Simply enable permissions.<br>
&nbsp;&nbsp;&nbsp; if [ "${ACTION}" = "add" ] &amp;&amp; [ -f
"${DEVICE}" ]<br>
&nbsp;&nbsp;&nbsp; then<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Should have a "pci" group,
or "argyll" group, but do it crudely for now,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # by making it world
readable.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # chgrp baz "${DEVICE}"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # chmod 660 "${DEVICE}"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chmod 666 "${DEVICE}"<br>
&nbsp;&nbsp;&nbsp; fi<br>
&nbsp;&nbsp;&nbsp; ----------------- cut here ---------------------<br>
<br>
<h5><span style="color: rgb(204, 51, 204);">USB using udev, #1:<br>
</span></h5>
<span style="font-weight: bold;">Newer Linux systems</span> use udev in
preference to hotplug, so the approach
is slightly different: Copy the file <span style="font-weight: bold;">libusb/</span><span
 style="font-weight: bold;">45-Argyll.rules</span> from the binary or
source distribution into <span style="font-weight: bold;">/etc/udev/rules.d/45-Argyll.rules</span>
with&nbsp;owner root, group root, permissions 644.&nbsp; It should
contain something like:<br>
<br>
&nbsp; ----------------- cut here ---------------------<br>
# udev rule to change permissions so that the USB
instruments
can be accessed by argyll<br>
# MODE="660", GROUP="argyll" would be better here.<br>
<br>
# DTP20<br>
SYSFS{idVendor}=="0765", SYSFS{idProduct}=="d020", PROGRAM="/bin/sh -c
'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*}
$${K#*.}'", NAME="%c",&nbsp; MODE="666"<br>
<br>
# DTP92Q - not tested<br>
SYSFS{idVendor}=="0765", SYSFS{idProduct}=="d092", PROGRAM="/bin/sh -c
'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*}
$${K#*.}'", NAME="%c",&nbsp; MODE="666"<br>
<br>
# DTP94<br>
SYSFS{idVendor}=="0765", SYSFS{idProduct}=="d094", PROGRAM="/bin/sh -c
'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*}
$${K#*.}'", NAME="%c",&nbsp; MODE="666"<br>
<br>
# MonacoOPTIX (Same as i1 Display 1)<br>
SYSFS{idVendor}=="0670", SYSFS{idProduct}=="0001", PROGRAM="/bin/sh -c
'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*}
$${K#*.}'", NAME="%c",&nbsp; MODE="666"<br>
<br>
# i1Display<br>
SYSFS{idVendor}=="0971", SYSFS{idProduct}=="2003", PROGRAM="/bin/sh -c
'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*}
$${K#*.}'", NAME="%c",&nbsp; MODE="666"<br>
<br>
# i1Pro<br>
SYSFS{idVendor}=="0971", SYSFS{idProduct}=="2000", PROGRAM="/bin/sh -c
'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*}
$${K#*.}'", NAME="%c",&nbsp; MODE="666"<br>
<br>
# Colorimtre HCFR<br>
SYSFS{idVendor}=="04DB", SYSFS{idProduct}=="005B", PROGRAM="/bin/sh -c
'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*}
$${K#*.}'", NAME="%c",&nbsp; MODE="666"<br>
<br>
# Spyder 2<br>
SYSFS{idVendor}=="085C", SYSFS{idProduct}=="0200", PROGRAM="/bin/sh -c
'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*}
$${K#*.}'", NAME="%c",&nbsp; MODE="666"<br>
<br>
# Huey<br>
SYSFS{idVendor}=="0971", SYSFS{idProduct}=="2005", PROGRAM="/bin/sh -c
'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*}
$${K#*.}'", NAME="%c",&nbsp; MODE="666"<br>
&nbsp;&nbsp;&nbsp; ----------------- cut here ---------------------<br>
<br>
Note that the "SYSFS==.." lines are one long line. You may need to run <b>/sbin/udevtrigger</b>,&nbsp;
<b>/sbin/udevcontrol reload_rules</b> or&nbsp; <span
 style="font-weight: bold;">/sbin/udevstart</span>
to get the new file
noticed.<br>
<h5><span style="color: rgb(204, 51, 204);">USB using udev, #2:</span></h5>
Other even more recent systems (Ubuntu ?) may work with a simplified
udev rule:<br>
<br>
&nbsp; ----------------- cut here ---------------------<br>
# udev rule to recognize instruments and put them in the plugdev
groupl<br>
<br>
# DTP20<br>
&nbsp;SYSFS{idVendor}=="0765", SYSFS{idProduct}=="d020",
GROUP="plugdev"<br>
<br>
# DTP92Q (not testedt)<br>
SYSFS{idVendor}=="0765", SYSFS{idProduct}=="d092",
GROUP="plugdev"<br>
<br>
# DTP94<br>
SYSFS{idVendor}=="0765", SYSFS{idProduct}=="d094",
GROUP="plugdev"<br>
<br>
# MonacoOPTIX (Same as i1 Display 1)<br>
SYSFS{idVendor}=="0670", SYSFS{idProduct}=="0001", GROUP="plugdev"<br>
<br>
# i1Display<br>
SYSFS{idVendor}=="0971", SYSFS{idProduct}=="2003",
GROUP="plugdev"<br>
<br>
# i1Pro<br>
SYSFS{idVendor}=="0971", SYSFS{idProduct}=="2000",
GROUP="plugdev"<br>
<br>
# Colorimtre HCFR<br>
SYSFS{idVendor}=="04DB", SYSFS{idProduct}=="005B",
GROUP="plugdev"<br>
<br>
# Spyder 2<br>
SYSFS{idVendor}=="085C", SYSFS{idProduct}=="0200", GROUP="plugdev"<br>
<br>
# Huey<br>
SYSFS{idVendor}=="0971", SYSFS{idProduct}=="2005", GROUP="plugdev"<br>
&nbsp;&nbsp;&nbsp; ----------------- cut here ---------------------<br>
<br>
You may want to refer to <a
 href="http://reactivated.net/writing_udev_rules.html">this document</a>
for more guidance on writing udev rules<br>
<br>
<h5><span style="color: rgb(204, 51, 204);">USB using HAL:</span></h5>
<span style="font-weight: bold;">Even newer Linux systems</span> may be
using HAL to set hardware attributes:<span style="font-weight: bold;"></span><span
 style="font-weight: bold;"><br>
</span><br>
<span style="font-weight: bold;">/usr/share/PolicyKit/policy/color-device-file.policy<br>
</span><br>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>
&lt;!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy
Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd"&gt;<br>
&lt;policyconfig&gt;<br>
&nbsp; &lt;action id="org.freedesktop.hal.device-access.color"&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;description&gt;Directly access color meter
devices&lt;/description&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;message&gt;System policy prevents access to the
color meter devices&lt;/message&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;defaults&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;allow_inactive&gt;no&lt;/allow_inactive&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;allow_active&gt;yes&lt;/allow_active&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/defaults&gt;<br>
&nbsp; &lt;/action&gt;<br>
&lt;/policyconfig&gt;<br>
<br>
<span style="font-weight: bold;">/usr/share/hal/fdi/10osvendor/19-color.fdi&nbsp;
</span>should
contain something like:<br>
<br>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>
&lt;deviceinfo version="0.2"&gt;<br>
&nbsp; &lt;!-- Color meter devices known to Argyll CMS<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FDI creation: Nicolas Mailhot
&lt;nicolas.mailhot at laposte.net&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with input from David Zeuthen and
Fr&Atilde;&copy;d&Atilde;&copy;ric Crozat --&gt;<br>
&nbsp; &lt;device&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;!-- HCFR association --&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.vendor_id" int="0x04DB"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Display colorimeter --&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.product_id"
int="0x005B"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;append
key="info.capabilities" type="strlist"&gt;access_control&lt;/append&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.type" type="string"&gt;color&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.file"
type="copy_property"&gt;linux.device_file&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;!-- MonacoOPTIX --&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.vendor_id" int="0x0670"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Eye-One Display 1 - display
colorimeter --&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.product_id"
int="0x0001"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;append
key="info.capabilities" type="strlist"&gt;access_control&lt;/append&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.type" type="string"&gt;color&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.file"
type="copy_property"&gt;linux.device_file&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;!-- X-Rite --&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.vendor_id" int="0x0765"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- DTP20 "Pulse" - "swipe" type
reflective spectrometer, that can be used un-tethered. --&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.product_id"
int="0xd020"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;append
key="info.capabilities" type="strlist"&gt;access_control&lt;/append&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.type" type="string"&gt;color&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.file"
type="copy_property"&gt;linux.device_file&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- DTP92Q - CRT display
colorimeter. (Not tested) --&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.product_id"
int="0xd092"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;append
key="info.capabilities" type="strlist"&gt;access_control&lt;/append&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.type" type="string"&gt;color&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.file"
type="copy_property"&gt;linux.device_file&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- DTP94 "Optix XR" or "Optix XR2"
- display colorimeter --&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.product_id"
int="0xd094"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;append
key="info.capabilities" type="strlist"&gt;access_control&lt;/append&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.type" type="string"&gt;color&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.file"
type="copy_property"&gt;linux.device_file&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;!-- ColorVision --&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.vendor_id" int="0x085C"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Spyder 2 - display colorimeter
--&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.product_id"
int="0x0200"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;append
key="info.capabilities" type="strlist"&gt;access_control&lt;/append&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.type" type="string"&gt;color&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.file"
type="copy_property"&gt;linux.device_file&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;!-- Gretag-Macbeth --&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.vendor_id" int="0x0971"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Eye-One Pro - spot and "swipe"
reflective/emissive spectrometer --&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.product_id"
int="0x2000"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;append
key="info.capabilities" type="strlist"&gt;access_control&lt;/append&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.type" type="string"&gt;color&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.file"
type="copy_property"&gt;linux.device_file&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Eye-One Display - display
colorimeter --&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match key="usb_device.product_id"
int="0x2003"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;append
key="info.capabilities" type="strlist"&gt;access_control&lt;/append&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.type" type="string"&gt;color&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.file"
type="copy_property"&gt;linux.device_file&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;!-- Huey - display colorimeter<br>
&nbsp;&nbsp;&nbsp;&nbsp; The Huey falsely declares itself as HID device
--&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;match key="@info.parent:usb_device.vendor_id"
int="0x0971"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match key="info.capabilities"
contains="usbraw"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;match
key="@info.parent:usb_device.product_id" int="0x2005"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;append
key="info.capabilities" type="strlist"&gt;access_control&lt;/append&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.type" type="string"&gt;color&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge
key="access_control.file"
type="copy_property"&gt;linux.device_file&lt;/merge&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/match&gt;<br>
&nbsp; &lt;/device&gt;<br>
&lt;/deviceinfo&gt;<br>
<br>
<span style="font-weight: bold;"><br>
<br>
</span>
<p>&nbsp;
<br>
&nbsp;
<br>
&nbsp;
<br>
&nbsp;
<br>
&nbsp;
<br>
&nbsp;
</p>
</body>
</html>