centos7中如何添加tcm_qla2xxx支持

centos7中自带的有qla2xxx驱动,但是没有tcm_qla2xxx驱动,这会创建一些HBA卡的target的时候失败。为此,需要保证tcm_qla2xxx.ko驱动能生成并自动执行。那么该如何解决这个问题呢?

1.选择tcm_qla2xxx模块

首先,进入和当前centos内核版本和配置选项一致的源代码的build目录:

cd/lib/modules/3.10.0-229.el7.x86_64/build

make
menuconfig

加上对tcm_qla2xxx的支持:

2.编译tcm_qla2xxx驱动

保存上面的选择,然后退出。接着cd
/home/qbaq/qla2xxx:

make
-C /lib/modules/3.10.0-229.el7.x86_64/build M=`pwd` modules

会看到下面的提示:

Building
modules, stage 2.

MODPOST
2 modules

WARNING:
"btree_init" [/home/qbaq/qla2xxx/tcm_qla2xxx.ko] undefined!

WARNING:
"btree_insert" [/home/qbaq/qla2xxx/tcm_qla2xxx.ko]
undefined!

WARNING:
"btree_update" [/home/qbaq/qla2xxx/tcm_qla2xxx.ko]
undefined!

WARNING:
"btree_lookup" [/home/qbaq/qla2xxx/tcm_qla2xxx.ko]
undefined!

WARNING:
"btree_destroy" [/home/qbaq/qla2xxx/tcm_qla2xxx.ko]
undefined!

WARNING:
"btree_get_prev" [/home/qbaq/qla2xxx/tcm_qla2xxx.ko]
undefined!

WARNING:
"btree_remove" [/home/qbaq/qla2xxx/tcm_qla2xxx.ko]
undefined!

WARNING:
"btree_last" [/home/qbaq/qla2xxx/tcm_qla2xxx.ko] undefined!

WARNING:
"btree_geo32" [/home/qbaq/qla2xxx/tcm_qla2xxx.ko]
undefined!

CC
    /home/qbaq/qla2xxx/qla2xxx.mod.o

LD
[M]  /home/qbaq/qla2xxx/qla2xxx.ko

CC
    /home/qbaq/qla2xxx/tcm_qla2xxx.mod.o

LD
[M]  /home/qbaq/qla2xxx/tcm_qla2xxx.ko

make:
Leaving directory `/usr/src/kernels/3.10.0-229.el7.x86_64‘

[[email protected]
qla2xxx]# insmod ./tcm_qla2xxx.ko

insmod:
ERROR: could not insert module ./tcm_qla2xxx.ko: Unknown symbol in
module

[[email protected]
qla2xxx]# dmesg | tail -n 10

[
3907.642678] tcm_qla2xxx: Unknown symbol btree_get_prev (err 0)

[
3935.279739] tcm_qla2xxx: Unknown symbol btree_last (err 0)

[
3935.279763] tcm_qla2xxx: Unknown symbol btree_insert (err 0)

[
3935.279884] tcm_qla2xxx: Unknown symbol btree_remove (err 0)

[
3935.279911] tcm_qla2xxx: Unknown symbol btree_geo32 (err 0)

[
3935.279946] tcm_qla2xxx: Unknown symbol btree_lookup (err 0)

[
3935.279960] tcm_qla2xxx: Unknown symbol btree_init (err 0)

[
3935.280066] tcm_qla2xxx: Unknown symbol btree_destroy (err 0)

[
3935.280080] tcm_qla2xxx: Unknown symbol btree_update (err 0)

[
3935.280142] tcm_qla2xxx: Unknown symbol btree_get_prev (err 0)

可以看大上面tcm_qla2xxx的一些符合依赖于btree这个模块。为此,需要继续解决对btree的依赖。尝试和上面同样的方法,重新进入build/:

make
menuconfig

不过这次,在本地编译就会产生问题:

[[email protected]
lib]# make -C /lib/modules/3.10.0-229.el7.x86_64/build M=`pwd`
modules

make:
Entering directory `/usr/src/kernels/3.10.0-229.el7.x86_64‘

CC
[M]  /home/qbaq/lib/crc-ccitt.o

CC
[M]  /home/qbaq/lib/crc-t10dif.o

CC
[M]  /home/qbaq/lib/crc-itu-t.o

CC
[M]  /home/qbaq/lib/libcrc32c.o

CC
[M]  /home/qbaq/lib/crc8.o

CC
[M]  /home/qbaq/lib/ts_kmp.o

CC
[M]  /home/qbaq/lib/ts_bm.o

CC
[M]  /home/qbaq/lib/ts_fsm.o

CC
[M]  /home/qbaq/lib/cordic.o

CC
[M]  /home/qbaq/lib/raid6/algos.o

CC
[M]  /home/qbaq/lib/raid6/recov.o

HOSTCC
/home/qbaq/lib/raid6/mktables

TABLE
 /home/qbaq/lib/raid6/tables.c

CC
[M]  /home/qbaq/lib/raid6/tables.o

UNROLL
/home/qbaq/lib/raid6/int1.c

