LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2289|回复: 0

手动安装HighPoint RocketRaid 2640x4阵列卡驱动程序

[复制链接]
发表于 2008-11-21 10:13:02 | 显示全部楼层 |阅读模式
在我安装2640x4卡的时候,官方的debian驱动包还没有出来,只有源码,所以只好自已手动从源码开始安装驱动程序了。我们需把阵列卡驱动编译成内核模块的形式,在系统启动时加载。首先,下载官方驱程源码,在2.6.18-486内核的debian环境下编译,生成一个2.6.18-486版的驱动内核模块。接着在2.6.18-6-686内核的debian系统下再编译生成一个2.6.18-6-686版的驱动内核模块。为什么我要生成两个版本的内核驱动模块呢?这是因为我安装的debian 40r5系统在安装时使用的是2.6.18-486内核,安装完成后的系统内核是为2.6.18-6-686。 而加载的内核模块要与系统的内核匹配才能正常加载,所以我们需要两个内核版本的驱动模块,一个在安装时使用,一个供安装后的新系统使用。如果我们要加载的内核模块与系统的内核版本不一致,则在加载内核模块时会出错,并提示无效格式出错信息。这两个版本的内核模块的使用时机下面会详细介绍。

好了,准备好驱动内核模块后,就可以开始安装了。安装前期的过程就不细讲了,本节内容主要讲述阵列卡的安装。安装到搜索硬盘的时候会报错,提示找不到可以安装的磁盘介质。这时我们选择返回选项返回到安装菜单,选择运行shell进入shell环境,开始安装阵列卡驱动。把装有驱动程序的软盘放到软驱中,挂载软盘,加载驱程。

mount /dev/fd0 /floppy
insmod /floppy/rr26xx-2.6.18-486.ko
成功加载后,退出shell返回安装菜单。再次选择磁盘探测,这时就可以找到磁盘阵列了。接下来按正常步骤分区和安装系统。所有安装步骤完成后系统会提示要重启电脑,先不要按继续按钮,返回到安装菜单,我们要为新系统安装阵列卡驱动,因为我们前面加载的驱程是临时的,系统重启后就会失效。如果这时重启系统就会出错,电脑会因找不到硬盘而停留在加载根文件系统的地方。

要使系统在启动时加载驱动程序,我们需要把驱动编译成内核模块并放到initrd.img始初化内存盘中。initrd.img 在内核启动时会导入内存,生成一个虚拟的文件系统,由该虚拟的文件系统加载系统启动必须的内核模块。通过把阵列卡的内核驱动模块放进initrd.img就可使系统在加载根文件之前加载阵列驱动模块,使内核能找到阵列卡上的硬盘正常启动系统。有关initrd的工作原理请参考本书相关内容。具体操作步骤如下:

首先进入shell,挂载刚安装了新系统的硬盘,把2.6.18-6-686版的驱动模块拷贝到新系统的/lib/modules/2.6.18-6-686/kernel/drivers/scsi/目录。并进入新系统的chroot环境。

mount /dev/sda1 /mnt
cp /floopy/rr26xx-2.6.18-6-686.ko /mnt/lib/modules/2.6.18-6-686/kernel/drivers/scsi/.
chroot mnt
在2.6内核中可以用mkinitramfs工具来生成initrd.img。mkinitramfs工具的配置信息位于/etc/initramfs-tools目录下,其中/etc/initramfs-tools/modules文件包含需添加进initrd.img文件的内核模块列表。我们把驱动模块名rr26xx添加到该文件中,模块名可用lsmod命令查询得到。

运行depmod -a 2.6.18-6-686更新/lib/modules/2.6.18-6-686/modules.dep文件,该文件定义模块依赖关系,使内核模块能按正确的顺序正确加载。更新modules.dep文件后,查询该文件中可以发现rr26xx模块要依赖scsi_mod模块。

运行以下命令生成新的initrd.img,在生成新的initrd.img文件前最好先备份旧文件。

mkinitramfs -o /boot/initrd.img-2.6.18-6-686 2.6.18-6-686
-o参数设定输出文件名,最后的2.6.18-6-686指定生成初始化内存盘的内核版本号,该版本号要与系统启动的内核版本号一致。

检查/boot/grub/menu.1st文件的启动项中initrd参数指定的文件是否正确。如果没问题就可以重启电脑了。在内核启动时会出现如下阵列卡驱动程序加载的信息。

...
Nov 20 18:26:18 t022 kernel: SCSI subsystem initialized
Nov 20 18:26:18 t022 kernel: rr26xx: module license 'Proprietary' taints kernel.
Nov 20 18:26:18 t022 kernel: rr26xx:RocketRAID 26xx controller driver v1.0.08.0402 (Nov 15 2008 00:14:59)
Nov 20 18:26:18 t022 kernel: ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 169
Nov 20 18:26:18 t022 kernel: rr26xx:adapter at PCI 1:0:0, IRQ 169
Nov 20 18:26:18 t022 kernel: rr26xx:Start to probe device 1
Nov 20 18:26:18 t022 kernel: rr26xx:Start to probe device 2
Nov 20 18:26:18 t022 kernel: rr26xx:Start to probe device 3
Nov 20 18:26:18 t022 kernel: scsi0 : rr26xx
Nov 20 18:26:18 t022 kernel:   Vendor: HPT       Model: DISK_0_0          Rev: 4.00
Nov 20 18:26:18 t022 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 00
...
highpoint为阵列卡提供了方便的管理程序,在官方网站上有三种管理界面可以选择,分别是web界面,gtk界面和cli命令行界面。我选择了web界面管理方式。安装方法如下,首先到官方网站下载软件包。官方网站上只提供rpm格式的软件包,没有deb包。我们可以用alien程序把rpm软件包转换成deb格式,再用dpkg -i命令安装。具体操作步骤如下:

debian:~/inst/hpt2640x4WebGUI# alien --scripts hptsvr-https-1.4-8.i386.rpm
hptsvr-https_1.4-9_i386.deb generated
debian:~/inst/hpt2640x4WebGUI# dpkg -i hptsvr-https_1.4-9_i386.deb
Selecting previously deselected package hptsvr-https.
(Reading database ... 21670 files and directories currently installed.)
Unpacking hptsvr-https (from hptsvr-https_1.4-9_i386.deb) ...
Setting up hptsvr-https (1.4-9) ...
Adding system startup for /etc/init.d/hptdaemon ...
   /etc/rc0.d/K20hptdaemon -> ../init.d/hptdaemon
   /etc/rc1.d/K20hptdaemon -> ../init.d/hptdaemon
   /etc/rc6.d/K20hptdaemon -> ../init.d/hptdaemon
   /etc/rc2.d/S20hptdaemon -> ../init.d/hptdaemon
   /etc/rc3.d/S20hptdaemon -> ../init.d/hptdaemon
   /etc/rc4.d/S20hptdaemon -> ../init.d/hptdaemon
   /etc/rc5.d/S20hptdaemon -> ../init.d/hptdaemon
Starting hptsvr daemon.
安装完成后,打开浏览器输入https://localhost:7402就可打 ... 的登录密码。

摘自: http://www.ringkee.com debian学习笔记
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表