1、第一步构建编译环境

compile-vmkdriver-env-builder

ESXi VMKernel 驱动程序工具链仅适用于 gcc 版本 4.2-4.8,即 CentOS 5 到 7 或 Ubuntu 12 到 14。

这个 repo 是为了帮助你在 CentOS 7 上构建环境:

git clone https://github.com/realganfan/compile-vmkdriver-env-builder

cd compile-vmkdriver-env-builder

bash build--esxi-driver-env-centos7.sh

2、第二步编译网卡驱动

Realtek RTL8125 NIC driver for ESXi 6.7

本源码基于realtek官方源码,VMware-ESXI-67U3-ODP和VMware-TOOLS-10.2.0-ODP。

克隆驱动文件

git clone https://github.com/realganfan/r8125-esxi.git

将 build-r8125.sh 复制到 /build/vmkdrivers-gpl/

cp /root/r8125-esxi/build-script/build-r8125.sh /build/vmkdrivers-gpl

将 r8125 文件夹复制到 /build/vmkdrivers-gpl/vmkdrivers/src_9/drivers/net

r8125 文件夹是realtek官方源码,升级官方驱动,需要对比模板修改源码相关文件

Realtek PCIe FE / GBE / 2.5G / Gaming Ethernet Family Controller Software

cp -r /root/r8125-esxi/r8125 /build/vmkdrivers-gpl/vmkdrivers/src_9/drivers/net

添加权限,运行构建脚本

chmod o+x build-r8125.sh
cd /build/vmkdrivers-gpl/
bash build-r8125.sh

编译得到 r8125 驱动文件

3、在 Docker (CentOS 7) 中编译 Vib

Compile Vib in Docker (of CentOS 7)

VMWare官方的vib制作工具,即VIB Author,已停止更新多年。感谢 Lamw 制作的Docker镜像。

可以使用宝塔面板一键安装docker工具或手动安装docker
yum -y install docker
运行docker
systemctl start docker
开机运行docker
systemctl enable docker
下载镜像
docker pull lamw/vibauthor

克隆vib文件夹

git clone https://github.com/realganfan/compile-vib-tutorial.git

将vib文件夹复制到主机的任何位置,例如/build

cp -r /root/compile-vib-tutorial/vib-r8125-example /build

编辑descriptor.xml,修改版本信息

cd /build/vib-r8125-example
vi descriptor.xml
<vib version="5.0">
  <type>bootbank</type>
  <name>net-r8125</name>
  <version>9.009.01-1</version>
  <vendor>Realtek</vendor>
  <summary>Realtek 8125 driver for ESXI built by GanFan</summary>
  <description>Recent driver for Realtek R8125. Based on official Realtek driver</description>
  <release-date>2022-05-03T01:40:00+08:00</release-date>
......

将编译得到的 r8125 驱动文件复制到/build/vib-r8125-example/payloads/net-8125/usr/lib/vmware/vmkmod,替换原有驱动

\cp -rf /build/vmkdrivers-gpl/r8125 /build/vib-r8125-example/payloads/net-8125/usr/lib/vmware/vmkmod/r8125


复制vib文件夹到docker,需要输入root密码

docker run --rm -it lamw/vibauthor
scp -r root@172.17.0.1:/build/vib-r8125-example ./vib-8125

使用 vibauthor 编译,如果您只想要 vib,运行:

vibauthor -C -t ./vib-8125 --force

如果您想要 zip 包,运行:

vibauthor -C -t ./vib-8125 -O r8125-bundle.zip --force

(–force 表示替换旧文件)。文件将在 ./vib-8125/ 中创建。

文件路径

/var/lib/docker/overlay2/xxxxxxx/diff/root/vib-8125
/var/lib/docker/overlay2/ xxxxxxx /merged/root/vib-8125

将 vib 或 zip 复制回主机,完成编译。

Categories: 未分类

0 Comments

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注