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'

[root@localhost

qla2xxx]# insmod ./tcm_qla2xxx.ko

insmod:

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

module

[root@localhost

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

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

[root@localhost

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驱动就不会有问题了。

tcm_fc自动加载 linux,[Fibre Channle 实战之四]centos7中如何添加tcm_qla2xxx支持相关推荐

  1. php 实现自动加载更多,$.ajax+php实战教程之下拉时自动加载更多文章原理分析二...

    摘要: 继上一篇<$.ajax+php实战教程之下拉时自动加载更多文章原理分析>文章进行进一步讲解,完善之前的代码及引入ajax和php相关内容...... 上次留下的问题不知道看官们有没 ...

  2. linux modprobe自动加载,Linux modprobe自动处理可载入模块命令详解

    modprobe(module probe) 功能说明:自动处理可载入模块. 语法:modprobe [-acdlrtvV][–help][模块文件][符号名称 = 符号值] 补充说明:modprob ...

  3. linux modprobe自动加载,Linux运维知识之Linux modprobe自动处理可载入模块命令详解

    本文主要向大家介绍了Linux运维知识之Linux modprobe自动处理可载入模块命令详解,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. modprobe(module p ...

  4. AutoCAD自动加载dll,并在CAD菜单栏中添加执行该dll包含的方法的菜单(图文)

    一.让AutoCAD启动时自己装载DLL动态库 1.将.NET制作好的dll放在指定文件夹,例如D:\CADCapture\NetCAD2014.dll 2.打开CAD安装根目录,找到Support文 ...

  5. Linux如何在系统启动时自动加载模块

    下面是以前学习Linux时写的,后来仔细研究rc.sysinit后发现,只需要修改下列地方就可以了,不必这么麻烦的: rc.sysinit中有这样的一段代码: # Load other user-de ...

  6. Linux内核模块自动加载机制 .

    标题http://www.osplay.org/modules/article/view.article.php?7 思考 如果想让内核启动过程中自动加载某个模块该怎么做呢?最容易想到的方法就是到/e ...

  7. php ajax 上拉显示更多,PHP+Ajax点击加载更多内容 -这个效果好,速度快,只能点击更多加载,不能滚动自动加载...

    这个效果好,速度快,只能点击更多加载,不能滚动自动加载 一.HTML部分 ::点击加载更多内容:: 引入jQuery插件和jquery.more.js加载更多插件 jQuery $(function( ...

  8. composer php中如何执行,php中composer如何实现类的自动加载(示例讲解)

    本篇文章给大家带来的内容是关于php中composer如何实现类的自动加载(示例讲解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我们在开发项目中会经常用到第三方的类库插件,但是 ...

  9. php 自动加载函数,PHP自动加载的实例详解

    一个PHP项目,通常只有一个入口文件index.php,我们通常会在这个入口文件中写入自动加载函数,用来require以后会实例化的类文件.如:spl_autoload_register(functi ...

最新文章

  1. 【转】高性能前端3-高性能javascript
  2. Error querying database.Cause:java.sql.SQLSyntaxErrorException:ORA-00911:invalid character
  3. c ++查找字符串_C ++结构| 查找输出程序| 套装2
  4. android中shape资源定义,Android中drawable使用Shape资源
  5. 金融级分布式数据库架构设计要点
  6. 【英语学习】【WOTD】adversary 释义/词源/示例
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的停车场管理系统
  8. TYVJ P1083 分糖果 Label:bfs
  9. 【C语言】printf()函数详解
  10. matlab滤除100hz,关于滤波器滤波的问题,要求滤除3000Hz以上,但滤除后只剩下1000Hz以内的...
  11. android gesture,Android Gesture 手势创建以及使用示例
  12. 锚杆拉拔试验弹性模量计算_锚杆拉拔试验检测标准
  13. QT5.14.2 + MSVC2017_64 + MySQL5.7.29 数据库驱动编译及配置
  14. rssi参数获取_如何获取WlanGetNetworkBssList函数返回值的Rssi值
  15. silvaco 安装
  16. 前端页面截图,指定区域截图
  17. jetbrains DataGrip 1.0注册破解方法
  18. 云计算ACP弹性计算服务(二)
  19. 网络(Network)
  20. Beyond Compare反编译插件提示转换错误

热门文章

  1. goquery php,golang:Goquery简单爬虫实例
  2. Maven 多环境配置profile
  3. SpringBoot连接Redis服务出现DENIED Redis is running in protected mode because protected mode is enabled
  4. Opatch java 路径_Windows平台下opatch apply报错:OUI-67073
  5. vue ---- 数组的常用方法
  6. 数组转集合集合转数组 split方法
  7. python玩微信跳一跳_用python玩微信跳一跳
  8. python中的sklearn.svm.svr_python机器学习库scikit-learn:SVR的基本应用
  9. java张int 和 Integer的区别
  10. Android Studio 3.2升级后的编译问题解决办法