藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 系統管理


    

藍森林 http://www.lslnet.com 2006年8月18日 15:18


在Linux上跑 SCSI設備

由於Linux的版本眾多而且服務器的硬件種類繁雜,所以在服務器上使用Linux的時候,會遇到某些SCSI設備(SCSI適配卡、Raid卡等)不被某些版本Linux所支持的情況。

如果用戶使用的SCSI設備驅動已經包含在Linux源代碼中(實際上Linux源代碼包含了大多數主流設備驅動程序),就可以直接使用Linux源代碼來驅動相應的SCSI設備。如果SCSI設備驅動不包含在Linux源代碼中,則需要通過廠商提供的驅動程序來進行安裝。

SCSI設備驅動已經包含在Linux源代碼中,又可分為兩種情況,即直接編譯進內核和編譯為動態模塊。下面分不同情況討論在Linux上安裝SCSI驅動的具體方法。

編譯進內核

在此類情況下,進入Linux源代碼樹,重新配置Kernel。在「SCSI support」中,對於相關項選擇以「*」(build-in)方式編譯,如下所示:




<*>; SCSI support
--- SCSI support type (disk, tape, CD-ROM)
<*>;   SCSI disk support
(40) Maximum number of SCSI disks that can be loaded as modules
<*>;   SCSI tape support
<*>;   SCSI OnStream SC-x0 tape support
<*>;   SCSI CD-ROM support
[*]     Enable vendor-specific extensions (for SCSI CDROM)
(4) Maximum number of CDROM devices that can be loaded as modules
<*>;   SCSI generic support




此外,還要找到對應的SCSI設備型號的驅動,同樣選擇以「*」(build-in)方式編譯。比如用戶使用的是AIC79xx的適配器,就可以選上下面的選項:
<*>; Adaptec AIC79xx support

選擇完後,編譯新的內核,然後使用新的內核來啟動,最後查看SCSI設備有沒有正常工作起來。

動態模塊

在此類情況下,進入Linux源代碼樹,重新配置Kernel。在「SCSI support」中,對於相關項選擇以「M」(modules)方式編譯。選項同「編譯進內核」中的情況,但是「Enable vendor-specific extensions (for SCSI CDROM)」一定要直接編譯進內核。

此外,用戶一定還要選上「Block devices」選項中的「RAM disk support」的子選項,否則新的Kernel將無法啟動。內容如下:


<*>; RAM disk support
(8192)   Default RAM disk size
[*]   Initial RAM disk (initrd) support




按這種方法編譯完Kernel和Modules後,還要生成一個新的Ram Disk的鏡像文件才能正常啟動。對於Red Hat來說,這個文件通常命名為initrd.X.X.XX.img。X.X.XX對應於Kernel的版本號。具體執行過程如下:


# cp /boot/initrd-2.4.20-8.img  .
# mkdir /mnt/ram
# gunzip -c initrd-2.4.20-8.img >; ./initrd
# mount -o loop ./initrd /mnt/ram/
# ls /mnt/ram/
bin  dev  etc  lib  linuxrc  loopfs  proc  sbin  sysroot




可以看到ram的目錄很像一個小型的Linux文件系統,用戶可以自己將編譯好的模塊文件放到這裡。這樣在Kernel啟動時,可以把用戶定制的驅動模塊加載到Ram Disk中。修改完畢後,用以下方法進行保存:


# umount /mnt/initrd
# gzip /root/initrd
# cp /tmp/initrd.gz /boot/initrd-2.4.20-8.img




這個「迷你」系統中包括了對應的SCSI驅動和加載驅動的程序。通過這個「迷你」系統,Linux就能成功地以模塊方式動態加載SCSI驅動了。

在Linux上跑 SCSI設備

頂一個
好東西
收藏,慢慢品位



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com