现在的位置: 首页 > 综合 > 正文

RedHat Linux下的HBA驱动安装

2019年08月05日 ⁄ 综合 ⁄ 共 3661字 ⁄ 字号 评论关闭

(1) 从Qlogic的网站(www.qlogic.com)上下载QLA22xx在RedHat下的驱动程序:qla2xxxsrc-vx.yy.tgz,您既可以下载到软盘,也可以直接下载到主机的某个目录文件夹;
(2) 一般,在RedHat下的安装方法有两种:下面我们分别进行介绍:
I. 建立可以自动加载驱动的用户内核
9 确认内核头文件和源文件RPMs已经安装上:
# rpm -qa | grep kernel
如果还没有安装,请用如下命令从CDROM安装:
# rpm -i kernel-source*
QLOGIC QLA22OO 使用手冊 31
# rpm -i kernel-headers*
9 采用以下步骤,建立用户内核:
# mkdir /usr/src/linux/drivers/scsi/qla2xxx/
# cd /usr/src/linux/drivers/scsi/qla2xxx/
# mcopy a:*.tgz . (最后的“.” 勿遗漏)
# tar -xvzf *.tgz
# rm -f makefile
# cp -f Makefile.kernel Makefile
9 在内核SCSI目录下编辑Makefile文件:
# cd /usr/src/linux/drivers/scsi
# vi Makefile
a. 找到“subdir-$(CONFIG_SCSI_AIC7XXX) += aic7xxx”
b. 在其下面添加如下内容
subdir-$(CONFIG_SCSI_QLOGIC_QLA2XXX) += qla2xxx
ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200),y)
SUB_DIRS += qla2xxx
MOD_IN_SUB_DIRS += qla2xxx
else
ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200),m)
MOD_IN_SUB_DIRS += qla2xxx
endif
endif
ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300),y)
SUB_DIRS += qla2xxx
MOD_IN_SUB_DIRS += qla2xxx
else
ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300),m)
MOD_IN_SUB_DIRS += qla2xxx
endif
endif
c. 找到“obj-$(CONFIG_SCSI_QLOGIC_QLA2100) +=qla2x00.o”
d. 在其下面添加如下内容
obj-$(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200)
+= qla2xxx/qla2200.o
e. 在Makefile文件的最后添加如下的内容:
qla2xxx/qla2200.o:
cd qla2xxx; make qla2200.o
9 在kernel/scsi目录下面编辑Config.in文件: 32 QLOGIC QLA22OO 使用手冊
# cd /usr/src/linux/drivers/scsi
# vi Config.in
找到“dep_tristate ’Qlogic QLA 2100 FC SCSI support’
CONFIG_SCSI_QLOGIC_QLA2100 $CONFIG_SCSI
dep_tristate ’Qlogic QLA 2200 FC SCSI support’
CONFIG_SCSI_QLOGIC_QLA2200 $CONFIG_SCSI”
添加:
source drivers/scsi/qla2xxx/Config.in
9 删除旧的Qlogic FC HBA驱动,使之不影响现在安装的新的驱动:
# cd /usr/src/linux/drivers/addon/qla2200
# mv qla2200.o qla2200_rh.o
# mv qla2300.o qla2300_rh.o
# cd lib/modules/<kernel_ver>/drivers/addon/qla2200
# mv qla2200.o qla2200_rh.o
# mv qla2300.o qla2300_rh.o
9 将配置内核以加载新的Qlogic驱动:
# cd /usr/src/linux
# make menuconfig
菜单配置如下:
Main Menu,选择SCSI Support,按回车ENTER
SCSI Support Menu,选择SCSI Generic Support,按空格键两次
选择SCSI low-level drivers,按回车ENTER
SCSI low-level drivers Menu,下拉选择
Qlogic 2xxx v6 FC SCSI support,按回车ENTER
选择Qlogic QLA 2200 v6 FC SCSI support,按空格键两次
退出Main Menu.
系统会提示:Do you wish to save your new kernel configuration?
选择Yes,系统会在当前目录保存新的配置文件
9 创立可以引导的内核映象:
# make dep bzImage modules modules_install
II. 从源代码安装,这里又可分为单处理器主机和多处理器主机
A) 单处理器的主机HBA驱动安装
9 将CDROM中的内核头文件和源文件进行解压:
# cd /mnt/cdrom/RedHat/RPMS
# rpm -iv kernel-headers*.rpm
# rpm -iv kernel-source*.rpm
9 改变目录,进行菜单配置 QLOGIC QLA22OO 使用手冊 33
# cd /usr/src/linux-2.4
# make menuconfig
Main Menu,选择SCSI Support,按回车ENTER
SCSI Support Menu,选择SCSI Generic Support,按空格键两次
退出Main Menu.
系统会提示:Do you wish to save your new kernel configuration?
选择Yes,系统会在当前目录保存新的配置文件
# make dep
9 创建一个新目录并将驱动程序进行解压
# mkdir qla2x00
# cd qla2x00
# mcopy a:*.tgz . (最后的“.”不要遗漏)
# tar -xvzf *.tgz
9 创建驱动模块
# make all OSVER=;linux-2.4
B) 多处理器的主机HBA驱动安装
9 将CDROM中的内核头文件和源文件进行解压:
# cd /mnt/cdrom/RedHat/RPMS
# rpm -iv kernel-headers*.rpm
# rpm -iv kernel-source*.rpm
9 改变目录,进行菜单配置
# cd /usr/src/linux-2.4
# make menuconfig
Main Menu,选择SCSI Support,按回车ENTER
SCSI Support Menu,选择SCSI Generic Support,按空格键两次
Main Menu,选择Processor type and features,按回车ENTER
选择Symmetric multiprocessor,按空格键SPACEBAR
退出Processor type and features
退出Main Menu.
系统会提示:Do you wish to save your new kernel configuration?
选择Yes,系统会在当前目录保存新的配置文件
# make dep
9 创建一个新目录并将驱动程序进行解压
# mkdir qla2x00
# cd qla2x00
# mcopy a:*.tgz . (最后的“.”不要遗漏)
# tar -xvzf *.tgz 34 QLOGIC QLA22OO 使用手冊
9 创建驱动模块
# make all SMP=1 OSVER=linux-2.4
C) 最后,加载驱动模块
# insmod qla2200.o
D) 设置参数,支持多个LUNs有以下几种方法:
9 系统启动时,根据boot提示,键入
boot: linux max_scsi_luns=128
9 如果SCSI Mid-Layer被编译成模块,则在/etc/modules.conf文件中添加下面的参数: option scsi_mod max_scsi_luns=128
9 如果SCSI Mid-Layer没有被编译成模块的,
对于LILO引导的可以在l/etc/lilo.conf文件中添加:append="max_scsi_luns=128" 并
#lilo
#reboot
对于GRUB,可以在/etc/grub.conf文件中添加:
kernel /vmlinux-2.4.7-10 ro root=/dev/hda2 max_scsi_luns=128
然后reboot系统。
9 或者用下面的命令:
#vi /proc/scsi/scsi
#echo‘scsi add-single-device 3 0 0 1’->/proc/scsi/scsi
其中“3 0 0 1”中,3是SCSI_ID,中间的两个0分别表示Target和
Channel,最后的数字1表示LUN号,有几个LUN就写几遍echo命令,具体参见vi命令显示出来的ID号,这样就可以看见全部的逻辑磁盘。

抱歉!评论已关闭.