README.TXT Driver File Contents (ueye-setup-2.40.0003.5.zip)

#########################################################

      IDS - Imaging Development Systems GmbH

        uEye Driver installation

#########################################################

   2004 - 2007, Imaging Development Systems GmbH


------------------
     SUMMARY
------------------

1 - REQUIREMENTS
2 - INSTALLED FILE STRUCTURE
3 - QUICK START (FOR ADVANCED USERS)
4 - DETAILED INSTALLATION
5 - THE DEMONSTRATION PROGRAM
6 - EVENT HANDLING UNDER LINUX
7 - CURRENT API STATUS
8 - UEYE LINUX DRIVER FAQ
9 - COMPATIBILITY LIST



1 - REQUIREMENTS
----------------

SOFTWARE REQUIREMENTS
 - 2.6.xx LINUX kernel (min. 2.6.9)
 - libc/glibc, the standard C Library (min. v2)
 - gcc, the GNU Compiler Collection (min. v3.4)
 - POSIX threads library (POSIX threads enabled libc)
 - bash (Bourne again shell) or sh to run the script
 - QT and KDE (including sources) for the demo program

HARDWARE REQUIREMENTS
 - USB 2.0 support for the kernel
 - a connected uEye camera

OTHER REQUIREMENTS
 - You will need ROOT rights in order to install, and load
   the kernel module. You will also need these rights in
   order to modify system wide scripts to automatically
   load the kernel module on startup and specify the shared
   library location in /etc/ld.so.conf.
 - You must copy the files on a read/write enabled support.
   For example, into /usr/local/src. The install scripts
   needs a writable place to compile the driver.

The requirements are also automatically checked by the
install script, when the installation process is started.

NOTE 1:
 Compiling the kernel driver is needed because the Linux
 kernel does not provide a binary driver interface. Different
 dependencies (compiler version and kernel version) do not
 allow to distribute a binary driver that can be loaded by
 all Linux kernels.

NOTE 2:
 The compiler used to compile the kernel module has to be of
 the same version as the compiler that has been used to
 compile the running kernel.
 If you installed a new compiler and removed the old one,
 then you certainly will have to recompile the kernel before
 installing the uEye driver.



2 - INSTALLED FILE STRUCTURE
----------------------------

The created files will be installed in following directories:


/lib/modules/.../kernel/media/video/ueye_usb-driver.ko    The Linux kernel module
/usr/lib/libueye_api.so                                   The uEye shared library
/usr/src/ids/uEye/                                        sources for the demo program
/usr/include/uEye.h                                       The development header file
/usr/share/doc/uEye/                                      PATH to the documentation files



3 - QUICK START (FOR ADVANCED USERS)
------------------------------------

1 - copy all the files in a directory on the hard disk
    (you need write access to it in order to decompress
    and compile the driver)

2 - go to the directory you copied the files into and
    run the setup program script by typing
    $> sh ./ueye-setup*.run

3 - if any problems occurred, the common problems section
    below or the generated report.log file may include a
    hint to solve them.
    If not contact your local distributors support and
    submit the report.log file (in the uEye setup
    directory).

4 - If you are not using hotplug modify the start scripts
    to load the kernel module automatically (insmod
    ueye_usb-driver.ko) on startup.
    You may also have to modify your udev config if used.
    Eventually you will also need to setup the path to
    the header file and the path to the shared library.



4 - DETAILED INSTALLATION
-------------------------

1 - copy all the files in a directory on the hard disk
    (you need write access to it in order to decompress
    and compile the driver) for example into /usr/local/src.

2 - If you are in a graphical environment, open a console by
    using the appropriate menus.

3 - Get the superuser rights by typing: (you will of course
    also need the password)
    $> su --login

4 - Change to the directory where you copied the files into:
    $> cd /usr/local/src

5 - Run the setup program script by typing:
    $> sh ./ueye-setup*.run

6 - Now the installation starts. Respond to the questions
    that may appear on the screen. The installation process
    may take some time. At the end, you will be informed if
    the installation was successful or not.

7 - If the installation was unsuccessful, have a look to the
    generated report.log file /usr/local/src/report.log as
    well as the faqs section in this document, which may help
    you solving the problem.
    If you dont succeed please send the log file to your local
    distributor or the ids support (support@ids-imaging.de).

