You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Test Plan

TestPlanNOV1.txt
    CBXFEL Digitizer Test Plan
    Chris Ford <caf@slac.stanford.edu>
    Nov 1, 2022

------- Phase 1 ---------------------------------------------------

Receive Teledyne documentation and software

Receive charge code

Work with Thuy to install digitizer and timing hardware in 2U crate
 - Building 034
 - Remote access
 - root or sudo access

------- Phase 2 ---------------------------------------------------

Verify basic compatibility with SLAC's Linux environment
 - Teledyne kernel module (insmod)
 - Teledyne library (build and run example C program)

Verify reading a DC voltage

------- Phase 3 ---------------------------------------------------

Connect SLAC trigger
Verify synchronous operation at 1 Hz
Verify synchronous operation at 120 Hz
TestPlanNOV29.txt
    CBXFEL Digitizer Test Plan
    Chris Ford <caf@slac.stanford.edu>
    Nov 29, 2022

------- Phase 1 --(complete)---------------------------------------

Receive Teledyne documentation and software

Receive charge code

Work with Thuy to install digitizer and timing hardware in 2U crate
 - Building 034
 - Remote access
 - root or sudo access

Verify that card is recognized by Linux using lspci
(Note: we did this with 1U cpu and CentOS 7)

------- Phase 2 --(in progress)------------------------------------

Verify basic compatibility with SLAC's Linux environment
 - obtain GPL'd kernel module  (complete)
 - build kernel module in SLAC LinuxRT environment (in progress)
 - Teledyne kernel module: insmod
 - Teledyne library: build and run ADQAPI_simple_example.c

Verify reading a DC voltage

------- Phase 3 ---------------------------------------------------

Connect trigger to SLAC EVR (requires 2U cpu)

Verify synchronous operation at 1 Hz

Verify synchronous operation at 120 Hz

------- Open Issues -----------------------------------------------

1. Missing compatible power cable for 2U 8201
2. Teledyne library depends on libusb even though ADQ14 is pci

Advantech Documents click here

Teledyne Documents click here

Teledyne README
INSTALLATION
============
To install the SDK packages, enter the "packages" directory and find the linux
distribution and processor architecture you are using.  Specific instructions
for each distribution follows below.
After installing all necessary packages, reboot the system so that udev reads
the updated configuration and the driver loads.
**Note** In earlier versions there was a package called 'adqupdater' which is
now replaced with the 'adqtools' package.
Ubuntu and Debian
-----------------
Install delivered versions of our packages using:
    dpkg -i packagename
Use the following order:
 - spd-adq-pci-dkms (not needed for USB devices)
 - libadq0
 - adqtools
OpenSUSE and SUSE Linux Enterprise
----------------------------------
Install these packages using:
    zypper install packagename
Use the following order:
 - make
 - kernel-devel
 - kernel-source
 - gcc
The version of kernel-devel and kernel-source must match your current
kernel. Install delivered versions of our packages using:
    rpm -U packagename
Use the following order:
 - dkms
 - spd-adq-pci-dkms (not needed for USB devices)
 - libadq0
 - adqtools
OpenSUSE Leap 15.0 or later
---------------------------
Install these packages using:
    zypper install packagename
Use the following order:
 - make
 - kernel-devel
 - kernel-source
 - gcc
 - dkms
The version of kernel-devel and kernel-source must match your current
kernel. Install delivered versions of our packages using:
    rpm -U packagename
Use the following order:
 - spd-adq-pci-dkms (not needed for USB devices)
 - libadq0
 - adqtools
Fedora 19, 20 and 21
--------------------
Install the dkms package using:
    yum install dkms
Install delivered versions of our packages using:
    rpm -U packagename
Use the following order:
 - spd-adq-pci-dkms (not needed for USB devices)
 - libadq0
 - adqtools
Fedora 22 and higher
--------------------
Install the dkms package
    dnf install packagename
Install delivered versions of our packages using:
    dnf install packagename
Use the following order:
 - spd-adq-pci-dkms (not needed for USB devices)
 - libadq0
 - adqtools
CentOS / Red Hat Enterprise Linux / Scientific Linux
----------------------------------------------------
**Note** For RHEL6, use CentOS6 packages.
Install these packages using:
    yum install packagename
Use the following order
 - make
 - kernel-devel
 - gcc
The version of kernel-devel must match your current kernel.
Install delivered versions of our packages using:
    rpm -U packagename
Use the following order:
 - dkms
 - spd-adq-pci-dkms (not needed for USB devices)
 - libadq0
 - adqtools
Device access permissions
=========================
ADQ devices show up as `/dev/adq_pcie_` and `/dev/adq_usb_`, the default udev
setting is to add read/write access to the user group "adq".  The libadq0
package will create a user group called "adq" if that group doesn't already
exist in the system.  To be able to access the devices, in order to add your
user to the "adq" group use the command:
    usermod -a -G adq username
The user will have to logout and login again for the changes to take effect.
Kernel module version compatibility
===================================
The PCIe kernel module supports kernel versions from 2.6.32 and forward, however
kernel version 3.8.0 or newer is recommended.
The PCIe kernel module is not signed and thus will not load if your kernel uses
"secure boot".  If "secure boot" is enabled, it will need to be disabled before
the kernel module can be loaded. Refer to your distribution documentation on
how to do this.
API user guide
==============
The API user guide is included as a .pdf document in the "doc" directory. All
API functions are described there.
Example code
============
Example code for different languages can be found in the "examples" directory.
C/C++ examples
--------------
C/C++ example code is compiled using Make by going to the directory with the
Makefile and running "make". To setup include paths and defines for the
compiler "pkg-config" is used in the C/C++ examples. If not already installed,
pkg-config can be installed using the appropriate distribution package tools.
Python examples
---------------
The Python examples are written for Python 3. They use the "ctypes" module to
call ADQAPI functions and convert Python data structures to the appropriate
format.

Software Installation

Available Teledyne Packages
# ls digitizer/ADQ_SDK_linux_r65383/packages/
CentOS_7/           Fedora_34/          SLE_15/
CentOS_8/           many/               Ubuntu_16.04/
CentOS_8_Stream/    openSUSE_Leap_15.2/ Ubuntu_18.04/
Debian_10/          openSUSE_Leap_42.3/ Ubuntu_19.04/
Debian_11/ e         RHEL_7/             Ubuntu_20.04/
Debian_9.0/         ScientificLinux_7/  Ubuntu_21.04/
Fedora_32/          SLE_12/

CentOS 7 Notes click here

LinuxRT Notes

Server Details

Advantech 8201

Thuy Vu writes:
The Digitizer card is the x16 PCIe card, it can’t be used in the 2U 8200 that Shawn have upstairs.
We need to use it in 1U 8101 or 2U 8201.

EVR and ADQ14 Recognized by CentOS 7

This was made possible by a 2U 8201 with a compatible power cable.

Thuy Vu writes:
[ root@cpu-b34-sp02]$ lspci |grep SLAC
61:00.0 Signal processing controller: SLAC National Accelerator Lab PPA-REG PCI-Express EVR
[ root@cpu-b34-sp02]$
[ root@cpu-b34-sp02]$
[ root@cpu-b34-sp02]$ lspci |grep ADQ14
da:00.0 Signal processing controller: Signal Processing Devices Sweden AB ADQ14
[ root@cpu-b34-sp02]$
  • No labels