LinuxHall - 淺談管你的驅動程式

来源:百度文库 编辑:神马文学网 时间:2024/04/30 01:57:48
技術文章: 淺談管你的驅動程式
此文章由zunix 發表於星期一, 九月 20 @ 00:57:34 HKT

電腦系統的中央部份是為核心 (kernel),所有稱得上電腦糸統都有核心,如Mac、Windows、BeOS。當然 LINUX 也有核心。一般來說核心是用來運算,其他而的事情、像電腦上的硬體組件的控制都不是由核心照料,這些硬體設備的驅動程式都排除在核心之外,我們通稱這種核 心為微型核心,Windows 和 Mac 便是採用這種核心了。另一種今天越來越普遍,但又不是甚麼的新發明,我們稱之為一體化核心。一體化核心是由數據運算至硬體管理也包含在內,換言之所有滑 鼠,顯示咭及打印機也是牠要管理的工作,即是連的們一般所說的硬件驅動程式也包括在核心之內。

在 Linux 之下不會像 Windows 般有驅動程式下載網站,因為全部在包括在核心之中
驅動程式與核心
一體化核心對一個用家來說牠的種類和大小像是與他不相關的事,但當對要求硬體功效有高穩度的用家來說,兩者就有明顯的分別。一體化核心的硬體效能表現上一 直都比微型核心好,理由是核心內同時包含了運算和驅動程式,在設計和編譯核心時兩者高度融合,反之微型核心就沒有這種優點,核心是獨立的設計及編譯,驅動 程式則由硬件供應商自行編寫,當要控制一件硬件時,驅動程式傳達要求至系統管理部份,再利用微型核心的運算功能,最後回傳至硬體作出相關的動作。之間如果 有設計上訊號有時間的誤差 ,或因為便利廠商易於配合編寫程式,而在設計時糸統犧牲了最高的效能表現,那硬件的效能表現和穩定自然大打折扣了。

傳統在文字模式之下設定驅動程式
既然一體化核心對硬體高效能表現有上述的保証,為甚麼現時流行的電腦系統都採用微型核心?這個問題的答案是全基於業商業考慮。第一是一體 化核心的開發成本高而版本周期亦相應的長,第二是方便將整個系統的設計分工,好讓各程式設計者自行撰寫各自的部份。最後一個是可以讓硬件生產廠商自已撰寫 驅動程式,方便更快生產各種產品。
缺點
由於 Linux 採用了一體化的核心,在硬體的效能的表現雖然是好到不得了,但缺點是沒法追上過去幾年的快速的新產品周期。最明顯是在 USB 產品剛瘋狂推出的 1998 至 2000 兩年間。那段時間 Linux 核心還是停留在 2.0 版本,對於做伺服器是卓卓有如,對做桌面硬體的支援就幾乎失去作戰能力,這個情況直至可稱為針對桌面版本的 2.4 版本的核心在 2000 年元旦推出才有改善。由於核心技術不斷改良,廠商亦落實對 Linux 的支援,對於市面上大部新產品, 驅動程式支援各種的硬體今天已經相當成熟,當然使用設定上還流於過份技術化,必需學習,至於最新版本 2.6 的是針對企業對高效的要求,如多CPU,群集使用,高記憶體和虛擬記憶體等。

在 Linux 之下也類似這個在 Windows 之下設定打印機之介面
不消耗系統資源的硬體驅動程式管理
上述所說一體化核心中的硬體驅動程式多數會以模組化處理,這是 Linux 核心的特色。在 Linux 上幾乎所有的驅動程式都可以編譯成模組,需要用時作載入系統,平時是閒置一角,幾乎不消耗系統資源,也不會因為驅動程式出現錯誤而拖跨系統。這是做成 Linux 穩定的另一個原因。在這編文章便是淺談如何管理這些驅動程式。

包括在核心的驅動程式會分門別類
核心的驅動程式管理工具
驅動程式多稱為模組或英文 Module,管理與核心同時編譯出來的驅動程式,是需要有特定的工具,核心 2.4 版本用的是 Modutiles,而 2.6 版本所用的是 Modules-init-tools。無論那一種工具,他提供與使用者的執行指令是相同的。這些指令給與系統,或用戶直接的管理使用一切的驅動程式。
這裡是一些管理執行指令
執行指令 例句
modprobe (使用例句:modprobe scanner) 使用指定驅動程式模組,連同有相關的支援模組一起使用 (每次一個)
modinfo (使用例句:modinfo 8139too) 作用讀取指定驅動程式模組的資料
insmod (使用例句:insmod 8139too) 使用指定驅動程式模組 (每次一個)
rmmod (使用例句:rmmod 8139too) 停止/移除指定驅動程式模組 (每次一個)
lsmod 列出正在使用驅動程式模組

使用 lsmod 指令可列出正在使用的驅動程式
管理模組需要有很系統管理人的權力,指用指令時亦需要在終端機上操作,隨了列出 (lsmod) 正在使用驅動程式模組外 ,所有的使用句法都是指令後加上指定模組的名稱。而 modprobe 和 insmod 的最大分別是 modprobe 會查閱系統記錄將有相關的模組一起使用,而 insmod 就會警告不能處理相關的模組而拒絕使用該模組。

在 /etc/modprobe.d 目錄中有核心模組的設定檔案
還有一點需要說明的是模組的名字通常是該驅動程式的簡稱,未必可以就名稱看出該模組的用途,,這個時侯可用 modinfo 來查見該模組的全名和類別,而最重要的是還有一些可供使用的程式參數。現時也有一些圖像介面軟件可協助了解模組資料,甚至可以修改一些該模組使用時的參 數。
Gmodconfig
Gmodconfig 是而個可以查看模組資料的軟件,這個並不是包括在 Gnome 2.4 中的標準軟件,用戶必須自行安裝,他的下載網站是 http://gmodconfig.sourceforge.net/。他同時需要套件 gmodconfig-data 及 dkms。安裝可用指令 rpm。Gmodconfig 是支援 2.6 版本核心。

Gmodconfig 的網站
下面是三個下載的位置:
http://heanet.dl.sourceforge.net/sourceforge/gmodconfig/gmodconfig-0.6.i386.rpm
http://aleron.dl.sourceforge.net/sourceforge/gmodconfig/gmodconfig-data-0.1-1.noarch.rpm
http://www.lerhaupt.com/dkms/permalink/dkms-1.00-1.noarch.rpm
(安裝 Fedora Core 1 上的範例:rpm -ivh gmodconfig-0.6.i386.rpm gmodconfig-data-0.1-1.noarch.rpm dkms-1.00-1.noarch.rpm)
使用 Gmodconfig 不只可以查看模組資料,亦可以透過這個軟件將一些模組需要的參數寫入核心模組的設定檔案,如 2.4 核心使用的 modules.conf 和 2.6 核心使用的 modprobe.conf 及位於 /etc/modprobe.d 目線內的所有設定檔案。啟用 Gmodconfig 的指令是 gmodconfig,如果想用圖示來啟動必須自行建立。
大致上管型核心模組(即驅動程式)只有上述的工具,一般來說系統在設定時會將為你好好的處理一切的硬體,如果是一些後加上的硬體也會有自動楨察的工具,要不然用動就要自行的手動設定,最重要是看說明書和搜習網上文件學習如何解決問題。

在 Gmodconfig 中可查到模組有那一些參數可改變

在 Gmodconfig 中修改模組參數

使用 redhat-config-proc 也可以修改一些模組的參數

在 Gmodconfig 中有一個安裝新模組的功能,可是目前未可使用
作者:Zunix Ling
開放系統研用協會
網站:www.oaka.org