8 - If the installation was successful, then you may want to
    change your start scripts to automatically load the kernel
    module on startup. Refer to the documentation coming with
    your LINUX distribution in order to make this change.
    "insmod ueye_usb-driver.ko" -> loads the kernel module into the kernel
    "rmmod ueye_usb-driver.ko"  -> removes the kernel module from the kernel
    "lsmod"                     -> dumps a list of all modules currently loaded



5 - THE DEMONSTRATION PROGRAM
-----------------------------

The demonstration program is there to show how to use the API in
order to make following actions:
 - Board detection and initialization
 - Setup memory for capturing
 - Setup the camera video mode
 - Modify the image parameters
 - Making snapshots
 - Making snapshots using the optional MemoryBoard
 - Using Events
 - Display the video in a QT based application



6 - EVENT HANDLING UNDER LINUX
------------------------------

Events currently not supported:
            IS_SET_EVENT_DEVICE_RECONNECTED
            IS_SET_EVENT_REMOVE

Event functions are using internal conditional variables under Linux.
To use a event it must be first enabled using the EnableEvent.
To wait for an event is_WaitEvent is added, which doesn't exist under
Windows OS.

InitEvent resets while ExitEvent signals a given event, this can be used for manual
setting and reseting  an event.

e.g.:
          is_EnableEvent  (hCam, IS_SET_EVENT_FRAME);        // enable frame event
          is_InitEvent    (hCam, IS_SET_EVENT_FRAME);        // reset the frame event
          is_FreezeVideo  (hCam, IS_DONT_WAIT);              // start a capture with don't wait
          is_WaitEvent    (hCam, IS_SET_EVENT_FRAME, 1000);  // wait for a new frame with timeout of 1000ms



7 - CURRENT API STATUS
----------------------

The current api version shipped with this setup package is 2.40.0003.
The functional range is described in the sdk documentation and is much the same as in
windows version with folowing exceptions:


7.1 - Functions currently not available for linux
-------------------------------------------------

There are a few functions (mainly gui related ones) that are not accessible in the linux
version of this uEye sdk release.
Api functions not implemented in this version:

User Interface: (currently not supported)
---------------
  IDSEXP   is_RenderBitmap           (HIDS hf, INT nMemID, HWND hwnd, INT nMode);
  IDSEXP   is_GetDC                  (HIDS hf, HDC* phDC);
  IDSEXP   is_ReleaseDC              (HIDS hf, HDC hDC);
  IDSEXP   is_UpdateDisplay          (HIDS hf);
  IDSEXP   is_SetDisplayMode         (HIDS hf, INT Mode);
  IDSEXP   is_SetDisplaySize         (HIDS hf, INT x, INT y);
  IDSEXP   is_SetDisplayPos          (HIDS hf, INT x, INT y);
  IDSEXP   is_SetHwnd                (HIDS hf, HWND hwnd);
  IDSEXP   is_SetParentHwnd          (HIDS hf, HWND hwnd);
  IDSEXP   is_SetUpdateMode          (HIDS hf, INT mode);
  IDSEXP   is_GetColorDepth          (HIDS hf, INT* pnCol, INT* pnColMode);

  IDSEXP   is_LoadParameters         (HIDS hf, char* fileName);
  IDSEXP   is_SaveParameters         (HIDS hf, char* fileName);

DirectDraw: (not supported)



8 - UEYE LINUX DRIVER FAQ
-------------------------

8.1 Compiling the kernel module
-------------------------------
Q: Installation aborts whith failure "*** No rule to make target `modules'.  Stop."
A: You need the headers of the installed kernel in order to compile the kernel driver module.
    Install the kernel headers and try again.

8.2 Loading the kernel module
-----------------------------
Q: Using FC5 Linux, insmod as well as modprobe failes with error "unknown symbol".
A: There is a known issue in the FC5 2054 kernel, which prevents loading nongpl drivers.
    Please update your kernel to a build newer than 2054.

Q: Using FC6 Linux, loading the module failed because of mismatching version magic.
A: The FC6 installer may have installed the i586 kernel on i686 hardware in error.
    Replace this kernel with the i686 version:  yum remove kernel-'uname -r'.i586
                                                yum install kernel-'uname -r'.i686
                                                yum install kernel-devel-'uname -r'.i686

Q: When loading the module several warnings are sysloged, like "Symbol usb_register_driver
    is being used by a non-GPL module, which will not be allowed in the future".
A: With kernel 2.6.17, the use of some usb core functions was scheduled to be exclusivly
    allowed for drivers under GPL licence. Unfortunatly our driver is closed source and
    therefore non-GPL (which is claimed by MODULE_LICENSE() macro in uEye_usb.c). Unless
    we cant change this without make it open source, please use a kernel allowing access
    to these symbols (like prior 2.6.17 ones does).

