正如标题所说,我的系统上有多个内核
4.18.0-193.19.1.el8_2.x86_64
4.18.0-240.el8.x86_64
4.18.0-372.26.1.el8_6.x86_64
问题是我在系统上使用 mpt3sas,当我安装它时,它4.18.0-193.19.1
是完美的。现在在较新的内核上,我发现内核没有检测到该模块。我无法对其进行 modinfo 或 modprobe。但当我尝试安装它时,它确实检测到它已经安装。如果这有区别的话,它在/lib/modules/4.18.0-193.19.1.el8_2.x86_64/weak-updates
&目录中。/lib/modules/4.18.0-193.19.1.el8_2.x86_64/extra
有什么想法吗?我应该卸载它并在较新的内核上重新安装它吗?我尝试复制目录和 .ko 文件,但似乎没有什么不同。
编辑:我尝试删除其中的旧版本并通过 dnf 安装它,现在看来系统上安装了两个版本。以下是输出modinfo mpt3sas
:
modinfo mpt3sas PLEX
filename: /lib/modules/4.18.0-372.26.1.el8_6.x86_64/extra/mpt3sas/mpt3sas.ko
alias: mpt2sas
version: 32.100.00.00
license: GPL
description: LSI MPT Fusion SAS 3.0 Device Driver
author: Avago Technologies <[email protected]>
rhelversion: 8.2
srcversion: 7C68C3E1EC928FA96966F19
alias: pci:v00001000d000000E6sv*sd*bc*sc*i*
alias: pci:v00001000d000000E5sv*sd*bc*sc*i*
alias: pci:v00001000d000000B2sv*sd*bc*sc*i*
alias: pci:v00001000d000000E2sv*sd*bc*sc*i*
alias: pci:v00001000d000000E1sv*sd*bc*sc*i*
alias: pci:v00001000d000000D1sv*sd*bc*sc*i*
alias: pci:v00001000d000000ACsv*sd*bc*sc*i*
alias: pci:v00001000d000000ABsv*sd*bc*sc*i*
alias: pci:v00001000d000000AAsv*sd*bc*sc*i*
alias: pci:v00001000d000000AFsv*sd*bc*sc*i*
alias: pci:v00001000d000000AEsv*sd*bc*sc*i*
alias: pci:v00001000d000000ADsv*sd*bc*sc*i*
alias: pci:v00001000d000000C3sv*sd*bc*sc*i*
alias: pci:v00001000d000000C2sv*sd*bc*sc*i*
alias: pci:v00001000d000000C1sv*sd*bc*sc*i*
alias: pci:v00001000d000000C0sv*sd*bc*sc*i*
alias: pci:v00001000d000000C8sv*sd*bc*sc*i*
alias: pci:v00001000d000000C7sv*sd*bc*sc*i*
alias: pci:v00001000d000000C6sv*sd*bc*sc*i*
alias: pci:v00001000d000000C5sv*sd*bc*sc*i*
alias: pci:v00001000d000000C4sv*sd*bc*sc*i*
alias: pci:v00001000d000000C9sv*sd*bc*sc*i*
alias: pci:v00001000d00000095sv*sd*bc*sc*i*
alias: pci:v00001000d00000094sv*sd*bc*sc*i*
alias: pci:v00001000d00000091sv*sd*bc*sc*i*
alias: pci:v00001000d00000090sv*sd*bc*sc*i*
alias: pci:v00001000d00000097sv*sd*bc*sc*i*
alias: pci:v00001000d00000096sv*sd*bc*sc*i*
alias: pci:v00001000d0000007Esv*sd*bc*sc*i*
alias: pci:v00001000d000002B1sv*sd*bc*sc*i*
alias: pci:v00001000d000002B0sv*sd*bc*sc*i*
alias: pci:v00001000d0000006Esv*sd*bc*sc*i*
alias: pci:v00001000d00000087sv*sd*bc*sc*i*
alias: pci:v00001000d00000086sv*sd*bc*sc*i*
alias: pci:v00001000d00000085sv*sd*bc*sc*i*
alias: pci:v00001000d00000084sv*sd*bc*sc*i*
alias: pci:v00001000d00000083sv*sd*bc*sc*i*
alias: pci:v00001000d00000082sv*sd*bc*sc*i*
alias: pci:v00001000d00000081sv*sd*bc*sc*i*
alias: pci:v00001000d00000080sv*sd*bc*sc*i*
alias: pci:v00001000d00000065sv*sd*bc*sc*i*
alias: pci:v00001000d00000064sv*sd*bc*sc*i*
alias: pci:v00001000d00000077sv*sd*bc*sc*i*
alias: pci:v00001000d00000076sv*sd*bc*sc*i*
alias: pci:v00001000d00000074sv*sd*bc*sc*i*
alias: pci:v00001000d00000072sv*sd*bc*sc*i*
alias: pci:v00001000d00000070sv*sd*bc*sc*i*
depends: scsi_transport_sas,raid_class
name: mpt3sas
vermagic: 4.18.0-193.el8.x86_64 SMP mod_unload modversions
sig_id: PKCS#7
signer: ELRepo.org Secure Boot Key
sig_key: E9:D4:71:CF:B4:FE:13:6C
sig_hashalgo: sha256
signature: 94:52:91:50:DC:0D:4E:BF:96:69:4C:35:7C:37:99:60:49:7A:6E:E1:
E6:6B:0F:C5:3B:C1:60:FF:81:B8:0B:60:72:26:0E:26:11:C4:8A:21:
96:E9:2A:BF:A0:EA:60:40:2E:B4:1E:99:AB:B5:B7:A9:35:95:CC:31:
1B:BF:72:2E:07:2C:D3:D9:F9:85:C4:94:01:C9:F4:73:A9:E9:A5:12:
F5:65:79:B0:F5:54:E0:C5:CB:BC:1E:F5:28:5B:E1:A5:96:3B:12:7A:
9D:E8:51:B5:D7:56:B2:7C:06:88:D2:6D:CD:69:DE:36:2D:D7:09:8F:
79:B5:41:E6:5C:00:FD:89:E1:F6:6F:25:CC:2A:B6:AC:41:12:F7:80:
CB:71:EE:22:4F:BF:E1:44:3A:29:5C:29:EF:76:99:63:34:47:EE:9F:
35:63:5E:2A:EF:FD:30:5B:69:F7:F6:AD:E6:AF:0D:BD:69:D9:19:80:
55:25:64:83:C4:41:AD:41:86:4B:CE:E5:73:61:83:F9:9E:86:7B:82:
33:38:94:1A:D7:D3:A7:4A:A1:96:67:02:3E:7F:D5:02:2C:B3:27:10:
AB:0F:B0:AA:A7:FD:18:5A:BC:04:8A:38:09:9A:FC:B9:35:54:5E:89:
9E:AC:42:A7:90:DA:74:7E:05:D0:B3:79:37:7F:3E:16:82:4A:F8:DF:
BD:CA:58:6D:80:15:1C:14:B0:38:7B:4D:48:6D:D9:EE:3C:AD:CF:DA:
79:71:ED:2B:3A:5F:0F:7A:D8:BB:68:3B:27:6F:58:AA:A9:B1:E3:A8:
C7:65:2A:56:1F:C4:16:3F:EE:B8:FE:27:85:5F:45:3B:53:73:1F:BC:
9F:F5:88:78:50:87:30:33:25:30:D4:2D:62:45:CC:55:FF:15:C9:52:
CF:1E:2F:30:6B:9D:39:20:6F:51:5C:F1:F4:33:16:03:ED:AB:7E:DF:
EA:5B:E1:AB:A2:4E:CF:68:DF:94:F7:E3:E8:63:7F:AE:63:47:11:61:
2C:9F:7F:95:06:D1:22:6C:BA:64:28:BF:D2:9A:66:E1:F7:59:68:33:
A5:BE:14:DE:E8:DD:60:E5:D4:3F:34:15:F8:94:6B:4E:2D:1F:27:9E:
5E:CF:5A:FD:45:70:77:CE:8E:D1:C9:7E:57:08:3F:73:F7:6A:18:86:
2F:6E:8F:08:D1:FF:77:CC:50:FF:23:D6:D9:79:84:96:EE:68:D3:7F:
BF:2D:D4:91:FE:5B:2E:2A:BA:E6:AC:10:E6:28:9A:AC:90:9F:87:43:
BA:72:20:BF:8B:67:D9:84:1C:E6:A1:48:A4:1B:F1:85:46:7C:B4:44:
43:71:1B:AB:5F:0B:65:02:FA:FC:4C:90
parm: logging_level: bits for enabling additional logging info (default=0)
parm: max_sectors:max sectors, range 64 to 32767 default=32767 (ushort)
parm: missing_delay: device missing delay , io missing delay (array of int)
parm: max_lun: max lun, default=16895 (ullong)
parm: hbas_to_enumerate: 0 - enumerates both SAS 2.0 & SAS 3.0 generation HBAs
1 - enumerates only SAS 2.0 generation HBAs
2 - enumerates only SAS 3.0 generation HBAs (default=0) (ushort)
parm: diag_buffer_enable: post diag buffers (TRACE=1/SNAPSHOT=2/EXTENDED=4/default=0) (int)
parm: disable_discovery: disable discovery (int)
parm: prot_mask: host protection capabilities mask, def=7 (int)
parm: enable_sdev_max_qd:Enable sdev max qd as can_queue, def=disabled(0) (bool)
parm: max_queue_depth: max controller queue depth (int)
parm: max_sgl_entries: max sg entries (int)
parm: msix_disable: disable msix routed interrupts (default=0) (int)
parm: smp_affinity_enable:SMP affinity feature enable/disable Default: enable(1) (int)
parm: max_msix_vectors: max msix vectors (int)
parm: irqpoll_weight:irq poll weight (default= one fourth of HBA queue depth) (int)
parm: mpt3sas_fwfault_debug: enable detection of firmware fault and halt firmware - (default=0)
parm: perf_mode:Performance mode (only for Aero/Sea Generation), options:
0 - balanced: high iops mode is enabled &
interrupt coalescing is enabled only on high iops queues,
1 - iops: high iops mode is disabled &
interrupt coalescing is enabled on all queues,
2 - latency: high iops mode is disabled &
interrupt coalescing is enabled on all queues with timeout value 0xA,
default - default perf_mode is 'balanced' (int)
root ~ $ modprobe mpt3sas PLEX
modprobe: ERROR: could not insert 'mpt3sas': Unknown symbol in module, or unknown parameter (see dmesg)
答案1
内核模块特定于内核版本,新内核也要求模块进行更新/重新编译。
当原始提供商尚未构建所需的新二进制 RPM 包时,安装源包并构建与新内核匹配的自己的二进制 RPM 包,即
例如https://www.ibm.com/docs/pt/ess-p8/5.1.0?topic=guide-instructions-updating-mpt3sas-driver
下载 SRPM
为正在运行的内核重建 RPM。
rpmbuild --rebuild SRC_RPM_LOCATION/mpt3sas-13.100.00.00-1.el7_2.src.rpm
此命令创建两个 RPM。
卸载当前的 mpt3sas 驱动程序。
rmmod mpt3sas
安装 RPM。
rpm -Uvh /root/rpmbuild/RPMS/ppc64le/kmod-mpt3sas*rpm rpm -Uvh /root/rpmbuild/RPMS/ppc64le/mpt3sas*rpm
加载更新的模块。
modprobe mpt3sas
验证模块是否已加载。
modinfo mpt3sas