keepalived交叉编译

前言

Keepalived可以实现对服务器的健康检查,当主服务器出现故障时,自动将服务切换到备份服务器上,确保服务的连续性,避免单点故障。它还可以管理一个虚拟 IP 地址,在主备服务器之间进行灵活切换,对外提供统一的访问入口,使得客户端无需感知服务器的具体切换操作。
当我们在嵌入式边缘设备上部署服务时,为了保障服务稳定性,使用keepalived时很有必要的。

准备工作

  • 根据芯片平台确定交叉编译工具链。
    此处以在飞腾E2000上移植keepalived命令为例,采用的工具链为:aarch64-linux-gnu-xxx
    安装命令:sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
  • 下载keepalived源码及其依赖的三方库源码。
    keepalived下载地址:keepalived-2.2.8.tar.gz
    openssl下载地址: openssl-1.1.1u.tar.gz

交叉编译openssl

解压文件

tar axvf  openssl-1.1.1u.tar.gz
cd openssl-1.1.1u

配置生成Makefile

./config no-asm shared no-async  --prefix=$(pwd)/install --cross-compile-prefix=aarch64-linux-gnu-

修改Makefile

输入如下命令。删除Makefile中的交叉编译工具链不支持的-m64参数。

sed -i '/-m64/d' Makefile

也可打开文件手动删除:
在这里插入图片描述

编译源码

make && make install

编译完成后,在当前openssl-1.1.1u目录下会生成一个install目录,目录下即可获取到所有的编译产物,主要检查生成的动态库文件.so是否正确,后续keepalived交叉编译时需要用到。
在这里插入图片描述

交叉编译keepalived

配置生成Makefile

./configure --host=aarch64-linux-gnu  --prefix=$(pwd)/install CC=aarch64-linux-gnu-gcc CFLAGS=-I/home/fangye/build_keepalived/openssl-1.1.1u/install/include LDFLAGS=-L/home/fangye/build_keepalived/openssl-1.1.1u/install/lib --disable-fwmark

参数含义:
--host= 表示目标平台的名称
--prefix= 表示编译产物安装目标路径
CFLAGS 表示gcc编译参数,用于指定openssl头文件搜索路径
LDFLAGS 表示gcc链接参数,用于指定openssl库文件搜索路径
--disable-fwmark 表示禁用iptables规则,可防止VIP无法访问

编译源码

make && make install

安装的时候会报错,是因为要将keepalived.service文件安装到/lib/systemd/system目录下没有权限。我们交叉编译时一般用不到,可以不用管。如果需要可自行在keepalived目录下找到相应文件。
在这里插入图片描述
编译生成的产物如下:
在这里插入图片描述
至此,交叉编译完成。将之前openssl的库文件、keepalived可执行文件及其keepalived配置文件拷贝至arm开发板相应目录下,即可完成keepalived移植。

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

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

相关文章

使用 Python 编程语言进行供应链分析

前言 要分析一家公司的供应链,我们需要供应链不同阶段的数据,如有关采购、制造、运输、库存管理、销售和客户人口统计的数据。我为这项任务找到了一个理想的数据集,其中包括一家时尚和美容初创公司的供应链数据。 1. 相关数据集 让我们导入…

打造坦克游戏:类方法的深入解析

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:坦克游戏与类方法的结合 二、坦克类的属性与方法概述 1. 属性定义与初…

Modbus协议基础

文章目录 Modbus概述Modbus TCP/IP Modbus概述 Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的应用层总线协议。 为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施…

Ubuntu 安装 LibreOffice

1. 删除预安装的LibreOffice Ubuntu 和其他的 Linux 发行版带有预安装的 LibreOffice。这可能不是最新的,这是因为发行版有特定的发行周期。在进行新安装之前,你可以通过以下命令删除 Ubuntu 及其衍生发行版中的的旧版本。 sudo apt remove –purge li…

vs code怎么补全路径,怎么快捷输入文件路径

安装插件: 链接:https://marketplace.visualstudio.com/items?itemNamejakob101.RelativePath 使用 按住 Ctrl Shift H,弹出窗口,输入文件补全,回车就可以了 排除文件 如果你的项目下文件太多,它会…

基础—SQL—图形化界面工具的DataGrip使用(2)

