Debian11下编译ADAravis和Motor模块的一条龙过程

news2024/10/3 2:28:41

Debian11编译EPICS ADAravis记录

一年前整理的上面文,这几天重新走了一遍,有些地方会碰到问题,需要补充些环节,motor模块以前和areaDetector一条龙编译时,总是有问题,当时就没尝试了,这几天尝试了一下,流程再总结如下:

准备:

Debian11的基础安装(我用的是网络安装的虚拟机,选安装包时选ssh服务和网络工具两个选项),git抓包需要自己找渠道设置环境变量翻墙。

root权限下:

#改更新源,网络安装时选科大镜像的话,第一个sed可以省掉
sed -i 's/ftp.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sed -i 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
apt-get install git make gcc g++ #编译base需要 


 编译base:

adduser beam
mkdir /half          #以合肥先进光源为例
chown -R beam:beam /half
cd /half
su beam
mkdir epics
cd epics
############下载和编译epics base7#################################
git clone --recursive -b 7.0 https://git.launchpad.net/epics-base base-7.0
ln -s base-7.0 base
cd base
make

EPICS 7 - EPICS Controls


 areaDetector需要的包:

EPICS Products Required for Building areaDetector
areaDetector requires EPICS base. R3.14.12.4 or higher, any 3.15 release should work.

areaDetector also requires asyn. The most recent release of asyn is recommended.

Each areaDetector detector module builds both a library and an EPICS IOC application. To build the library only EPICS base and asynDriver are required. To build the IOC application the synApps modules AUTOSAVE, BUSY, CALC, and SSCAN are required. If the CALC module is built with SNCSEQ support then SNCSEQ is also required. The most recent release of the synApps modules is recommended.

The DEVIOCSTATS and ALIVE modules are optional.

EPICS base, asyn and the synApps modules must be built before building areaDetector.

 su下运行:

apt-get install libx11-dev libxext-dev wget re2c #编译areaDetector需要


######下载和修改synApps的脚本(当前最新版是6.2.1 --2024.1.21)#####

# 1. download the installer script
wget https://raw.githubusercontent.com/EPICS-synApps/support/master/assemble_synApps.sh

# 2. edit assemble_synApps.sh for your version of EPICS base and local directory paths

# 3. (optional) Specify the (new) directory name where synApps will be installed.
#    This is the default:
#    export SYNAPPS_DIR=synApps
#    This directory will be created when assemble_synApps.sh is run.

# 4. download & install the synApps source files:

# 来自:GitHub - EPICS-synApps/support: APS BCDA synApps module: support

修改这个文件,根据上面的说明只保留了下面的模块,就能少下载些:

bash ./assemble_synApps.sh           #一次可能不能把所有的包抓下来,多运行几次

之后进入support目录:

随上面脚本下载的motor7.2.2包直接编译通不过,我直接下载最新版本:

git clone https://github.com/epics-modules/motor.git
cp motor-R7-2-2/configure/RELEASE motor/configure/.

之后再把下面文件motor那一行改一下:

之后直接编译就好了:

make release
make
 apt-get install meson pkg-config  glib-2.0 libxml2-dev #编译下面驱动需要:

之后安装aravis驱动,root权限下:

取ADGenICam — areaDetector 3-11-2-gf866e7e documentation 里的这部分即可:

cd /usr/local
git clone https://github.com/AravisProject/aravis
cd aravis/
meson build
cd build
ninja   #Debian已经有,不用专门装
ninja install

上面这步在写页首文档时没问题,现在这步可能会碰到meson版本低的问题,按这里的指南装好新版本的meson再重做上一步就好了:https://wenku.csdn.net/answer/de4dfc7a917045afbf6e36bf8be1275f

编译后面的ADAravis需要在su下先运行下面两条命令:

cp /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h /usr/include/.
apt-get install libusb-1.0.0-dev


编译ADGenICam和ADAravis,普通用户权限运行:

cd /half/epics/synApps/support/areaDetector-R3-11/
git clone https://github.com/areaDetector/ADGenICam.git
cd ADGenICam/
make

cd ..

git clone https://github.com/areaDetector/ADAravis.git
cd ADAravis/
make

上面编译ADAravis时,会碰到这类找不到的问题:

