动手搭建IPXE源码编译环境

2024-03-02 03:20

本文主要是介绍动手搭建IPXE源码编译环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

   最近本人工作中遇到有自动化装机需求,所以使用到了PXE。考虑到不同引导模式下引导文件会有差异,需要定制化开发,这才想到利用IPXE来个性化编译自己的引导文件。
   之所以写这篇文章就是因为网上的好多教程都不是很对,很容易踩坑白费力气,且浪费大把时间。本文小编一一实践过来的,特此记录所有步骤和报错原因,供有需要的人参考。

一、IPXE官网地址

IPXE官网网址:https://ipxe.org/download
在这里插入图片描述

二、准备编译环境

   注意: 这里官网并未提及到编译环境所使用的gcc版本,网上的好多教程都未提及到,本人亲测的centos7以下环境都未成功过,最后选择安装了Centos Stream 9,此系统gcc版本为11.4.1。

环境gcc版本编译结果
centos74.8.5未通过
centos77.X.X未通过
centos79.3.0未通过
Centos Stream 911.4.1通过

操作系统:CentOS Stream 9

内核版本:5.14.0-425.el9.x86_64 #1

(一)安装编译所需的软件包
yum install gcc binutils make perl liblzma mtools mkisofs xz-devel perl

此处报错信息提示未找到liblzma,不用管。
在这里插入图片描述

(二)下载IPXE源码
git clone https://github.com/ipxe/ipxe.git

github仓库地址:https://github.com/ipxe/ipxe.git
若在服务器上下载失败,可手动利用特殊手段下载到源码包,上传到服务器中即可。

(三)编译IPXE源码

解压IPXE源码包,执行命令。

cd ipxe/src
make

三、常见问题及解决方法

1、报错genfsimg权限不够

make: util/genfsimg: 权限不够
make: *** [arch/x86/Makefile.pcbios:68:bin/ipxe.iso] 错误 127

解决方法:genfsimg原文件没有可执行权限,添加执行权限即可。

chmod 755 util/genfsimg

2、报错 Can’t locate FindBin.pm in @INC (you may need to install the FindBin module)

在这里插入图片描述解决方法:perl软件包未安装,进行安装即可。

yum install perl

3、报错 cc1: error: unrecognized command line option ‘-XXXXXXXX’ [-Werror]

在这里插入图片描述解决方法:此报错多半是因为gcc版本不对,需要升级gcc版本。

这篇关于动手搭建IPXE源码编译环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/764754

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

VSCode配置Anaconda Python环境的实现

《VSCode配置AnacondaPython环境的实现》VisualStudioCode中可以使用Anaconda环境进行Python开发,本文主要介绍了VSCode配置AnacondaPytho... 目录前言一、安装 Visual Studio Code 和 Anaconda二、创建或激活 conda

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my