将驱动ko文件制作成rpm包
将驱动ko文件制作成rpm包
有的时候,我们通过源码编译驱动文件后,只有一个ko文件或者我们只拿到ko文件,但Anaconda 驱动更新盘只读取 RPM 文件,那要怎么做?此时我们就需要重新将ko文件编译成RPM包了
步骤一:环境准备(制作机安装 rpm 打包工具)
yum install -y rpm-build rpmdevtools genisoimage createrepo tree
步骤二:构建 rpm 打包目录结构
# 进入工作目录 mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} cd ~/rpmbuild
步骤三:准备 ko 文件 + 编写 spec 规范文件
假设:
- 驱动文件:hiraid.ko或者megaraid_sas.ko
- 目标内核:4.19.90-89.11.v2401.ky10.x86_64
- 驱动目录最终安装路径:/usr/lib/modules/4.19.90-2303.4.1.el7.aarch64/extra/hiraid或/usr/lib/modules/4.19.90-89.11.v2401.ky10.x86_64/extra/megaraid/
1、将 ko 放入 SOURCES
cp /root/hiraid.ko ~/rpmbuild/SOURCES/
- ARM架构
Name: hiraid-drv Version: 2.0.4.1 Release: 1.kylinV10sp1 Summary: Hiraid RAID driver ko for Kylin V10 SP1 aarch64 License: GPL BuildArch: aarch64 %description Self-build rpm package for hiraid.ko RAID driver %install mkdir -p %{buildroot}/usr/lib/modules/4.19.90-2303.4.1.el7.aarch64/extra/hiraid cp %{_sourcedir}/hiraid.ko %{buildroot}/usr/lib/modules/4.19.90-2303.4.1.el7.aarch64/extra/hiraid %post # 安装后更新模块依赖 depmod -a %files /usr/lib/modules/4.19.90-2303.4.1.el7.aarch64/extra/hiraid/hiraid.ko
- X86架构
Name: megaraid-sas-drv Version: 07.221.03.00 Release: 1.kylinV10sp1 Summary: LSI MegaRAID SAS driver packaged from raw ko License: GPL BuildArch: x86_64 %description MegaRAID SAS RAID controller driver, built from standalone megaraid_sas.ko %install # 创建内核模块目录,【务必修改为你的目标完整内核】 mkdir -p %{buildroot}/usr/lib/modules/4.19.90-89.11.v2401.ky10.x86_64/extra/megaraid/ cp %{_sourcedir}/megaraid_sas.ko %{buildroot}/usr/lib/modules/4.19.90-89.11.v2401.ky10.x86_64/extra/megaraid/ %post # 安装后刷新模块依赖 depmod -a %files # 和上面路径严格保持一致 /usr/lib/modules/4.19.90-89.11.v2401.ky10.x86_64/extra/megaraid/megaraid_sas.ko
重点修改项:
- BuildArch:aarch64/x86_64
- 内核完整版本号:必须和装机 ISO 内置内核完全一致(内核不匹配 ko 无法加载!)
步骤四:编译生成 RPM 包
rpmbuild -bb ~/rpmbuild/SPECS/hiraid-drv.spec

编译完成后,生成 rpm 路径: ~/rpmbuild/RPMS/aarch64/hiraid-drv-2.0.4.1-1.kylinV10sp1.aarch64.rpm

浙公网安备 33010602011771号