一、回顾与引言 (1) 上次内容,博客讲到了DDL语句的数据库操作、表操作、表字段的操作的相关语法,然而之前都是在MySQL的命令行当中去操作演示的。这种方式可以用,但是使用的话,第一,在我们日常…

编译原理 期末复习笔记整理(上)

资料借鉴: 【编译原理】期末复习 零基础自学_哔哩哔哩_bilibili 编译原理笔记 第一章 引论 1.编译原理逻辑过程: 词法分析 语法分析 语义分析 中间代码生成 编译代码生成 2.词法分析 任务: 输入源程序,对…

解决 fatal: Not a git repository (or any of the parent directories): .git 问题

解决方法:在命令行 输入 git init 然后回车就好了

全面解析Java.lang.ClassCastException异常

全面解析Java.lang.ClassCastException异常 全面解析Java.lang.ClassCastException异常:解决方案与最佳实践 🚀📚摘要引言1. 什么是Java.lang.ClassCastException?代码示例 2. 报错原因2.1 类型不兼容2.2 泛型类型擦除2.3 接口和实…

02 FreeRTOS 任务

1、创建任务函数 1.1 动态内存的使用 在之前我们如果要创建一个与学生有关的任务,我们会定义: //打印50个学生的信息 char name[50][100]; int age[50]; int sex[50]; //1表示男,0表示女 int score[50]; 如果之后要对其进行修改会非常麻烦&…

使用稀疏约束水平集算法对MR图像中的脑肿瘤进行分割| 文献速递-深度学习肿瘤自动分割

Title 题目 Brain tumor segmentation in MR images using a sparse constrained level set algorithm 使用稀疏约束水平集算法对MR图像中的脑肿瘤进行分割" 01 文献速递介绍 脑磁共振(MR)成像是成像患者脑结构的主要方法,从MR图像…

最后7天,高考翻盘秘籍等你开启!

高考,这场关乎未来的考试,对于每一个学生来说都是一次严峻的挑战。随着倒计时的进行,无数考生和家长的焦虑和期待达到了顶点。在这个最后7天的关键时期,我们为即将参加高考的学生及其家长提供一份复习秘籍,帮助你们抓住…

rfid资产管理系统如何帮助医院管理耗材的

RFID资产管理系统可以帮助医院管理耗材,提高耗材管理的效率和准确性。以下是它可以发挥作用的几个方面: 1. 实时跟踪和定位:使用RFID标签附加在耗材上,可以实时跟踪和定位耗材的位置。医院可以通过系统查询耗材的实时位置&#xf…

微服务八股-分布式事务-注册中心-服务保护

一、分布式事务 1.CAP和BASE 三者不能同时存在。 CP:由于网络分片的存在,如果要保证强一致性就不能写,此时不满足可用性 AP:由于网络分片的存在,如果要保证可用性,能读也能写,就不能保证强一致…

【讲解下Web前端三大主流的框架】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

Java项目:基于SSM框架实现的学生就业管理系统分前后台(ssm+B/S架构+源码+数据库+毕业论文+开题报告)

一、项目简介 本项目是一套基于SSM框架实现的学生就业管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能…

pytorch文本分类(四)模型框架(模型训练与验证)

关卡四 模型训练与验证 本文是在原本闯关训练的基础上总结得来,加入了自己的理解以及疑问解答(by GPT4) 原任务链接 目录 关卡四 模型训练与验证1. 训练1.1 构建模型结构1.2 模型编译1.3 模型训练1.4模型超参数调试 2. 推理2.1 模型准确性…

束测后台实操文档1-PVE、PBS

合肥先进光源束测系统后台基础架构初步设计报告 合肥先进光源束测系统后台搭建进展2024.4.29 关于后台基础架构,写了上面两篇文档,只是框架的印象,没涉及到具体的实操,后面针对具体的搭建慢慢的完善操作的细节,从今年…

基于STM32实现智能园艺系统

目录 引言环境准备智能园艺系统基础代码示例:实现智能园艺系统 土壤湿度传感器数据读取水泵控制温湿度传感器数据读取显示系统用户输入和设置应用场景:智能农业与家庭园艺问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌入式系统…

四川省税务局CDH国产化替代实践

“传统数据仓库对于数据处理时效较低,且无法处理实时增量数据及数据变更,同时,在面对海量税务数据大规模进行查询分析等方面存在一些挑战。我们希望尽快寻找到一款能够替代CDH,并且具备灵活扩展能力的大数据解决方案,以…