Intel 网卡使用iPXE固件

1、下载ipxe源码

https://git.ipxe.org/ipxe.git/tree

2、编译ipxe

1) 先使用lspci -nn|grep -i eth查询当前网卡的device id,如:
在这里插入图片描述
2)编译ipxe,可以选择编译legacy的rom,也可以选择编译uefi的rom:

#如 legacy rom
make bin/8086100e.rom
#如 uefi rom
make bin-x86_64-efi/8086100e.efirom

3、修改网卡

1)工具

烧录网卡需要用到intel的两个工具:
1、bootutil64e,下载地址:
bootutil64e下载地址

2、eeupdate64e,该软件需要intel账号才能下载:
eeupdate64e下载地址

2)烧录前准备工作

1、用bootutil64e将网卡升级为pxe

因测试的是legacy环境,暂未测试uefi

bootutil64e  -nic=1 -up=pxe  -file=BootIMG.FLB
bootutil64e  -e
  • 显示结果如下:
Port Network Address Series  WOL Flash Firmware      Version
==== =============== ======= === =================== =======1   001B210A7760   Gigabit YES PXE                 1.0.132   001B210A7761   Gigabit YES PXE                 1.0.13

2、用eeupdate64e dump网卡固件:

eeupdate64e -nic=1 -dump

可以看到当前目录生成了一个001B210A7760.bin的文件,该文件即为网卡固件。

3、修改固件

此部分将区分网卡:

1、网卡如果是intel 82599、intel x520,那么不需要操作,此步跳过

2、网卡如果是intel i210,由于i210比较老,因此工具校验的不是那么严格,可以参考文档Intel i210网卡使用iPXE固件直接进行烧录

3、网卡如果是intel x540、intel x550/x552、 intel x722等等,则需要修改固件,将步骤2中的导出的网卡固件里面的pxe rom部分替换为ipxe的rom。
替换方式如下(下面以x722为例):
使用UltraEdit打开步骤2中生成的bin文件
在这里插入图片描述

由于intel固件中都是以word形式读写数据,因此需要找到0x5地址的值,0x5地址为指向option rom的实际存放地址,即上图中的数据DE 83,word值即为0x83de,而高位表示指针的type
在这里插入图片描述

即网卡pxe option rom的地址为:0x3de * 4k = 0x3de0000
在这里插入图片描述

可以看到此地址的数据内容确实是PXE的option rom启动信息。

4、将pxe信息替换为ipxe信息

#其中3960 * 1K 即为 偏移地址 0x3de000
dd if=808637d0.bin of=001B210A7760.bin bs=1K seek=3960 conv=notrunc

5、 修改pxe版本信息

此部分不是强制要求,不修改也不影响
在这里插入图片描述

PXE的版本信息位于固件地址0x32,如上图中的版本即为1.1.09,可以修改为ipxe自身的版本号,但需要注意两点:

1、修改后,固件地址0x3f为checksum,必须重新计算更新

2、几乎每个网卡固件的配置部分都是有一个shadow的,以x722为例,x722的网卡固件配置大小为64K,因此shadow的起始位置也为64K即0x10000
在这里插入图片描述

如果要修改版本信息最好两部分配置一起修改一起更新各自的checksum。
这里就不详细讲checksum计算方法了。

4、烧录网卡固件

此部分也区分网卡进行说明:

1、网卡如果是intel 82599、intel x520,因为82599的网卡配置和option rom是分别存放于eeprom和flash中,所以可以直接使用eeupdate64e包中的lanconf64e工具,选择flash,选择文件808610f8.rom进行烧录到flash中

2、网卡如果是intel i210,那么可以参考文档Intel i210网卡使用iPXE固件

3、网卡如果是intel x540、intel x550/x552,此类网卡配置和option rom都是位于同一个flash当中,需要使用烧录器将网卡flash取下,再修改过的ipxe 固件001B210A7760.bin重新烧回到flash当中。

【注意】:此处无法使用eeupdate64e再将001B210A7760.bin重新刷回网卡,因为本身001B210A7760.bin固件添加了签名校验,修改了ipxe后校验值已经对不上了,而这个校验只在升级时eeupdate64e使用,eeupdate64e检查到校验不正确时会返回烧写失败。使用烧录器重新烧录后,不管是bios还是系统当中都只会校验0x3f地址的checksum,不会再校验签名,因此不影响使用

