石锅拌饭

如何为SUSE Linux Enterprise Server 10.0安装RAIDcore驱动

by Robin Lu on Jun.17, 2007, about , , , ,

这两天碰到一个问题,就是在一台使用了TYAN S3970主板的服务器上安装SUSE Linux Enterprise Server 10.0,并支持RAID。TYAN好几款AMD方案的主板都选用了Broadcom的芯片组,如果希望支持RAID,都会碰到这个问题。
CIPRICO提供了一些Linux Distribution的驱动,有SuSE 10.0(kernel version 2.6.13-15.7)但没有SuSE Enterprise Server 10.0(kernel version 2.6.16.21-0.8)。经过几个小时的尝试并刻废了数张CDR后,终于安装成功。基本步骤如下:

编译驱动

1. 找一台机器,安装同一版本的SuSE ES 10.0,我需要安装的是i386版本,我用vmware把它装在了我的iMac上。
2. 安装必要的package,包括通用编译工具和kernel-source。
3. 准备好编译环境。你可能需要编辑至少两个版本的驱动,一个是针对2.6.16.21-0.8-default内核,为了安装程序能够发现你的raid;另一个针对2.6.16.21-0.8-smp或者2.6.16.21-0.8-bigsmp内核,是你的服务器最终安装的驱动。因此,在/lib/modules目录下,除了和你目前系统内核对应的目录外,还需要创建另一个。对我来说,我在iMac上安装的是2.6.16.21-0.8-default,我在/lib/modules目录下又创建了一个2.6.16.21-0.8-bigsmp,在这个目录下面建一个到相应目标文件的链接:

cd /lib/modules
sudo mkdir 2.6.16.21-0.8-bigsmp
cd ./2.6.16.21-0.8-bigsmp
sudo ln -s /usr/src/linux-2.6.16.21-0.8-obj/i386/bigsmp build

4. 下载bcraid driveer SDK

curl http://kb.ciprico.com/raidcore/Downloads/V2.1/LIN-DRV-SDK_RC-210-2006044_3.tar
tar xvf LIN-DRV-SDK_RC-210-2006044_3.tar

5. 首先,编译default kernel版本的驱动。因为我目前安装的就是default kernel,所以make的时候不需要加任何选项。否则需要加KVERS=2.6.16.21-0.8-default。

cd ./LIN-DRV-SDK/bcraid
cp Makefile_2.6 Makefile
make
cd ../bccfg
cp Makefile_2.6 Makefile
make

6. 保存好你编译出的bcraid.ko和bccfg.ko
7. 编译bigsmp版本的驱动

cd ../bcraid
make KVERS=2.6.16.21-0.8-bigsmp
cd ../bccfg
make KVERS=2.6.16.21-0.8-bigsmp

8. 好了,你目前有了你需要的两个版本的驱动,别把它们搞混了。

制作安装盘

如果你有兴趣,可以仔细阅读一下SuSE关于DUD(Driver Update Disk)的文档。而你要做的是:
1. 准备好一个update.tar.gz文件。将你编译好的两个版本的驱动按照下面的目录结构放好:
Updatetargz
不要放错了,然后在lib上层目录打包:

tar cvfz update.tar.gz lib

2. 下载一份ciprico提供的SuSE 10.0的iso,虽然你不能用它装,但是你需要其中的脚本。
3. 按照下面目录结构准备好你需要的文件,

Driveriso
其中update.tar.gz是你准备好的。modules目录下的bcraid.ko是2.6.16.21-0.8-default版本的驱动,SuSE installer需要它。其他的文件都可以从上一步下载的iso中得到。
4. 将这些文件以iso 9660格式刻一张光盘。

安装

1. 启动SuSE Linux Enterprise Server 10.0的安装盘。在第一个菜单选择F5 (Dirver Update),选Yes确认。然后选择菜单中的Installation。
2. 系统进入Linuxrc,将刚做好的光盘放入光驱,然后选择正确的资源媒介,OK。
3. 很快系统会告诉你Driver Updated成功,并能找到你的raid array。选择back回到Installer,完成安装。
大功告成!

注意事项

  • 在编译前确认你已经安装了kernel-source这个package。你不需要重新编译内核,但你需要编译kernel modules。
  • update.tar.gz和最后光盘中的目录名一定要和你安装的kernel版本一一对应。如果在Linuxrc中无法找到驱动,多半是目录名和kernel版本不对应造成的。
  • 如果安装的时候可以找到硬盘,重启了一次后却又无法找到,那可能是你在update.tar.gz中提供的驱动于最终安装的内核版本不一致。
  • 如果你不确定最后安装的是那个kernel,最好default, smp, bigsmp都编译一份。

有用的资源

RAIDCore v2.1 Software Downloads
Creating a Driver Update Disk (DUD)
Update Media HowTO

:, , , ,

Comments are closed.

Search

Archives

Browse by tags

agile apple blog book design ecto extension firefox git google hack ichm iphone keyword life mac madfox movie nonsense opensource plugin pm ruby rubyonrails sns software startup wordpress work 财帮子