CentOS 7.2编译安装RocketRAID2340驱动

CentOS 7.2编译安装rr2340驱动

RocketRAID2340RAID卡,默认支持在CentOS 5.3版本使用,在CentOS6.x和7.x系统中,Linux内核中缺少该版本的驱动模块,需要下载驱动源码编译安装驱动模块。

而rr2340源码对linux系统内核的支持只更新到2.6,所以在CentOS 7.2下安装该驱动程序,需要对源码进行部分修改。

以下是我在CentOS 7.2系统中编译安装rr2340驱动的过程中遇到的问题及解决办法:

 

Rr2340驱动源码下载地址:

http://www.highpoint-tech.com/BIOS_Driver/rr2340/Linux/rr2340-linux-src-v1.7-090925-0900.tar.gz

参考文档:

1)、http://blog.unclesniper.org/archives/3-HighPoint-RocketRAID-230x-on-Linux-3.0.html

2)、https://help.ubuntu.com/community/RocketRaid/

1、下载源码包,并上传到/opt目录下,解压缩

# tar -xvf rr2340-linux-src-v1.7-090925-0900.tar.gz

2、进入解压缩目录,并尝试编译

# cd /opt/rr2340-linux-src-v1.7/product/rr2340/linux/

# make

编译过程中,报错信息如上图所示

1)缺少version.h文件,报错显示仅仅支持2.4或2.6的内核。

打开Makefile.def文件查看

# vim /opt/rr2340-linux-src-v1.7/inc/linux/Makefile.def

可以看到代码中只判断内核版本是否为2.6和2.4,所以我们在CentOS6.6中去对应的位置中找到version.h文件,上传到系统指定的位置,让程序按照2.6内核的编译过程进行编译。

# cp /root/version.h /lib/modules/3.10.0-327.el7.x86_64/build/include/linux/

3、保存并退出,再次执行编译命令

# cd /opt/rr2340-linux-src-v1.7/product/rr2340/linux/

# make

可以看见,编译过程可以开始了,但是此时又出现了新的问题,在osm_linux.h文件中有一行错误,找不到linux/config.h这个文件,在CentOS7.2内核中,没有linux/config.h这个文件,所以我们注释这一行,如下所示

# vim /opt/rr2340-linux-src-v1.7/osm/linux/osm_linux.h

4、保存退出,再次回到原路径,执行编译命令

# make

打开os_linux.c文件,找到第263行,修改以下内容

# vim /opt/rr2340-linux-src-v1.7/osm/linux/os_linux.c

5、保存退出,再次回到原路径,执行编译命令

# make

这次报错信息较多,主要有这么几个

1):‘KM_BIO_SRC_IRQ’未声明(在此函数内第一次使用)

打开osm/linux/osm_linux.h文件,删除或注释以下内容

# vim /opt/rr2340-linux-src-v1.7/osm/linux/osm_linux.h

2):提供给函数‘kmap_atomic’的实参太多

打开osm / linux / os_linux.c和osm / linux / osm_linux.c这两个文件,对于每个kmap_atomic和kunmap_atomic注释掉HPT_KMAP_TYPE参数,例如:

注意:这两个文件中的所有含有kmap_atomic和kunmap_atomic都要修改

3):错误:宏“kunmap_atomic”传递了 2 个参数,但只需要 1 个

解决方法与上一个问题解决方法相同

4):‘kunmap_atomic’未声明(在此函数内第一次使用)

5):初始值设定项里有未知的字段‘proc_info’

打开osm_linux.c文件,注释以下内容

# vim /opt/rr2340-linux-src-v1.7/osm/linux/osm_linux.c

6、再次执行编译过程,发现虽然产生了驱动文件rr2340.ko,但仍有下图报错信息,如果使用此时编译的文件安装驱动,安装过程中虽无明显报错,但是加载模块之后,系统会出现严重错误(加载模块后系统无响应,无奈之下只能重做系统)

打开osm_linux.c文件,修改或添加以下内容:

7、保存并退出,再次执行编译命令

# make

可以看见只有一条警告信息,这条信息可以忽略,到这一步,编译工作完成,接下来对编译好的驱动进行安装

# make install

可以看到驱动模块已经成功安装

8、加载驱动模块并查看(注意:加载模块的前提是在raid卡中将RAID分区已经制作完成,否则模块加载可能会失败)

# modprob rr2340

# lsmod | grep rr2340                 <<<查看驱动模块是否成功加载

# lsblk                                         <<<查看raid阵列是否被识别(在raid阵列已经创建完成的前提下)


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值