ROOT GUI 程序安装
本程序安装要求
- CERN ROOT 6
GCC >= 4.8
FFTW3
OPENSSL
本程序测试过的系统包括 CentOS7 / Scientific Linux 7 / CentOS8 / Ubuntu18.04 / Ubuntu20.04
本程序包采用 PLX9054 驱动版本为 8.23。该版本的驱动支持的操作系统有 CentOS 7/CentOS 8/Debian 08/Debian 09/Debian 10/Ubuntu 18.04/Ubuntu 20.04。
危险
图形界面程序与非图形界面程序不能同时运行!
图形界面程序与非图形界面程序不能同时运行!
图形界面程序与非图形界面程序不能同时运行!
软件安装步骤
删除个人目录下的老版本PKUXIADAQ文件夹
将本程序包解压缩到个人目录中($HOME)
设置环境变量
编译Plx9054驱动
编译pixie16驱动API(该API被吴鸿毅修改过,非官方标准驱动)
编译图形化获取软件
编译非图形化获取软件
编译在线监视程序
编译网页在线监视(可选)
编译数据转换程序
编译事件重构程序(可选)
##设置环境变量
#在 .bashrc 文件中添加
export PLX_SDK_DIR=$HOME/PKUXIADAQ/PlxSdk
# 将 PKUXIADAQ.tar.gz(或者PKUXIADAQ-master.tar.gz) 放置到 /home 下的个人目录下,即 ~/ 位置
tar -zxvf PKUXIADAQ.tar.gz #解压缩
或者
tar -zxvf PKUXIADAQ-master.tar.gz
mv PKUXIADAQ-master PKUXIADAQ
#得到 PKUXIADAQ 目录
##编译Plx9054驱动
#打开新终端
cd ~
cd PKUXIADAQ/
rm -rf PlxSdk #删除可能存在的未删除驱动,如果没有该目录则不用执行该行命令
tar -xvf PlxSdk823.tar
cd PlxSdk/PlxApi/
make clean
make
#成功后你将会看到 Library "Library/PlxApi.a" built successfully
cd ../Samples/ApiTest/
make clean
make
#成功后你将会看到 Application "App/ApiTest" built successfully
# 如果报错,根据操作系统寻找对应的解决方式
cd ../../Driver/
# chmod +x builddriver
./builddriver 9054
#成功后你将会看到 Driver "Plx9054/Plx9054.ko" built sucessfully
##编译pixie16
cd ~
cd PKUXIADAQ/GUI_ROOT/software/
make clean
make
#只要没报错,并且该文件夹内生成libPixie16App.a libPixie16Sys.a
#修改设置参数
cd ~
cd PKUXIADAQ/GUI_ROOT/parset/
#修改cfgPixie16.txt文件。
#其中CrateID 后面的数值表示机箱编号,该值允许0-15。如果单机箱则随意设置(一般就采用默认的0),如果多个机箱同步运行务必让每个机箱的该编号设置为不同的数值。
#SettingPars 后面为参数设置文件,写入要采用的参数配置文件即可。
#ModuleSlot 后面第一个数值表示插件个数,如果有3个插件则为3。之后的数字未为每个插件在机箱的插槽位置(插槽位置从2开始计数),有三个插件则之后分别为2 3 4。
#AutoRunModeTimes 后面数值为自动运行模式下自动切换的时间
#参数 ModuleSampingRate与ModuleBits 只对离线模式生效,当主界面采用Offline模式初始化时则读取该参数。
#修改Run.config文件,该文件中第一行为原始数据存放路径,第二行为文件名。
#修改RunNumber文件,该文件中的数值为运行的run number。
##编译图形化获取软件
cd ~
cd PKUXIADAQ/GUI_ROOT/GUI/
make clean
make
##编译非图形化获取软件
cd ~
cd PKUXIADAQ/GUI_ROOT/NOGUI/
make clean
make
##编译在线监视程序
cd ~
cd PKUXIADAQ/GUI_ROOT/OnlineStattics/
make clean
make
##编译网页版在线监视(可选)
cd ~
cd PKUXIADAQ/GUI_ROOT/RealDecoder/
make clean
make
## 编译数据转换程序
cd ~
cd PKUXIADAQ/DecodeAndSortAll/
#修改 UserDefine.hh,按照程序中的说明修改即可
make clean
make
## 编译事件重构程序(可选)
cd ~
cd PKUXIADAQ/EventBuilder/
#修改 UserDefine.hh,按照程序中的说明修改即可
make clean
make
## 数据分析程序(可选)
cd ~
cd PKUXIADAQ/DataAnalysis/
#修改 UserDefine.hh,按照程序中的说明修改即可
# 添加分析代码
make clean
make
程序使用说明
开机机箱后重启电脑(电脑必须晚于机箱开启)
开启机箱后ROOT权限下加载Plx9054驱动
正常获取
## ROOT权限下加载Plx9054驱动
cd ~
cd PKUXIADAQ/PlxSdk/Bin/
## CENTOS
su #输入ROOT密码
./Plx_load 9054
## Ubuntu
## 需要修改文件 Plx_load 第18行为 export PLX_SDK_DIR=/home/[user name]/PKUXIADAQ/PlxSdk
sudo ./Plx_load 9054
#将会看到加载成功的提示
## CENTOS
exit #退出ROOT权限
##启动图形界面程序
cd ~
cd ~/PKUXIADAQ/GUI_ROOT/GUI
./gddaq
#将会弹出图形化界面
#可选择 Online/Offline Mode 然后按 Boot 初始化
#等待初始化成功后,可修改输出数据文件路径,文件名,run number。按 Complete 按钮确认。
#此时 LSRunStart 按钮变为可操作。即可开始按Start,之后第二次按即为Stop。
#Online Statistics选项选择表示发送在线统计
#Update Energy Monitor每选择一次则从插件内部读取一次能谱信息并发送给在线程序(频繁选择会影响获取)
##启动非图形界面程序
cd ~
cd ~/PKUXIADAQ/GUI_ROOT/NOGUI
./gddaq
根据提示输入控制命令
##启动在线监视程序
cd ~
cd PKUXIADAQ/GUI_ROOT/OnlineStattics/
./online
#将会弹出图形化界面
#按 RunStart开始启动监视,每3秒更新一次每路的输入率、输出率。(开启机箱后第一次启用该程序需要在获取开启之后)
#监视界面右下角有对写入硬盘使用量的监视。
#EnergyMonitor页面用来查看能谱。由于插件内部寄存器大小限制,该能谱与实际能谱道址范围存在差别。
##执行数据转换程序
cd ~
cd PKUXIADAQ/DecodeAndSortAll/
#在上一轮获取结束之后,我们便可将上一轮数据转为 ROOT 文件
./decodeandsort xxx1 [... xxx2 xxx3 ...]
# xxx1 为不同机箱的运行 run number
常见安装错误
Ubuntu 22.04
未进行测试
Ubuntu 20.04
文件 Driver/Source.Plx9000/Driver.c
// 在文件开头添加以下 3 行 代码
#ifndef INCLUDE_VERMAGIC
#define INCLUDE_VERMAGIC
#endif
文件 Driver/Source.Plx9000/SuppFunc.c
// 956 行修改如下
down_read( ¤t->mm->mmap_lock );
// 969 行修改如下
up_read( ¤t->mm->mmap_lock );
// 注释 402-410 行
// if (request_mem_region(
// pdx->PciBar[BarIndex].Properties.Physical,
// pdx->PciBar[BarIndex].Properties.Size,
// PLX_DRIVER_NAME
// ) == NULL)
// {
// return (-ENOMEM);
// }
// else
Ubuntu 18.04
即将更新
文件 Driver/Source.Plx9000/Driver.c
文件 Driver/Source.Plx9000/SuppFunc.c
CentOS8
针对 CentOS8,安装 PLX9054 8.23 驱动时候错误的解决方案:
// 修改文件 Include/Plx_sysdep.h 第 153 行为
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0))
CentOS7
针对 CentOS/Scientific Linux 7.6/7.7,安装 PLX9054 驱动时候错误的解决方案:
./builddriver 9054
Build: Plx9054
- PLA: CentOS Linux release 7.6.1810 (Core)
- KER: 3.10.0-957.12.2.el7.x86_64
- INC: /lib/modules/3.10.0-957.12.2.el7.x86_64/build/include
- CPU: x86_64 (64-bit Little Endian)
- CMP: Gcc
- TYP: Driver
- PLX: 9054
- CFG: Release
make[1]: Entering directory '/usr/src/kernels/3.10.0-957.12.2.el7.x86_64'
arch/x86/Makefile:166: *** CONFIG_RETPOLINE=y, but not supported by the compiler. Compiler update recommended.。 Stop.
make[1]: Leaving directory '/usr/src/kernels/3.10.0-957.12.2.el7.x86_64'
make: *** [BuildDriver] Error 2
以上为错误发生时候的输出提示。
此时,用户可以修改 /usr/src/kernels/3.10.0-957.12.2.el7.x86_64/arch/x86/Makefile 文件,通过注释以下代码来避免这个错误发生。
ifneq ($(RETPOLINE_CFLAGS),)
KBUILD_CFLAGS += $(RETPOLINE_CFLAGS) -DRETPOLINE
else
$(error CONFIG_RETPOLINE=y, but not supported by the compiler. Compiler update recommended.)
endif
9054 驱动加载错误
如果你使用 NI PCIe-8381, 出现无法加载驱动的情况,那么如下图所示,检查拨盘 CLOCK MODE 是否处于 ON 状态。
![_images/pcie8381.jpg](_images/pcie8381.jpg)
TeamViewer
TeamViewer是一个应用程序,可让您远程连接到多个工作站。 有许多应用程序可以远程控制不同的系统,但TeamViewer设置为具有极强的可访问性,同时功能也很强大。
https://www.teamviewer.cn/cn/download/linux/
![_images/TeamViewer.png](_images/TeamViewer.png)