% UFO camera admin manual
%

\chapter{Administration manual}

The UFO camera consists of: 
\begin{itemize}
\item Image sensor module
\item Camera controller board, including power supply, passive PCI backplane
\item PCI Express extender with client and host modules
\item Pci-tool package
\item Camera decoding package
\item High-speed storage library
\item Universal camera access library
\end{itemize}

\section{Prerequisites, Requirements}

Interface for lenses is C-mount.

Software packages


\section{Connecting the hardware, Power, Computer interface}

% TODO Describe the hardware setup


\section{Installation of the camera drivers and tools}

The software needs to be installed in the order libufodecode, fastwriter, pcitool and libuca. The major dependencies are:
\begin{itemize}
\item GNU C compiler with glibc and other mayor system libraries
\item The Linux kernel development files
\item XFS development files
\item glib2 library
\end{itemize}
    

\subsection{Camera format decoder -- libufdecode}
\begin{verbatim}
cmake .
make 
make install
\end{verbatim}


In case of problems it is possible to disable SSE support, in this case cmake should be run with \verb/HAVE_SSE=OFF/ parameter
\begin{verbatim}
cmake -D "HAVE_SSE=OFF" .
\end{verbatim}


\subsection{Camera format decoder -- libufdecode}
\begin{verbatim}
cmake .
make 
make install
\end{verbatim}


\subsection{Camera driver -- pcitool}
The building of pcitool consists of 3 steps. The pcitool userspace may be simply installed with cmake as other applications.
\begin{verbatim}
cmake .
make
make install
\end{verbatim}

To build kernel, module:
Change to the folder \verb/driver/ and adjust  \verb/PCIE_IPECAMERA_DEVICE_ID/ in the file pciDriver.h if required (you may check actual device id with the tool lspci).
\begin{verbatim}
make
make install
depmod -a
modprobe pciDriver
\end{verbatim}
To autoload driver, copy \verb|misc/50-pcidriver.rules| into the \verb|/etc/udev/rules.d| directory



\subsection{Universal camera layer -- libuca}

Libuca is an abbreviation for Unified Camera access. It is a library to access two-dimensional pixel detectors most commonly called cameras. It gives the user a general interface to a variety of different cameras and camera types. It is used to configure them via a property based
interface and acquire images.

Installation instruction from libuca/INSTALL.

\begin{verbatim}
Simple install procedure
========================

  $ tar xfz libuca-0.x.tar.gz
  $ cd libuca-0.x
  $ mkdir build
  $ cd build/
  $ cmake ..
  $ make

  [ Become root if necessary ]
  $ make install


Requirements
============

libuca requires CMake and pkg-config for building libraries and accompanying
tools. Information about CMake can be found at:

    http://www.cmake.org

and pkg-config at:

    http://www.freedesktop.org/software/pkgconfig

libuca depends on the GObject library for object oriented programming.
Information about this library can be found at:

    http://developers.gnome.org/gobject/stable

Each specific camera needs a camera SDK and/or a driver:

    - UFO camera: pcilib
    - pco.edge, pco.4000, pco.dimax cameras: SiliconSoftware menable IV driver
      and SDK as well as the libpco wrapper.

The control tools require Gtk+ GUI toolkit. Information is available at:

    http://developer.gnome.org/platform-overview/


Building the Library
====================

On Linux, libuca uses the CMake build system and pkg-config for dependency
detection. The normal procedure to build this library is to create an empty
build directory:

    $ mkdir build/ && cd build

configure the project using CMake:

    $ cmake ../

and compiling the library with make:

    $ make
    $ make install

Options to the build process can be passed to the system when configuring:

    $ cmake ../ -DCMAKE_INSTALL_PREFIX=/usr

or via configuration tools like `ccmake`.
\end{verbatim}


