SCSI裝置在Linux上跑起來(轉)
Linux在伺服器市場上表現很好,多數廠商推出的伺服器都支援Linux作業系統。但是由於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驅動了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939839/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【轉】在RHEL5上,使用udev給SCSI裝置分配靜態裝置名dev
- 讓Apache Beam在GCP Cloud Dataflow上跑起來ApacheGCCloud
- 【Linux】UDEV SCSI規則在Oracle Linux上配置ASMLinuxdevOracleASM
- Orace RAC安裝-Oracle Linux 5和6 ASM的UDEV SCSI規則配置-使SCSI裝置受信OracleLinuxASMdev
- rhel 7.x 使用 udev scsi rules 配置裸裝置dev
- 讓“是男人就下到100層”在Android平臺上跑起來Android
- 在Oracle Linux 6中識別scsi idOracleLinux
- 在TurboLinux上的安裝 Informix for Linux(轉)LinuxORM
- 無需 root 實現在 Android 裝置上執行 LinuxAndroidLinux
- linux上建立裸裝置問答Linux
- 用J2ME在移動裝置上實現動畫(轉)動畫
- Linux裝置驅動程式 (轉)Linux
- Linux裝置管理指令setleds(轉)Linux
- 3分鐘在Linux(Deepin)下跑起LaravelLinuxLaravel
- 在linux上安裝oracle10g(轉載)LinuxOracle
- LINUX-LILO可以裝在軟盤上(轉)Linux
- 在Linux上安裝Sybase的注意事項(轉)Linux
- 在Linux上不帶硬體安裝Asterisk(轉)LinuxAST
- 在系統上檢視網路卡裝置
- AssetBundle在移動裝置上丟失
- Linux下即插即用裝置的安裝(轉)Linux
- Linux 2.6核心的裝置模型(轉)Linux模型
- 在Linux上安裝gskitLinux
- 在Linux上安裝postgresqlLinuxSQL
- 在 Linux 上安裝 PostgreSQLLinuxSQL
- sas(serial attached scsi--序列連線scsi)_轉摘
- 在硬碟上安裝windows,linux,solaris的組合(轉)硬碟WindowsLinux
- 在Linux機器上安裝執行Oracle(三)(轉)LinuxOracle
- 在Linux機器上安裝執行Oracle(二)(轉)LinuxOracle
- 在Linux中使用UDEV繫結裝置Linuxdev
- 在Linux系統中儲存裝置的兩種表示方法(轉)Linux
- 在 Android 裝置上搭建 Web 伺服器AndroidWeb伺服器
- OpenGLES API 3.0在 32bit裝置上失效API
- 在Ubuntu上安裝openssh(轉)Ubuntu
- Linux下的硬體驅動——USB裝置(上)(驅動配置部分)(轉)Linux
- 未來蘋果裝置將移植 Linux 系統蘋果Linux
- psp上裝Linux(轉)Linux
- Alpha上安裝Linux(轉)Linux