编译驱动
- 解压驱动包
tar -zxvf megaraid_sas-07.712.02.00-src.tar.gz
- 进入目录后执行
./compile.sh
[root@ megaraid_sas-07.712.02.00]# bash compile.sh
compile.sh: line 39: ./clean.sh: No such file or directory
compile.sh: line 40: ctags: command not found
make: *** /lib/modules/3.10.0-862.el7.centos.x86_64/build: No such file or directory. Stop. #编译时显示目录不存在
[root@ megaraid_sas-07.712.02.00]#
[root@ megaraid_sas-07.712.02.00]# cd /lib/modules/3.10.0-862.el7.centos.x86_64/build
-bash: cd: /lib/modules/3.10.0-862.el7.centos.x86_64/build: No such file or directory
[root@ megaraid_sas-07.712.02.00]# cd /lib/modules/3.10.0-862.el7.centos.x86_64
[root@ 3.10.0-862.el7.centos.x86_64]# ls
build modules.alias modules.builtin modules.dep.bin modules.modesetting modules.softdep source weak-updates
extra modules.alias.bin modules.builtin.bin modules.devname modules.networking modules.symbols updates
kernel modules.block modules.dep modules.drm modules.order modules.symbols.bin vdso
[root@10-2-67-145 3.10.0-862.el7.centos.x86_64]# ll
total 3224
lrwxrwxrwx 1 root root 45 Dec 16 15:29 build -> /usr/src/kernels/3.10.0-862.el7.centos.x86_64 #链接文件显示错误,查看/usr/src目录下为3.10.0-862.el7.x86_64文件,并非/usr/src/kernels/3.10.0-862.el7.centos.x86_64
drwxr-xr-x 2 root root 4096 Apr 20 2018 extra
drwxr-xr-x 12 root root 4096 Dec 16 15:29 kernel
-rw-r--r-- 1 root root 820164 Dec 16 15:29 modules.alias
-rw-r--r-- 1 root root 784670 Dec 16 15:29 modules.alias.bin
-rw-r--r-- 1 root root 1346 Apr 20 2018 modules.block
-rw-r--r-- 1 root root 7091 Apr 20 2018 modules.builtin
-rw-r--r-- 1 root root 8965 Dec 16 15:29 modules.builtin.bin
-rw-r--r-- 1 root root 280500 Dec 16 15:29 modules.dep
-rw-r--r-- 1 root root 387291 Dec 16 15:29 modules.dep.bin
-rw-r--r-- 1 root root 361 Dec 16 15:29 modules.devname
-rw-r--r-- 1 root root 132 Apr 20 2018 modules.drm
-rw-r--r-- 1 root root 82 Apr 20 2018 modules.modesetting
-rw-r--r-- 1 root root 1746 Apr 20 2018 modules.networking
-rw-r--r-- 1 root root 95355 Apr 20 2018 modules.order
-rw-r--r-- 1 root root 490 Dec 16 15:29 modules.softdep
-rw-r--r-- 1 root root 382659 Dec 16 15:29 modules.symbols
-rw-r--r-- 1 root root 469711 Dec 16 15:29 modules.symbols.bin
lrwxrwxrwx 1 root root 5 Dec 16 15:29 source -> build
drwxr-xr-x 2 root root 4096 Apr 20 2018 updates
drwxr-xr-x 2 root root 4096 Dec 16 15:29 vdso
drwxr-xr-x 2 root root 4096 Apr 20 2018 weak-updates
解决:
cd /usr/src/kernels
mv 3.10.0-862.el7.x86_64/ 3.10.0-862.el7.centos.x86_64
继续编译发现还是报错
[root@ megaraid_sas-07.712.02.00]# sh compile.sh
compile.sh: line 39: ./clean.sh: No such file or directory
compile.sh: line 40: ctags: command not found
make: Entering directory `/usr/src/kernels/3.10.0-862.el7.centos.x86_64'
arch/x86/Makefile:166: *** CONFIG_RETPOLINE=y, but not supported by the compiler. Compiler update recommended.. Stop.
make: Leaving directory `/usr/src/kernels/3.10.0-862.el7.centos.x86_64'
解决:
vim /usr/src/kernels/3.10.0-862.el7.centos.x86_64/arch/x86/Makefile
修改Makefile, 第166行,注释掉KBUILD_CFLAGS += $(RETPOLINE_CFLAGS) -DRETPOLINE 和 $(error CONFIG_RETPOLINE=y, but not supported by the compiler. Compiler update recommended.)
继续尝试编译成功
3.查看编译好的megaraid_sas.ko文件
[root@ megaraid]# modinfo megaraid_sas.ko
filename: megaraid_sas.ko
description: Broadcom MegaRAID SAS Driver
author: megaraidlinux.pdl@broadcom.com
version: 07.712.02.00
license: GPL
rhelversion: 7.5
srcversion: C8328C2E3BFC8F1D2E39CC6
alias: pci:v00001000d000010E7sv*sd*bc*sc*i*
alias: pci:v00001000d000010E4sv*sd*bc*sc*i*
alias: pci:v00001000d000010E3sv*sd*bc*sc*i*
alias: pci:v00001000d000010E0sv*sd*bc*sc*i*
alias: pci:v00001000d000010E6sv*sd*bc*sc*i*
alias: pci:v00001000d000010E5sv*sd*bc*sc*i*
alias: pci:v00001000d000010E2sv*sd*bc*sc*i*
alias: pci:v00001000d000010E1sv*sd*bc*sc*i*
alias: pci:v00001000d0000001Csv*sd*bc*sc*i*
alias: pci:v00001000d0000001Bsv*sd*bc*sc*i*
alias: pci:v00001000d00000017sv*sd*bc*sc*i*
alias: pci:v00001000d00000016sv*sd*bc*sc*i*
alias: pci:v00001000d00000015sv*sd*bc*sc*i*
alias: pci:v00001000d00000014sv*sd*bc*sc*i*
alias: pci:v00001000d00000053sv*sd*bc*sc*i*
alias: pci:v00001000d00000052sv*sd*bc*sc*i*
alias: pci:v00001000d000000CFsv*sd*bc*sc*i*
alias: pci:v00001000d000000CEsv*sd*bc*sc*i*
alias: pci:v00001000d0000005Fsv*sd*bc*sc*i*
alias: pci:v00001000d0000005Dsv*sd*bc*sc*i*
alias: pci:v00001000d0000002Fsv*sd*bc*sc*i*
alias: pci:v00001000d0000005Bsv*sd*bc*sc*i*
alias: pci:v00001028d00000015sv*sd*bc*sc*i*
alias: pci:v00001000d00000413sv*sd*bc*sc*i*
alias: pci:v00001000d00000071sv*sd*bc*sc*i*
alias: pci:v00001000d00000073sv*sd*bc*sc*i*
alias: pci:v00001000d00000079sv*sd*bc*sc*i*
alias: pci:v00001000d00000078sv*sd*bc*sc*i*
alias: pci:v00001000d0000007Csv*sd*bc*sc*i*
alias: pci:v00001000d00000060sv*sd*bc*sc*i*
alias: pci:v00001000d00000411sv*sd*bc*sc*i*
depends:
vermagic: 3.10.0-862.el7.x86_64 SMP mod_unload modversions
parm: lb_pending_cmds:Change raid-1 load balancing outstanding threshold. Valid Values are 1-128. Default: 4 (int)
parm: max_sectors:Maximum number of sectors per IO command (int)
parm: msix_disable:Disable MSI-X interrupt handling. Default: 0 (int)
parm: msix_vectors:MSI-X max vector count. Default: Set by FW (int)
parm: allow_vf_ioctls:Allow ioctls in SR-IOV VF mode. Default: 0 (int)
parm: throttlequeuedepth:Adapter queue depth when throttled due to I/O timeout. Default: 16 (int)
parm: resetwaittime:Wait time in (1-180s) after I/O timeout before resetting adapter. Default: 180s (int)
parm: smp_affinity_enable:SMP affinity feature enable/disable Default: enable(1) (int)
parm: rdpq_enable:Allocate reply queue in chunks for large queue depth enable/disable Default: enable(1) (int)
parm: dual_qdepth_disable:Disable dual queue depth feature. Default: 0 (int)
parm: scmd_timeout:scsi command timeout (10-90s), default 90s. See megasas_reset_timer. (int)
parm: crashdump_enable:Firmware Crash dump feature enable/disbale Default: enable(1) (int)
parm: perf_mode:Performance mode (only for Aero adapters), options:
0 - balanced: High iops and low latency queues are allocated &
interrupt coalescing is enabled only on high iops queues
1 - iops: High iops queues are not allocated &
interrupt coalescing is enabled on all queues
2 - latency: High iops queues are not allocated &
interrupt coalescing is disabled on all queues
default mode is 'balanced' (int)
parm: event_log_level:Asynchronous event logging level- range is: -2(CLASS_DEBUG) to 4(CLASS_DEAD), Default: 2(CLASS_CRITICAL) (int)
parm: disable_ext_io:Disable 1M IO support Default: 0(1M IO enabled) (int)
parm: enable_sdev_max_qd:Enable sdev max qd as can_queue. Default: 0 (int)