- I've got the newest driver code from the author Klaus (firstname.lastname@example.org).
But you may also go to
http://www.wiener-d.com and click "Download" under "support" (there you
may have to register with them first) and then click "PCI-CAMAC (PCIADA - CC32)"
to find their latest driver (which may not be as new as what Klaus can give
- Go to the sub-directory "pcicc32-x.x/".
- Do (for example)
In new Linux (such as SL5.3 etc.) but not so new
pcicc32 driver (such as pcicc32-6.9), driver/Makefile didn't get the correct
"VERSION". You need to include "VERSION=2.6.18-164.11.1.el5PAE" or just change the driver/Makefile to get VERSION just by "shell uname -r" (instead of the complicated method which doesn't work any more).
- As "root", do (for example):
make KERNEL_LOCATION=/usr/src/kernels/2.6.18-164.11.1.el5PAE-i686 install
This would install various libcc32.so*, libcc32.h & pcicc32.h,
pcicc32_make_devices and pcicc32.ko as well as put a few lines into /etc/modprobe.conf
(see "Point 9" below for SL6.x systems).
Consistent with our current softwares, I have actually changed the location of
pcicc32.h & libcc32.h to be under /usr/local/include
and libcc32.so* to /usr/local/lib.
And I also put in local.conf (which has one line of "/usr/local/lib") in
/etc/ld.so.conf.d/ so that they'll be loaded. This is of course
not needed if you leave .so files in /usr/lib.
In newer SL6.x systems,
the /etc/modprobe.conf file is deprecated and I just "move" this file to
- To allow the system to load the pcicc32 module, I have created the
pcicc32 file under /etc/init.d with the line "modprobe pcicc32".
I then link the file to S68pcicc32 (the name S68.... is kind of random)
/etc/rc3.d/ and /etc/rc5.d so that it'd load in under the init levels 3 and
- If everything works,
- "/sbin/lsmod" would see pcicc32;
- /dev/cc32_1(among others) is created;
- /proc/pcicc32 would like:
pcicc32 information. Version 6.6 of Oct 8 2005 from Klaus Hitschler.
Interfaces found : 1
--- 1 ---------------
LCR phys/virt/size : 0xdcef7f00/0xf89caf00/128
User phys/virt/size : 0xdcef8000/0xf8bc0000/32768
Irq : 201
CC32 is or was : (software) connected.
Module-Number : 1
FPGA-Version : 4
IrqCount : 0
Pending IrqStatus : None
- "/usr/local/bin/pcicc32_make_devices" creates three new device nodes
(/dev/cc32_0, /dev/cc32_1 & /dev/cc32_2) 'on stock'. The numbers "0" or
"1" or "2" corresponds to the module number set by the jumpers on the CC32
module. With this, it is possible to address various CC32 modules. The
PCIADA cards are not distinguishable. As shown in the above
/proc/pcicc32, we are using "/dev/cc32_1".
- During testing in the test module of "pcicc32-6.12/test", I see error
./pcicc32_test++: error while loading shared libraries: /usr/local/lib/libcc32.so.3:
cannot restore segment prot after reloc: Permission denied
This is due to "SElinux" being enforced. So, I've registered the
relevant libraries in the security module:
chcon -t texrel_shlib_t /usr/local/lib/libcc32.so.3
chcon -t texrel_shlib_t /usr/local/lib/libcc32.so
chcon -t texrel_shlib_t /usr/local/lib/libcc32.so.0.0
After that, the pcicc32_test++ works fine. ( pcicc32_test
doesn't show a message at the end that it should show like pcicc32_test++,
which makes you puzzle a bit. )
2014-2-6: The factory default (jumper) for the CC32 is
set as "module 1", ie.
/dev/cc32_1. For other module nos., you need to do:
pcicc32_test -d=/dev/cc32_2 (for module no. 2)
This time, "pcicc32_test" at least as many message as "/pcicctest_test++"
- In SL6.x, I have needed to do two more things:
- Using the pcicc32-6.12.tar.gz (the latest/last from Klaus Hitschler), I've needed to add the following line near the top of fops.c :
- When I did "make ... install", it complained about not finding /etc/modprobe.conf and created it. This is because the newer SL6.x doesn't use /etc/modprobe.conf anymore but files are put into /etc/modprobe.d. So, I do
mv /etc/modprobe.conf /etc/modprobe.d/pcicc32.conf
The original installation documentation is here.
I've also copied the "User Manual" from
here. Ask Klaus (email@example.com)
for help. He is the author of the driver and he is very responsive and
keen to solve problems.
Last updated by Kin Yip on Nov. 15, 2016.