以rpm包形式升级Linux驱动

一般在自己适配驱动或者升级驱动时,如果将所有的安装命令以及后续的依赖关系写在一个文件中,那么在现场环境中只需要执行一步命令即可,减少了现场维护人员操作步骤,那么这里想写的一个方法是将升级驱动的步骤打包成rpm包的形式;
总体的步骤分为如下两步:
1、编写SPEC文件;
2、利用SPEC文件制作rpm包;
本文参考的RPM打包原理的网址如下:
https://blog.csdn.net/get_set/article/details/53453320
以升级i40e驱动为例编写SPEC文件如下:

Name:   i40e
#rpm包的名称
Version: 2.10
#版本号
Release:        1%{?dist}
#小的版本号
Summary: "Hello World!!"
#可有可无
License:        GPL

#BuildRequires: gettext
Requires: info
#需要依赖的包,这里可以无需添加

#获取当前环境的内核版本号
%define version %(uname -r)

%description

%install
#1、RPM_BUILD_ROOT为此次工作的路径,以i40e驱动为例
rm -rf ${RPM_BUILD_ROOT}
#2、新建驱动模块的路径
mkdir -p ${RPM_BUILD_ROOT}/lib/modules/%{version}/updates/drivers/net/ethernet/intel/i40e/
#3、将要安装的驱动模块复制到对应的目录下
cp ../SOURCES/i40e.ko ${RPM_BUILD_ROOT}/lib/modules/%{version}/updates/drivers/net/ethernet/intel/i40e/
%clean
#清理工作目录
rm -rf ${RPM_BUILD_ROOT}

%files
#在这里放要拷贝到rpm包中的文件(驱动模块)
#1、对文件进行权限设置
%defattr(644, root, root)
#2、即为在系统中安装的路径
/lib/modules/%{version}/updates/drivers/net/ethernet/intel/i40e/i40e.ko

%pre
#执行install之前要执行的命令
/sbin/depmod -a
%post
#命令执行后要执行的命令
#1、重新生成依赖关系
/sbin/depmod -a
#2、重新生成initramfs文件,将新的驱动写入initramfs文件中;
dracut --force
%changelog

SPEC文件编写完成后执行rpmbuild -ba driver.spec命令生成rpm包,rpm包的生成路径为:
/root/rpmbuild/RPMS/x86_64/i40e-2.10-1.el7.x86_64.rpm

后续升级驱动时只需要安装该rpm包即可;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值