| gclib 1.34.15 Communications API for Galil controllers and PLCs |

Red Hat 7 & CentOS 7 Linux

# Tested versions

See the installation page for supported versions.

# Installation

Note
  Adding the package repository is a prerequisite to continue.

## Install

### Install gclib and gcapsd (recommended)

    # yum install gclib gcapsd

Approve Installed size and Importing GPG key, if prompted.

### Galil Connect

The nss-mdns package must be installed from the EPEL repository in order to use Galil Connect.

To use Galil Connect, follow the instructions linked below to enable EPEL:

https://docs.fedoraproject.org/en-US/epel/

Then use the following command to install nss-mdns:

    $ sudo yum install nss-mdns

## Uninstall

If gclib is to be removed from the system, the following commands may be used.

    # yum remove gclib gcapsd

## Upgrading

To upgrade gclib to the newest release, use the following command.

    # yum upgrade gclib gcapsd

## List All Versions

Galil keeps older versions of gclib and gcapsd available for users. To list all versions use the following command.

    $ yum list gclib gcapsd --showduplicates

## Installing Older Versions

Warning
  When using gcaps, a compatible pairing of gcaps and gclib must be used. Galil maintains this compatibility with installations and upgrades. Installing GDK will also install compatible versions of gclib and gcaps. When installing older versions manually, it is the user's responsibility to ensure compatible versions.

Append the desired version's information after the package name.

    # yum install gclib-<version> gcapsd-<version>

### An Example

On the developer's machine, gclib is installed with the current version.

    # yum install gclib gcapsd

After installation, the versions can be queried.

    $ yum list installed gclib gcapsd
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    * base: centos-distro.1gservers.com
    * epel: sjc.edge.kernel.org
    * extras: mirror.shastacoe.net
    * updates: mirrors.oit.uci.edu
    Installed Packages
    gcapsd.x86_64                                          194-1                                          @galil
    gclib.x86_64                                           506-1                                          @galil

On the deployment machine, the precise versions can now be specified.

    # yum install gclib-506-1 gcapsd-194-1

If a newer version was previously installed, downgrade with the following.

    # yum downgrade gclib-506-1 gcapsd-194-1

# Serial Ports and USB

If access to the serial ports or USB (e.g. DMC-4103) is desired through gclib, the following will provide steps to join the correct access group. If using USB, be sure the controller is powered and the usb is plugged in before beginning.

## Determine group with access

    $ ls -l /dev/ttyUSB* /dev/ttyS*
    crw-rw----. 1 root dialout   4, 64 Mar  3 16:39 /dev/ttyS0
    crw-rw----. 1 root dialout   4, 65 Mar  3 16:39 /dev/ttyS1
    crw-rw----. 1 root dialout   4, 66 Mar  3 16:39 /dev/ttyS2
    crw-rw----. 1 root dialout   4, 67 Mar  3 16:39 /dev/ttyS3
    crw-rw----. 1 root dialout 188,  0 Mar  6 11:08 /dev/ttyUSB0

In the above listing, dialout is the group that needs to be joined. uucp is another common group that may be listed.

## Add the desired username to the group.

    $ sudo gpasswd -a username dialout
    [sudo] password for username:
    Adding user username to group dialout

Log out and back in for change to take effect.

    $ groups
    username wheel dialout

gclib can now connect to serial and usb devices from user username.

# PCI Controllers

If using a Galil PCI controller, the PCI driver must be installed.

## Install prerequisites

    # yum update kernel

### Reboot

    # yum install kernel-devel-$(uname -r)
    # yum install kernel-headers-$(uname -r)
    # yum install gcc

## Extract source and build driver

    $ tar -xf /usr/share/doc/gclib/src/gclib_pci.tar.gz
    $ make

## Copy module and add to kernel

    # cp galilpci.ko /lib/modules/$(uname -r)
    # depmod
    # modprobe galilpci

## Add galil group for access to PCI

    # groupadd -f -K GID_MIN=100 -K GID_MAX=499 galil
    # cp 90-galilpci.rules /etc/udev/rules.d/
    # udevadm control --reload-rules
    # udevadm trigger
    # usermod -a -G galil username  #exchange "username" with actual user's name

Logout and back in. The PCI hardware is now available for access.

    $ ls -l /dev/galil*
    crw-rw---- 1 root galil 10, 56 Jun  9 11:07 /dev/galilpci0
    $ echo -e "\x12\x16\r" > /dev/galilpci0
    $ cat /dev/galilpci0
    DMC1846 Rev 1.1a
    :

# Documentation

The documentation is left as a tarball to minimize disk usage. The latest release version of the user manual is available at the following link.

- http://www.galil.com/sw/pub/all/doc/gclib/html/

## Offline html

The following allows viewing of the html docs from the installation.

    $ tar -xzf /usr/share/doc/gclib/gclib_doc.tar.gz html
    $ firefox html/index.html