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.13
  2   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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis缓存击穿、雪崩、穿透!(超详细)

作者前言: 为了解决Redis的缓存的问提也是在网上找了很多文章来了解,我感觉这篇文章非常好,希望大家了解一下,也是吧这篇文章归类了一下,可以直接在目录中找 缓存的击穿、穿透和雪崩应该是再熟悉不过的词了,也是面试常问的高频试题。 不过,…

算法-双指针-简单-移动零

记录一下算法题的学习2 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2…

solidworks怎么识别STEP文件特征?

solidworks怎么识别stp文件特征? Chapter1 solidworks怎么识别STEP文件特征? Chapter1 solidworks怎么识别STEP文件特征? 原文连接:https://baijiahao.baidu.com/s?id1744633829345140540&wfrspider&forpc step或者stp…

第八章:枚举

系列文章目录 文章目录 系列文章目录前言一、枚举总结 前言 类可以作为常量使用。 一、枚举 枚举是一组常量的集合。可以这里理解: 枚举属于一种特殊的类, 里面只包含一组有限的特定的对象。 枚举的实现方式自定义类实现枚举使用 enum 关键字实现枚举…

springBoot 入门一 :创建springBoot项目

创建springBoot项目 配置maven 项目报错处理

水库大坝安全监测预警系统的重要作用

水库大坝建造在地质构造复杂、岩土特性不均匀的地基上,在各种荷载的作用和自然因素的影响下,其工作性态和安全状况随时都在变化。如果出现异常,又不被及时发现,其后果不堪设想。全天候实时监测,实时掌握水库水位、雨情…

python链表_递归求和_递归求最大小值

创建一个单链表: class LinkNode: #设置属性def __init__(self,data None):self.data dataself.next None class LinkList: #设置头结点def __init__(self):self.head LinkNode()self.head.next Nonedef CreateListR(self,a): …

概率论和数理统计(四)方差分析与回归分析

前言 实际场景中,也需要研究两个变量的关系.检验也可能出现两个以上的总体. 方差分析 假设检验中,若需检验 H 0 : μ 1 μ 2 , H 1 : μ 1 ̸ μ 2 H_0:μ_1μ_2,H_1:μ_1 \notμ_2 H0​:μ1​μ2​,H1​:μ1​μ2​&#x…

【问题思考总结】第一型曲线积分和第二型曲线积分的区别与联系【从几何知识的角度思考】

此处为曲面积分------>第一型曲面积分的第二型曲面积分的区别与联系【从几何知识的角度思考】 问题 在做题的时候,我发现,关于这方面的知识有很多很多,但是每道题的解法不尽相似,也没有什么具体的体系,尤其是在结…

香港:考虑将虚拟资产列为投资移民资产

11 月 13日消息,香港政府在重新启动投资移民计划后,正考虑将持牌虚拟资产交易平台的比特币等虚拟资产列为可接受的投资项目。这一措施旨在折大投资移民的资产范围,以吸引更多高净值人士在香港落户。尽管有声音呼吁将房地产投资纳入资格范围&a…

LMI相机配置步骤,使用Gocator2550相机

在此之前可以先浏览我编写的相机SDK通用类和LMISDK,进行配套观看 https://blog.csdn.net/m0_51559565/article/details/134404394 //LMI相机SDK https://blog.csdn.net/m0_51559565/article/details/134403745 //相机通用类1.启动LMI加速器 LMI加速器用于将相机…

微信公众号会员系统怎么做

一、引言 在这个信息爆炸的时代,微信公众号已经成为了企业和个人品牌的重要宣传阵地。而在公众号运营过程中,会员系统是非常重要的一环。通过建立会员系统,你可以更好地管理粉丝、提升用户黏性,让你的品牌更加强大。本文将为你详…

光纤接入网是怎么操作

大家还记得我们通过运营商提供的网线甚至是电话线上网的经历吧,那时上网使用xDSL(数字用户线路,Digital Subscriber Line)网络技术,xDSL技术是数字用户线路的所有类型的总称,包括RADSL、SDSL、HDSL、ADSL、…

太好玩了,爬虫、部署API、加小程序,一条龙玩转知乎热榜

一直想做一个从爬虫到数据处理,到API部署,再到小程序展示的一条龙项目,最近抽了些时间,实现了一个关于知乎热榜的,今天就来分享一下! 由于代码还没有完全整理好,今天只给出一个大致的思路和部分…

uniapp生成自定义(分享)图片并保存到相册

需求描述 在一个页面中底部有个保存图片的功能,点击能够保存一张生成的自定义表格图片。 第一眼见到这个需求 自己会出现了两个问题 如何去处理图片中的自定义内容以及样式如何将自定义内容转化成图片 至于保存图片,uniapp有对应的api去实现uni.saveIma…

【广州华锐互动】AR技术为气象站远程监控及在线指导维修提供极大便利

随着科技的不断发展,人类对于自然环境的理解和掌控能力也在不断提升。其中,AR(增强现实)技术的应用,为气象监控带来了革命性的变化。AR远程气象监测,就是将AR技术与气象监控相结合,通过虚拟与现…

Centos7 单用户模式修改密码 3步搞定 666 (百分比成功)

1.第一步重新服务器 2.进入这个页面按e进入单用户模式 3.找到linux16这行 在后面添加 init/bin/bash 按ctrlx进入 4.注意是事项直接修改是报错passud: Authentication token manipulation error 需要执行权限:mount -o remount,rw /

Scala---数据基础

一、数据类型 二、变量和常量的声明 定义变量或者常量的时候,也可以写上返回的类型,一般省略,如:val a:Int 10常量不可再赋值 1./** 2. * 定义变量和常量 3. * 变量 :用 var 定义 ,可修改 4. * 常量 :用 val 定…

最快最便捷的pytest使用allure测试报告

一、前言 最近通过群友了解到了allure这个报告,开始还不以为然,但还是逃不过真香定律。 经过试用之后,发现这个报告真的很好,很适合自动化测试结果的展示。下面说说我的探索历程吧。 选用的项目为Selenium自动化测试Pytest框架实…

IP地址查询在社交行业中的崭新应用

在社交媒体蓬勃发展的今天,IP地址查询技术IP66_ip归属地在线查询_免费ip查询_ip精准定位平台正在成为社交行业中的一项强大工具。这项技术不仅为社交平台提供了更多个性化服务的可能,还在用户安全和内容管理等方面发挥了关键作用。本文将深入探讨IP地址查…