动手搭建IPXE源码编译环境

本文详细记录了作者在使用IPXE进行自动化装机时遇到的问题,包括编译环境的选择、所需软件包的安装、自定义编译脚本以及常见错误的解决方法,旨在帮助读者避免踩坑并顺利实现IPXE引导文件的定制化开发。
摘要由CSDN通过智能技术生成

   最近本人工作中遇到有自动化装机需求,所以使用到了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

自定义编译: 编写自定义执行脚本(引导文件名字可以自定义)

#!ipxe
dhcp
#ifopen

chain tftp://${next-server}/pxelinux/uefi/boot.ipxe

编译命令:

#legacy
make bin/undionly.kpxe EMBED=boot.ipxe

#uefi
make bin-x86_64-efi/ipxe.efi EMBED=boot.ipxe

#arm
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 bin-arm64-efi/ipxe.efi EMBED=boot.ipxe

三、常见问题及解决方法

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版本。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一条代码鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值