Wiener pci drivers:

Wiener PCIADA installation

  • First check the firmware with the plxeep.exe - on some motherboards (pundit) this does not work and you have to change the motherboard.

Installation of drivers

 sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package
 sudo apt-get build-dep linux

* 10.04:
chmod a+x debian/scripts/misc/*
chmod a+x /home/f9daq/linux-2.6.32/debian/scripts/misc/../config-check
  • Ubuntu linux kernel source installation:
 apt-get source linux-image-$(uname -r)
 cd linux-2.6.27/
 chmod a+x debian.master/scripts/misc/*
 debian/rules updateconfigs
 fakeroot debian/rules clean
 AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules binary-generic 
  • wienerpciada.iso -> plxeep.exe: upload the correct firmware (CAMAC/VME)
  • driver: pcicc32-6.9.tgz
  • cd pcicc32-6.9/driver
  • edit Makefile and adjust the kernel source path
  • make
  • sudo make install
  • sudo ./pcicc32_load 1
  • lsmod | grep pcicc32
  • connect module
  • compile and run test program pcicc32-6.9/test/pcicc32_test

Wiener PCIADA installation from http://www.c-ad.bnl.gov/kinyip/AGS-CNI/pcicc32.htm

  1. I've got the newest driver code from the author Klaus (klaus.hitschler@gmx.de). 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 you).

  1. Go to the sub-directory "pcicc32-x.x/".

  1. Do (for example)

make KERNEL_LOCATION=/usr/src/kernels/2.6.18-164.11.1.el5PAE-i686

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).

  1. 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. 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.

  1. 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 5.

  1. 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

  1. "/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".

  1. During testing in the test module of "pcicc32-6.12/test", I see error message:

./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. )

The original installation documentation is here. I've also copied the "User Manual" from here. Ask Klaus (klaus.hitschler@gmx.de) 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 Mar. 19, 2010.

Public Relations Sound Generation from scintillation detectors

rok@surla:~/siggen-2.3.10$ ./tones :50 1000,2000@-6 2000 3000 4000 5000 6000

-- Main.rok - 19 Mar 2010

Topic attachments
I Attachment Action Size Date Who Comment
pcicc32-6.9.tgztgz pcicc32-6.9.tgz manage 592 K 19 Mar 2010 - 11:14 UnknownUser  
wienerpciada.isoiso wienerpciada.iso manage 1 MB 19 Mar 2010 - 11:15 UnknownUser  
This topic: Main > MainLabModules > PhdetLab
Topic revision: 11 Feb 2014, rok
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback