【工程師筆記】第四期:老版Linux不用愁 ——使用DKMS輕松制作RAID卡驅動
2016-06-03
郭棟
戴爾企業級解決方案
戴爾企業級解決方案
DELL_Enterprise
在變革的時代中,唯以變,可應萬變! 戴爾企業級解決方案,讓您第一時間了解戴爾最新的服務器、存儲和網絡技術,實時獲悉戴爾大數據和雲計算等解決方案,最快掌握戴爾最新的成功案例和活動信息。以創新技術和前瞻視野,助您把握時代先機,讓企業在未來就緒!
點擊"戴爾企業級解決方案"快速訂閱
做技術的朋友可能有過類似這樣的感覺——每天都會遇到新的問題,或者學到新的知識。然而一個人的時間和精力畢竟有限,不是所有的崗位都能做到總是親力親為,每人最擅長的領域也各不相同。為了使
工程師自己踩過的坑、那些實用的心得體會也能給大家帶來幫助,把經驗記錄和分享出來就顯得尤為可貴,這就是我們開設《工程師筆記》專欄的目的。
老版Linux不用愁 ——使用DKMS輕松制作RAID卡驅動在我們的技術支持工作中,經常遇到有些客戶需要在我們的新款服務器上安裝老版本Linux操作系統,而
老版本Linux沒有內置新硬件的驅動文件,不能直接安裝。有些客戶會通過虛擬機來安裝老版本Linux。
然而有些客戶因種種原因,Linux不能運行在虛擬機上,需要直接運行在物理服務器硬件上,這就帶來了很多麻煩。
本文我們就探討,在這種情況下如何制作驅動,來安裝系統。安裝Linux操作系統時,
最大的困難往往在RAID卡驅動,這個RAID卡驅動是在安裝Linux時需要加載的,沒有它就不能識別出硬盤,Linux也將無法安裝下去。在操作系統自動識別不到RAID卡時,需要事先找到對應的驅動,才能成功安裝Linux。
而硬件廠商往往不再提供老版本Linux的驅動,這時需要利用
RAID卡廠商提供的source code(源代碼)自己制作RAID卡驅動。在戴爾官網PowerEdge R730服務器的驅動下載頁面,PERC 9系列RAID卡除了Red Hat Enterprise Linux 7之外,只提供了6.5、6.6和6.7版本的下載。而這並
不代表較早的版本都無法支持。制作RAID卡驅動有很多種方法。一種是把驅動加入到內核裡編譯,這個方法也有
局限性——制作驅動過程中一旦報錯,不容易找到出錯原因,大大增加了制作難度。而且如果需要升級內核,需要重新編譯RAID卡驅動。
這裡介紹另一種方法,可以使用
DKMS工具方便的制作出RAID卡驅動。
DKMS (Dynamic Kernel Module Support) 是Dell的一個open source開源項目,主頁在
DKMS目的是
讓依賴內核的模塊源碼獨立出來,以便升級內核的時候可以容易地重新建立。Linux模塊和內核是有依賴關系的,如果遇到內核版本的升級和變動,以前編譯的驅動模塊是無法繼續使用的,需要手動再編譯一遍。這就是Dell創建的DKMS項目的意義所在。DKMS可以幫我們
維護內核外的這些驅動程序,在內核版本變動之後可以
自動重新生成新的模塊。另DKMS也提供了強大的功能,可以利用驅動的源代碼來
編譯出相應版本的驅動。正因為DKMS工具強大的功能,很多廠商都會發布DKMS版本驅動。
DKMS的使用流程可以看下圖:
這裡我們就以老版本RedHat Linux為例,用DKMS來制作PERC H730 RAID卡驅動。
首先在一台虛擬機上安裝好需要安裝的Linux系統,以及相關模塊。
然後到LSI(現為Avago)網站下載到H730對應的
MegaRAID SAS 9361-8i的Linux驅動。解壓後,在dkms-1目錄下有一個
megaraid_sas-06.806.08.00-1.dkms.tar.gz文件。把該文件解壓後,裡面有
dkms-2.0.21.1-1.noarch.rpm和
megaraid_sas-06.806.08.00-1dkms.noarch.rpm這2個文件。
1.安裝dkms:#rpm –ivh dkms-2.0.21.1-1.noarch.rpm
2.安裝RAID卡驅動:# rpm -ivh megaraid_sas-06.806.08.00-1dkms.noarch.rpm
3. DKMS會把驅動模塊加入到目錄樹下,把驅動源代碼copy到相應位置,並生成
相應的驅動模塊文件。也可以
單獨使用DKMS生成驅動模塊文件。# dkms build -m megaraid_sas -v 06.806.08.00 -k 2.6.32-220.el6.x86_64 -a x86_64
4. 最後可以使用DKMS生成Redhat下的
驅動映像文件:# dkms mkdriverdisk -d redhat -m megaraid_sas -v 06.806.08.00 -k 2.6.32-220.el6.x86_64 -a x86_64這樣就使用DKMS工具很容易的制作出RAID卡驅動映像文件。
5. 另還可以使用DKMS創建出
rpm安裝包,對linux不熟悉的人,可以很方便的使用做好的網卡或其他的驅動或軟件rpm包安裝。# dkms mkrpm -m megaraid_sas -v 06.806.08.00
不知您看完本文有什麼感想,是否有幫助呢?如果您對《工程師筆記》欄目有任何的意見或者建議,都可以在文章下面留言,以便我們將來能夠更好地為讀者服務。相關內容導讀↓↓↓
點擊
“閱讀原文”了解更多戴爾未來就緒解決方案
閱讀
精選留言
該文章作者已設置需關注才可以留言
寫留言
該文章作者已設置需關注才可以留言
寫留言
加載中
以上留言由公眾號篩選後顯示