当前位置:操作系统 > Unix/Linux >>

PromiseFastTrakRaid驱动的解决办法

原文: http://members.rogers.com/sith.warrior/build.htm

  下文为粗略的翻译.

  ----------------------------------------*----------------------------------------

  好的. 到这儿. 我们假定你有一些成功编译内核的经验

  尽管这个教程不是很确切复杂的.(以我的标准).有一些地方.

  可以算是点经验. 我将包括建立驱动磁盘和升级内核两部分,

  以 root 根用户登陆. 打开一个或两个桌面的控制台.

  <辅助资源>

  <<"Kernel (compiling) HowTo - Everyone should read this">>

  <<"ATA-RAID HowTo - Lots of useful tidbits">>

  <<"Linux Migration to Promise RAID-1 HowTo - More good stuff">>

  <<"Promise Technologies Inc. - FastTrak source code is in TX2 download">>

  <开始>

  现在我们按步骤进行, 我们需要内核源代码和 FastTrak 的源代码.从 Promise 网站下载 FastTrak 的部分

  源代码.(FastTrak 100 Tx2下载页面) 保存它到根用户目录(root's home)下. 并解压它:

  #tar zxvf 4_ftsrc_b25.tgz

  假设我们正工作再 Red Hat 9.0 内核 2.4.20-8 下.(但是我们可以工作在任何 Red Hat 内核)

  这时本地目录:

  #/usr/src/linux-2.4.20-8

  但是 FastTrak 源代码, 不知道这个目录, 所以我们需要创建一个链接到这个目录

  #/ln -s /usr/src/linux-2.4.20-8 /usr/src/linux

  <主题>

  下面分两部分

  建立驱动磁盘

  升级内核

  [建立驱动磁盘]

  从此开始会比较有趣. 多数情况我们在这儿是编译并重新打包. 但是我们怎么制作它是更有意思的.

  我们需要一张格式化好的软盘.来放官方的 Promise's FastTrak 驱动程序包

  你需要特别标柱的 - 单处理器 (Uniprocessor or SMP). 下载并解压它到:

  /root/FastTrak

  这个目录就像临时文件夹. 主要用来定制我们的驱动磁盘,

  首先,我们需要解压模块并且创建我们定制所需要的目录.

  #cd /root/FastTrak

  #mkdir modules

  #cp modules.cgz modules

  #cd modules

  #zcat modules.cgz | cpio -i -d

  #rm -f modules.cgz

  #mkdir 2.4.20-8

  #mkdir 2.4.20-8BOOT

  注意被创建的目录是服务于每个内核的. 在那有两个驱动. 一个标准版和一个BOOT版.

  这是关键的. 当你安装 Red Hat 时. 安装程序是建立在 kernel-2.4.20-8BOOT 配置上的.

  在进行任何安装动作之前. 安装程序搜索磁盘上对应的 FastTrak BOOT 模块并加载.

  假如 BOOT 核心没有搜索到与之匹配的 BOOT 版的模块. 加载失败. 你的FastTrak 设备

  将不会被发现.

  所以我们还需要编译BOOT版的模块. 安装程序之所以匹配这个内核是必须需要这个配置文件的.

  幸运的是 Red Hat 为我们提供了配置文件. 我们不许要编译这个内核. 仅仅需要配置它:

  #cd /usr/src/linux-2.4.20-8

  #make clean

  #make mrproper

  #rm -f .config

  #cp configs/kernel-2.4.20-BOOT.config .config

  现在.使用你喜欢的文本编辑器来修改 Makefile :

  EXTRAVERSION=-8BOOT

  ...并且你应该这样去定义变量:

  #make dep

  到这里核心配置算完成了. 我们可以继续去编译 FastTrak BOOT 版模块:

  #cd /root/ftsrc

  #make

  #cp FastTrak.o /root/FastTrak/2.4.20-8BOOT

  #make clean

  下一步的设置是正确的重复上面的步骤来恢复被我们为创建 BOOT 模块所作的修改,

  然后编译标准核心模块

  #cd /usr/src/linux-2.4.20-8

  #make clean

  #make mrproper

  #rm -f .config

  #cp configs/kernel-2.4.20-i386.config .config

  #vi Makefile (修改为 EXTRAVERSION=-8)

  #make dep

  #cd /root/ftsrc

  #make

  #cp FastTrak.o /root/FastTrak/2.4.20-8

  #make clean

  至此.我们编译完成 FastTrak 驱动模块. 现在我们需要重新打包. modules.cgz 并制作驱动软盘.

  #cd /root/FastTrak/modules

  #find . -type f | cpio -H crc -o | gzip -9 > ../modules.cgz

  #cd ..

  #rm -fr modules

  装载 DOS 格式的软盘并复制 FastTrak 目录下所有的文件到软盘.

  ...好了. ..... :-)

  完成.

  就这样 ~! 这样做可以创建你需要的任何版本的 Red Hat 驱动软盘.

  [升级内核]

  这个过程已经激怒了不少人. 使用正确的方法配置好的 FastTrak 设备. 启动并运行你的系统.

  你决定这个时候升级内核. 或者编译一些新功能到你当前内核.

  你试着重新启动, 但是却得到 'Kernel Panic' . 没有任何问题. 在这是什么错误.

  按照 Red Hat 从 RAID 设备的启动顺序. 它必须首先加载 FastTrak (scsi & sd) 设备驱动

  #cd /usr/src/linux-2.4.20-8

  #make clean

  #make mrproper

  #make xconfig

  (如果需要请先修改 Makefile 文件中的 EXTRAVERSION = -8custom)

  #make dep

  #make bzImage

  #make modules

  #make modules_install

  #make install

  假如你得到一个错误关于 FastTrak.o 当前内核版本没有被寻找到. 正确的从/etc/modules.conf

  里移除 FastTrak 关联并重新 'make'

  编译内核.那样我们可以正确的执行并产生一个内核映象文件和一个initrd(initial ramdisk)

  文件为你定制的的内核 (custom kernel). 但是它不考虑 FastTrak (和 scsi & sd) 模块是需要

  按顺序的启动新内核. 为此, 我们需要创建一个新的 initrd 文件. 但是首先需要更新 FastTrak 驱动:

  #cd /root/ftsrc

  #make

  #cp FastTrak.o /lib/modules/kernel-2.4.20-8custom/drivers/scsi

  这样编译放置是为了更新 FastTrak 驱动, 在那儿内核能找到他们. 我们继续编译 initrd 映象:

  #cd /usr/src/linux-2.4.20-8

  #rm -f /boot/initrd-2.4.20-8custom.img

  #mkinitrd --preload scsi --preload sd --with FastTrak /boot/initrd-2.4.20-8custom.img 2.4.20-8custom

  OR

  #new-kernel-pkg --depmod --mkinitrd --install 2.4.20-8custom

  注意.我们如何在加载FastTrak模块前 'preload' scsi & sd 模块. 这是认出 FastTrak 驱动前必须的

  就像 psuedo-scsi 设备代替一个真实的 RAID 阵列. 创建一个真实的本地 Linux ATA-RAID 设备.请

  阅读 HowTo. 我曾经考虑转换我的设置到本地的 ATA-RAID 但是又背离了我的本意. 它将仅仅能被GRUB引导.

  而LILO不能. 并且由于我害怕硬盘只能被GRUB引导... 并且由于GURB 比较好. 但是我放弃了.

  好了. 至此 在访问RAID阵列前 Initial Ramdisk 加载 FastTrak 驱动模块 是没有任何错误了.
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,