emulex hba卡 ko文件替换驱动

哎呀,我来告诉你Emulex HBA卡驱动升级问题。
我之前已经做过很多次了,也遇到过很多陷阱。
让我告诉你我的经历。

大约在 2 01 8 年的这个时候,我正在升级上海一个数据中心的服务器硬盘,并遇到了这张卡。
那时卡有点旧,驱动跟不上系统更新。
总是会出现一些小问题,例如连接不稳定,有时会自行断开连接。

准备工作时不要马虎。

首先,您需要先确认您的卡的具体型号。
当时我就在服务员面前嗡嗡的,心里嘀咕着。
我快速打开终端并输入 lspci | grep Emulex。
哎呀,一款名为 LPe1 6 002 B 的型号问世了。
知道它是什么让我松了口气,避免与后来下载的驱动程序出现任何不一致。

其次,去下载新的KO文件。
Emulex被Broadcom收购了,所以官方网站肯定是Broadcom找到的。
你需要知道你的系统的内核版本是什么,不能盲目地说出来。
我当时的系统内核是3 .1 0,所以就找了3 .1 0匹配的驱动包。
下载并解压后,里面有.ko文件。

三、备份原来的驱动程序。
这一步尤为重要!如果新驱动程序出现故障,您将需要恢复旧驱动程序。
我将所有原始 .ko 文件从 /lib/modules/3 .1 0/kernel/drivers/scsi/ 复制到 /backup/drivers/ 目录。
这一步可以救你的命!
替换驱动程序文件时要更加小心。

首先,在加载新驱动程序之前,必须先卸载旧驱动程序。
此时我输入 rmmod lpfc 并将其卸载。
如果它告诉您它正在使用,您应该首先停止依赖的存储服务,例如 Multipath。
我当时就停了,不然卸载不了。

二、替换KO文件。
我把下载的新的.ko文件复制到原来的目录下,直接覆盖旧的。
如果你害羞,也可以先重命名旧的,例如将其更改为 lpfc.old,然后在那里插入新的。

第三,更新模块依赖关系。
替换后,需要输入 depmod -a 来更新模块依赖关系。
在此步骤中,系统可以识别新的驱动程序。

验证和确认必须逐步进行。

首先,加载新的驱动程序。
此时我输入了 modprobe lpfc 并加载了新的。
您也可以重新启动系统以使配置生效。

第二,确认驱动版本。
类型 lsmod | grep lpfc 查看是否已加载。
然后运行 ​​modinfo lpfc 查看版本号是否正确以及这是否是您下载的新驱动程序。

第三,测试硬件连接。
此时我输入了 lspci -v | grep Emulex 查看系统是否识别该卡。
或者使用fc_host相关命令,如cat /sys/class/fc_host/host/port_state,查看端口状态是否正常。

注意,我走过的坑你千万不要走。

首先,驱动版本必须严格匹配Linux内核版本。
这次没仔细看,下载了更高版本的驱动。
结果系统一启动就出现蓝屏,惨不忍睹。
因此,您在下单前应仔细查看并进行匹配。

其次,操作必须由root用户执行。
最好在单用户模式下更换,避免服务冲突。
我一次都没注意,就在多用户模式下做了。
结果其他服务也受到了影响,我也纠结了好久。

第三,如果更换后硬件不再被识别,应使用旧的备份KO文件进行恢复。
有一次,加载新驱动后,我发现硬盘不见了。
我很快用旧的备份驱动程序替换了它,系统恢复正常。

嘿,我告诉你这些只是为了让你知道在与司机打交道时需要非常小心。
不要不耐烦。
一步一步来,并仔细做好备份。
一旦出现问题,还有回旋余地。

Linux驱动 | modprobe加载oot驱动与重启系统后自动加载oot驱动分析总结

需要明确的是,安装 OOT 驱动程序的关键取决于您何时使用它。

手动使用 Modprobe 就像订购提取物然后烹饪它。

自动上料,就像点外卖一样,提前下好,食物就会到你嘴里。
区别?手动快速,自动稳定。

注意:如果你想自动化,不要忘记模块签名与内核兼容。

总结:使用ModProbe进行调试和自动化生成。
管理依赖关系并监控日志。