awk:
fatal: can‘t open source file
`/usr/src/kernels/3.10.0-229.el7.x86_64//home/qbaq/lib/raid6/unroll.awk‘
for reading (No such file or directory)

make[2]:
*** [/home/qbaq/lib/raid6/int1.c] Error 1

make[1]:
*** [/home/qbaq/lib/raid6] Error 2

make:
*** [_module_/home/qbaq/lib] Error 2

3.解决tcm_qla2xxx对btree模块的依赖

究其原因,btree模块在tcm_qla2xxx选上之后,默认必须应该变成build
in的,因为它可能依赖其他的内容。我们看这个文件包含的头文件也可以看出来:

所以,还需要重新编译内核。为了尽量保证和发行版的配置文件一致,我们把经过上面操作之后/lib/module/3.10.0-229.el7.x86_64
/build下最新的.confg拷贝过来:

然后make
-j 32

make
bzImage

make
modules_install

make
install

这样就能保证生成的内核里已经包含了btree模块,同时由于它会在启动时候加载,后续加载tcm_qla2xxx驱动就不会有问题了。

时间: 2024-10-16 14:46:36

centos7中如何添加tcm_qla2xxx支持的相关文章

Ubuntu中vim添加lua支持

系统:Ubuntu 15.04 因为Ubuntu15.04系统自带vim不支持lua,所以得自己编译安装. 1.卸载系统自带的vim. $ sudo apt-get remove vim vim-runtime vim-tiny vim-common vim-gui-common $ sudo apt-get purge vim vim-runtime vim-tiny vim-common vim-gui-common 2.安装依赖文件. $ sudo apt-get install luaj

centos 中firefox 添加flash支持

百度搜索下载install_flash_player_11_linux.x86_64.tar.gz 解压 tar -zxvf install_flash_player_11_linux.x86_64.tar.gz 获得 libflashplayer.so 复制到 /usr/lib/mozilla/plugins/libflashplayer.so 32位 /usr/lib64/mozilla/plugins/libflashplayer.so 64位

在IntelliJ IDEA中添加框架支持时找不到Hibernate的解决办法

问题描述 第一次在Add Frameworks support界面中添加hibernate支持的时候,异常中断,导致没有成功添加. 第二次进入Add Frameworks support窗口时,发现找不到hibernate. 解决办法 打开项目根目录下的spring-mvc-crud.iml文件,搜索hibernate找到这段代码并删除,然后重新添加框架支持即可选择hibernate. <facet type="hibernate" name="Hibernate&qu

centos7中yum安装ntfs3g

CentOS默认源里没有ntfs3g,想要添加ntfs支持,无非是自己下载编译安装或者加源yum安装. 昨天重新安装了一个CentOS7,用的是添加aliyun的epel源来yum安装的方式,简单易行. 1.加源wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 2.安装# yum update;yum install ntfs-3g如果系统提示:没有可用软件包,可以输入# yum insta

centos7中安装mongodb3.6

centos7中安装mongodb3.6 首先更新系统 yum -y update 1.安装Mongodb 编辑Mongodb安装源 vim /etc/yum.repos.d/mongodb-org-3.6.repo 编辑内容如下: [mongodb-org-3.6] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1

在CentOS7中手工编译安装Mysql5.7

在CentOS7中手工编译安装Mysql5.7 实验介绍:由于Mysql自从5.5之后,都需要安装boost的函数库,所以和LAMP中编译安装Mysql略有不同,配置文件也不一样,下面来介绍. 1.首先查看CentOS7之前是否安装过Mysql,先要进行删除,使用的命令是. rpm -q mysql 2.首先使用yum仓库安装所需要的开发包和软件包. yum -y install ncurses \ #提供字符终端处理库 ncurses-devel \ #ncurses开发包 bison \ #

CentOS7中部署KVM虚拟化平台

CentOS7中部署KVM虚拟化平台 虚拟化介绍 虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原来的物理结构,使用户可以灵活管理这些资源,并允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术. 虚拟化优势: 减少了服务器的数量,降低了硬件采购成本 资源利用率最大化 降低机房空间.散热.用电消耗的成本 硬件资源可以动态调整,提高了企业IT业务的灵活性 高可用性 在不中断服务的情况下进行物理硬件调整 具备更高效的容灾能力 KVM虚拟化: KVM自从Linux2.6

为UiAutomatorViewer添加xpath支持

UiAutomatorViewer是Android SDK自带的测试工具,用来查看手机或模拟器上的界面元素,小巧,简单,开箱即用,十分方便.美中不足之处在于,它不能获取界面元素的xpath. 写自动化测试脚本时,xpath是一种非常方便的定位方式.Appium等一些成熟的工具框架可以获取到界面元素xpath,但使用起来稍有点重量级.那么是否也可以给UiAutomatorViewer添加xpath支持呢? 答案是肯定的. 首先下载UiAutomatorView源代码,我用的地址是https://a

在CentOS7中给docker加权限

在CentOS7中运行NodeJs的容器,发现挂载的本地目录在容器中没有执行权限,经过各种验证和Google搜索,找到了问题的原因,这里做一下记录.原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题: 1,在运行容器的时候,给容器加特权: 示例:docker run -i -t --privileged=true -v /home/docs:/src waterchestnut/nodejs:0.12.0 2,临时关闭selinux: 示例