4、intel x722,此网卡比较特殊,该网卡没有自身网卡的flash,而是和bios共用flash,因此网卡固件需要包入到bios当中,但在bios中存放的位置是固定的,因此可以使用烧录器将整个bios一起读出来,然后计算偏移值,使用dd命令替换对应网卡固件的区域,然后再用烧录器重新烧回bios flash当中

dd if=001B210A7760.bin of=bios.bin bs=1K seek=xxxx conv=notrunc

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

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

相关文章

06 robotFrameWork+selenium2Library KiLL清理进程

1、新建bat文件:kill.bat 2、文件中添加: taskkill /F /IM IEDriverServer.exe taskkill /F /IM iexplore.exe taskkill /F /IM chrome.exe taskkill /F /IM chromedriver.exe 3、新建的关键字中,调用kill.bat OperatingSystem.Run ${CU…

Mac 本地部署thinkphp8【配置环境】

PHP开发工具 我这里选择的是VSCode,里面安装PHP插件 把thinkphp的项目放到 切换到phpenv ![在这里插入图片描述](https://img-blog.csdnimg.cn/a15cc442fab74754ad86d74f6d9942e5.png URL重写如果不改,在请求的时候地址是这样的‘http://tp.com/index.php…

Kubernetes(k8s)资源管理

文章目录 Kubernetes资源管理1.资源管理介绍2.YAML语言介绍3.资源管理方式命令式对象管理命令式对象配置声明式对象配置 扩展:配置kubectl命令可以在node节点上运行 Kubernetes资源管理 1.资源管理介绍 在kubernetes中,所有的内容都抽象为资源&#xf…

竞赛选题 深度学习花卉识别 - python 机器视觉 opencv

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &a…

Java 轻松删除PDF指定页、空白页 (免费工具分享)

对PDF页面的增删通常需要借助专门的工具,而这些工具一般需要付费才能使用。那么我们可以通过Java代码免费实现这一功能吗?答案是肯定的。这篇文章就教大家如何使用一个免费的国产Java库来删除PDF中的指定页面或者删除PDF中的空白页。 使用Java快速删除PD…

自动驾驶汽车:人工智能最具挑战性的任务

据说,自动驾驶汽车是汽车行业梦寐以求的状态,将彻底改变交通运输业。就在几年前,对自动驾驶汽车的炒作风靡一时,那么到底发生了什么呢?这么多公司吹嘘到2021年我们将迎来的无人驾驶汽车革命在何处?事实证明…

《洛谷深入浅出进阶篇》 P1496火烧赤壁——初识离散化

上链接: P1496 火烧赤壁 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1496上题干: 有一组序列,[-2^31,2^31] , 现在给你n次操作,每一次操作给出两个整数l,r&#xff…

TikTok与心灵成长:娱乐与启发并重

社交媒体已成为我们生活的一部分,其中TikTok以其短视频内容和创新性而闻名。然而,TikTok不仅仅是一个娱乐平台,它还具有潜力成为心灵成长的有力工具。本文将探讨TikTok如何在娱乐与启发之间取得平衡,以促进心灵成长和积极影响。 娱…

java常用的几个图片处理工具对Tiff文件的支持

ImageMagick 官网 https://imagemagick.org/, 支持多种格式。命令行工具很适合调试。功能很强大. 还有一款工具GraphicsMagick 是从ImageMagick的基础上研发出来的。 OpenCV 官网 https://opencv.org/ , github地址https://github.com/opencv/opencv&…

2024年春季3月退役的大学生士兵免试专升本单独报名的新政策

关于2024年春季3月退役大学生士兵专升本免试单独报名安排的通知 2024年3月退役的符合条件的大学生士兵单独组织一次报名,网上报名时间另行通知,履行网上报名和信息确认手续,根据要求上传本人头像照片、身份证照片,以及《入伍通知书…

第六届浙江省大学生网络与信息安全竞赛 2023年 初赛/决赛 WEB方向 Writeup

-------------------【初赛】------------------- easy php 简单反序列化 __debuginfo()魔术方法打印所需调试信息&#xff0c;反序列化时候执行&#xff01; 链子如下&#xff1a; BBB::__debuginfo()->CCC::__toString()->AAA::__call()EXP&#xff1a; <?php…

如何以编程方式获取Android手机的电话号码?

在创建Android应用程序时,很多时候我们需要通过手机号码进行身份验证。为了增强用户体验,我们可以在移动系统中自动检测手机号码。因此,让我们开始一个android项目吧!我们将创建一个按钮,单击它时将获得一个手机号码并将其显示在 TextView 中。 分步实施 步骤 1:创建新项…