是因为现在安装avaris驱动的时候,已经到了0.10版本,而git clone下来的ADAravis的src里还是0.8版本的,运行下面的命令再重新做一遍就好了:

sed -i "s/-0.8/-0.10/g" aravisApp/src/Makefile
sed -i "s/-0.8/-0.10/g" iocs/aravisIOC/aravisApp/src/Makefile

上面两条替换命令能解决部分问题,但是编译过程中出现的这类问题还不能解决:

不知道这类的编译命令里的这类参数在哪里设置,路过的知道的希望能指点,我就只好这样解决:

cp -rf /usr/local/include/aravis-0.10 /usr/local/include/aravis-0.8

至此ADAravis和motor模块一条龙编译环节就都做好了,后面就是针对具体的摄像头和motor控制器的情况,搭建IOC了。

这个流程手动改文件设置和版本不匹配等问题多了一些环节,相信在那些技术大神的完善下,这些手动冗余的步骤都会慢慢省掉吧。。。

路过的从事相关任务的可以自己走一遍这个过程,Debian12下尝试了一下,很不顺利,希望有人能针对这个以及新版本的openEuler系统也尝试一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1402050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生成当天递增唯一的流水号的几种方式

说明:当开发中,如交易、文件传输过程中的文件名,可能需要我们使用一串唯一的数字来锁定这一条“交互记录”,即流水号。 本文介绍几种生成6位递增唯一,且每日重置的流水号的方式。 方式一:使用Redis 我们…

OpenCompass 大模型评测

OpenCompass 大模型评测 关于测评的三个问题为什么需要测评?我们需要评测什么?怎么测试大预言模型? 主流大模型评测框架OpenCompass能力框架OpenCompass评测流水线设计 随着人工智能技术的快速发展, 大规模预训练自然语言模型成为…

3.RHCSA脚本配置及通过node2改密码

运行脚本发现node2不成功 脚本破解 选第二个 Ctrl x 换行 破解成功后做node2的改密码题 回到redhat, 发现检测程序检测密码题成功,得了8分.

《WebKit 技术内幕》之八(1):硬件加速机制

《WebKit 技术内幕》之八(1):硬件加速机制 1 硬件加速基础 1.1 概念 这里说的硬件加速技术是指使用GPU的硬件能力来帮助渲染网页,因为GPU的作用主要是用来绘制3D图形并且性能特别好,这是它的专长所在,它…

Spring Boot 集成 API 文档 - Swagger、Knife4J、Smart-Doc

文章目录 1.OpenAPI 规范2.Swagger: 接口管理的利器3.Swagger 与 SpringFox:理念与实现4.Swagger 与 Knife4J:增强与创新5.案例:Spring Boot 整合 Swagger35.1 引入 Swagger3 依赖包5.2 优化路径匹配策略兼容 SpringFox5.3 配置 Swagger5.4 S…

快速转换,让图片瞬间变成Excel表格!

摘要:本文将带你探索将图片转换为Excel表格的可行性和方法。通过对一些流行的数据处理软件进行测试,我们发现Photoshop和Excel可以轻松地将图片转换为Excel表格。此外,我们还比较了不同软件之间的差异,并提供了一些建议&#xff0…

docker搭建hbase 全部流程(包含本地API访问)

一、使用docker下载并安装hbase 1、搜索:docker search hbase 2、下载:docker pull harisekhon/hbase(一定要下载这个,下面都是围绕此展开的) 3、启动容器: docker run -d -p 2181:2181 -p 16000:16000…

做一个简单的倒计时

<div>距离过年还有:<span></span></div><script>let div document.querySelector("div");let span document.querySelector("span");// 获取未来时间戳let future new Date("2024-2-10 00:00:00");// 获取当下…

Midjourney V6有多厉害,看完这27张图你就明白了!

一些结论 当前V6版本仍处于Alpha测试阶段&#xff1a;这意味着产品的某些方面可能会发生变化。 更准确地遵循提示指令&#xff1a;V6在遵循用户的提示指令方面更为准确&#xff0c;特别是对于较长的提示指令。 模型更加连贯&#xff1a;新版本的模型在生成图像时展现出更高的…

SpringBoot+Email发送邮件

