gclib  396
Communications API for Galil controllers and PLCs
 All Data Structures Files Functions Variables Typedefs Macros Pages
Red Hat 6 & CentOS 6 Linux

Tested versions

This version of Linux has x64/AMD64 Support Only. Contact Galil if another version is required for an application.

See the installation page for supported versions.


On Red Hat, gclib is distributed in an RPM repository. The following steps can be performed to install gclib.

Download Galil's repository information

This step installs Galil's RPM repositories and only needs to be done once.

Point a browser at http://www.galil.com/sw/pub/rhel/6/galilrpm-2-1.noarch.rpm and install the rpm.

Install Package

Install gclib package, approve "Installed size" and "Importing GPG key", if prompted.

# yum install gclib

Uninstall Package

To uninstall gclib.

# yum remove gclib

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


# 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


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.

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

Offline pdf

There may be a pdf shipped in the package. The following allows viewing of the pdf docs from the installation.

$ tar -xzf /usr/share/doc/gclib/gclib_doc.tar.gz  gclib_132.pdf
$ evince gclib.pdf