tcm_fc自动加载 linux,[Fibre Channle 实战之四]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'
[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支持相关推荐
- php 实现自动加载更多,$.ajax+php实战教程之下拉时自动加载更多文章原理分析二...
摘要: 继上一篇<$.ajax+php实战教程之下拉时自动加载更多文章原理分析>文章进行进一步讲解,完善之前的代码及引入ajax和php相关内容...... 上次留下的问题不知道看官们有没 ...
- linux modprobe自动加载,Linux modprobe自动处理可载入模块命令详解
modprobe(module probe) 功能说明:自动处理可载入模块. 语法:modprobe [-acdlrtvV][–help][模块文件][符号名称 = 符号值] 补充说明:modprob ...
- linux modprobe自动加载,Linux运维知识之Linux modprobe自动处理可载入模块命令详解
本文主要向大家介绍了Linux运维知识之Linux modprobe自动处理可载入模块命令详解,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. modprobe(module p ...
- AutoCAD自动加载dll,并在CAD菜单栏中添加执行该dll包含的方法的菜单(图文)
一.让AutoCAD启动时自己装载DLL动态库 1.将.NET制作好的dll放在指定文件夹,例如D:\CADCapture\NetCAD2014.dll 2.打开CAD安装根目录,找到Support文 ...
- Linux如何在系统启动时自动加载模块
下面是以前学习Linux时写的,后来仔细研究rc.sysinit后发现,只需要修改下列地方就可以了,不必这么麻烦的: rc.sysinit中有这样的一段代码: # Load other user-de ...
- Linux内核模块自动加载机制 .
标题http://www.osplay.org/modules/article/view.article.php?7 思考 如果想让内核启动过程中自动加载某个模块该怎么做呢?最容易想到的方法就是到/e ...
- php ajax 上拉显示更多,PHP+Ajax点击加载更多内容 -这个效果好,速度快,只能点击更多加载,不能滚动自动加载...
这个效果好,速度快,只能点击更多加载,不能滚动自动加载 一.HTML部分 ::点击加载更多内容:: 引入jQuery插件和jquery.more.js加载更多插件 jQuery $(function( ...
- composer php中如何执行,php中composer如何实现类的自动加载(示例讲解)
本篇文章给大家带来的内容是关于php中composer如何实现类的自动加载(示例讲解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我们在开发项目中会经常用到第三方的类库插件,但是 ...
- php 自动加载函数,PHP自动加载的实例详解
一个PHP项目,通常只有一个入口文件index.php,我们通常会在这个入口文件中写入自动加载函数,用来require以后会实例化的类文件.如:spl_autoload_register(functi ...
最新文章
- 【转】高性能前端3-高性能javascript
- Error querying database.Cause:java.sql.SQLSyntaxErrorException:ORA-00911:invalid character
- c ++查找字符串_C ++结构| 查找输出程序| 套装2
- android中shape资源定义,Android中drawable使用Shape资源
- 金融级分布式数据库架构设计要点
- 【英语学习】【WOTD】adversary 释义/词源/示例
- 基于JAVA+SpringBoot+Mybatis+MYSQL的停车场管理系统
- TYVJ P1083 分糖果 Label:bfs
- 【C语言】printf()函数详解
- matlab滤除100hz,关于滤波器滤波的问题,要求滤除3000Hz以上,但滤除后只剩下1000Hz以内的...
- android gesture,Android Gesture 手势创建以及使用示例
- 锚杆拉拔试验弹性模量计算_锚杆拉拔试验检测标准
- QT5.14.2 + MSVC2017_64 + MySQL5.7.29 数据库驱动编译及配置
- rssi参数获取_如何获取WlanGetNetworkBssList函数返回值的Rssi值
- silvaco 安装
- 前端页面截图,指定区域截图
- jetbrains DataGrip 1.0注册破解方法
- 云计算ACP弹性计算服务(二)
- 网络(Network)
- Beyond Compare反编译插件提示转换错误
热门文章
- goquery php,golang:Goquery简单爬虫实例
- Maven 多环境配置profile
- SpringBoot连接Redis服务出现DENIED Redis is running in protected mode because protected mode is enabled
- Opatch java 路径_Windows平台下opatch apply报错:OUI-67073
- vue ---- 数组的常用方法
- 数组转集合集合转数组 split方法
- python玩微信跳一跳_用python玩微信跳一跳
- python中的sklearn.svm.svr_python机器学习库scikit-learn:SVR的基本应用
- java张int 和 Integer的区别
- Android Studio 3.2升级后的编译问题解决办法