引言 邮件通知是现代应用中常见的一种通信方式&#xff0c;特别是在需要及时反馈、告警或重要事件通知的场景下。Spring Boot提供了简单而强大的邮件发送功能&#xff0c;使得实现邮件通知变得轻而易举。本文将研究如何在Spring Boot中使用JavaMailSender实现邮件发送&#xf…

Hypervisor 和Docker 还有Qemu有什么区别与联系?

Hypervisor Hypervisor是一种运行在基础物理服务器和操作系统之间的中间软件层&#xff0c;可以让多个操作系统和应用共享硬件资源&#xff0c;也叫做虚拟机监视器&#xff08;VMM&#xff09;。 Hypervisor有两种类型&#xff1a;Type I和Type II。 Type I 直接运行在硬件上&a…

如何用“VMware安装Ubuntu”win11系统?

一、 下载Ubuntu 企业开源和 Linux |Ubuntu的 二、 安装 三、 启动虚拟机 选中Try or Install Ubuntu Server&#xff0c;按回车

PY调包侠——Collections高效库

一、【写在前面】 PY是一个调包侠语言&#xff0c;多学一个库可以提高计算速度。Collections提供了各种数据类型和集合工具&#xff0c;可以很方便的处理各种数据结构。如果您有刷力扣的习惯&#xff0c;可以经常看到Collections和itertools的身影&#xff0c;经常用这两个可以…

阿里云 SAE 2.0 正式商用:极简易用、百毫秒弹性效率,降本 40%

作者&#xff1a;黛忻 本文主要介绍阿里云 Serverless 应用引擎&#xff08;以下简称 SAE &#xff09;如何帮助企业跨越技术鸿沟&#xff0c;从传统应用架构无感升级到 Serverless 架构&#xff0c;以更高效、更经济的方式进行转型&#xff0c;快速进入云原生快车道&#xff0…

牛客周赛 Round 29 解题报告 | 珂学家 | 博弈概率DP

前言 整体评价 F题真心好题&#xff0c;很典&#xff0c;学到了很多。D题用了对顶堆&#xff0c;写到一半就想到了更简单的方法&#xff0c;哭。E题是基于众数的构造。 欢迎关注 珂朵莉 牛客周赛专栏 珂朵莉 牛客小白月赛专栏 A. 小红大战小紫 思路: 模拟 n, m list(map(…

Qt6入门教程 9:QWidget、QMainWindow和QDialog

目录 一.QWidget 1.窗口和控件 2.事件 二.QMainWindow 三.QDialog 1.模态对话框 1.1模态对话框 1.2.半模态对话框 2.非模态对话框 在用Qt Creator创建Qt Widgets项目时&#xff0c;会默认提供三种基类以供选择&#xff0c;它们分别是QWidget、QMainWIndow和QDialog&am…

ChatGPT五大教育潜能与四大教育风险

关于ChatGPT将对学校教育产生何种影响&#xff0c;教育界尚未达成共识。这在很大程度上反映了人们审视ChatGPT教育潜能时所采取的不同视角和立场。如果我们从前面提及的生态视角和学习者发展立场来看&#xff0c;ChatGPT可以与学习者之间建立协作、共生和进化的良性生态关系&am…

【Unity】AB包下载

【Unity】AB包下载 1.使用插件打AB包 a.AB包分类 一般地&#xff0c;将预制体作为AB包资源&#xff0c;不仅需要对预制体本身进行归类&#xff0c;还要对其涉及的动画&#xff08;AnimationClip&#xff09;、动画状态机&#xff08;AnimatorController&#xff09;、以及所…

7、机器学习中的数据泄露(Data Leakage)

找到并修复这个以微妙的方式破坏你的模型的问题。 数据泄露这个概念在kaggle算法竞赛中经常被提到,这个不同于我们通常说的生活中隐私数据暴露,而是在竞赛中经常出现某支队伍靠着对极个别feature的充分利用,立即将对手超越,成功霸占冠军位置,而且与第二名的差距远超第二名…

[足式机器人]Part2 Dr. CAN学习笔记- 最优控制Optimal Control Ch07-1最优控制问题与性能指标

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记 - 最优控制Optimal Control Ch07-1最优控制问题与性能指标