8.3 Camera PnP
--------------
Q: Great, I've succeeded in compiling and loading the kernel module at last, but as soon as I
    plug in a uEye camera, I get a kernel 'Oops'. The EIP points to "uEye_HandleStartDevice".
A: Take a look back to the report.log file created during installation. If you find an entry
    saying "Warning: Could not retrieve CONFIG_REGPARM settings!" the installation program may
    have linked the wrong object file! The installation program tries to determine the current
    kernel configuration by looking to a "config-'uname -r'" file in your "/boot" directory or
    alternatively for a ".config" or "config.gz" file in your kernel source directory
    (/usr/src/'uname-r' or /usr/src/kernels/'uname -r' for fedora).
    Please ensure one of this files exist (maybe you have to call 'make cloneconfig'), in the
    specified directory (place a symlink if necessary).

Q: Ok, all things are working fine, but there is still an error message from the driver. It says
    "probe of x-x:x.x failed with error" at syslog level, every time a camera is plugged in.
A: Dont worry. We are using a two stage initialisation process. Failing the probe function causes
    the usb subsystem to recall our driver at second stage.

8.4 Camera operation
--------------------
Q: The LED on the camera flashes green and a call to is_GetNumberOfCameras or is_GetCameraList
    returns a value greater than zero. But when I try to open a camera is_InitCamera returns
    IS_ALL_DEVICES_BUSY (Code: 120).
A: Most likely the device file nodes, named "/dev/uEye_usb0" to "/dev/uEye_usb'X'", are missing
    or the rights for them are misset. During installation these files are created with a call to
    mknod. If you are using udev they will be gone after reboot. In this case the directory
    "/etc/udev/rules.d" should contain a file that provides a rule to create the correct device
    nodes.


9 - COMPATIBILITY LIST
----------------------

The Linux operation system is one of the most widely ported, running on a wide range of architectures
and provided over many distributions.
Although we are trying to be compatible among the whole range of kernel versions and distributions
there is no guarantee that the uEye driver is working on a specific untested combination.
Below there's a list of tested and succeeded platforms and distributions:
    Distribution            Kernel                  Architecture /Processor                uEye driver
 /etc/<distr>-release     'uname -r'           'uname -i' / 'uname -m' (/proc/cpuinfo)
Ubuntu 7.04             2.6.20-15-386           unknown / i686 (Intel Pentium 4 2.80GHz)    2.40.03.5
Knoppix 5.2             2.6.19.5                unknown / i686 (Intel Pentium 4 2.80GHz)    2.40.03.5
Fedora Core release 6   2.6.19-1.2895.fc6       i386 / i686 (Intel Pentium 4 2.80GHz)       2.40.03.5
Fedora Core release 6   2.6.18-1.2798.fc6       i386 / i686 (Intel Pentium 4 2.80GHz)       2.40.03.5
openSUSE 10.2 (i586)    2.6.18.8-0.1-default    i386 / i686 (Intel Celeron 2.00GHz)         2.40.03.5
Ubuntu 6.10             2.6.17-11-386           i386 / i686 (Intel Pentium 4 2.80GHz)       2.21.02.4
Fedora Core release 5   2.6.17-1.2174_FC5       i386 / i686 (Intel Pentium 4 2.80GHz)       2.21.02.4
SUSE LINUX 10.1 (i586)  2.6.16.27-0.6-default   i386 / i686 (Intel Pentium 4 2.80GHz)       2.21.02.2
Ubuntu 6.06.1 LTS       2.6.15-27-k7            unknown / i686 (AMD Athlon XP 1800+)        2.21.02.2
Ubuntu 6.06.1 LTS       2.6.15-26-386           unknown / i686 (Intel Pentium 4 2.80GHz)    2.21.02.2
SUSE LINUX 10.0 (i586)  2.6.13-15.11-default    i386 / i686 (Intel Celeron 2.00GHz)         2.40.03.1

The uEye driver could also be ported to other platforms than the common x86 PC. If you want to use the
uEye on such a system, please ask for a special version.
Till now we succeed in porting to following systems:
ADS Debian              2.6.17.9-ep93xx-pxa-ads1 arm / arm (Cirrus EP9315)                  2.21.02.arm
DENX ELDK 4.0           2.6.15                  ppc / ppc   (G2_LE)                         2.21.02.ppc
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web1, load: 1.39