Linux裝置驅動框架、配置檔案及載入(轉)

BSDLite發表於2007-08-15
Linux裝置驅動框架、配置檔案及載入(轉)[@more@]  本講主要概述Linux裝置驅動框架、驅動程式的配置檔案及常用的載入驅動程式的方法;並且介紹Red Hat Linux安裝程式是如何載入驅動的,透過了解這個過程, 我們可以自己將驅動程式放到引導盤中;安裝完系統後,使用kudzu自動配置硬體程式。

  Linux裝置驅動概述

  1. 核心和驅動模組


  作業系統是透過各種驅動程式來駕馭硬體裝置,它為使用者遮蔽了各種各樣的裝置,驅動硬體是作業系統最基本的功能,並且提供統一的操作方式。正如我們檢視螢幕上的文件時,不用去管到底使用nVIDIA晶片,還是ATI晶片的顯示卡,只需知道輸入命令後,需要的文字就顯示在螢幕上。硬體驅動程式是作業系統最基本的組成部分,在Linux核心源程式中也佔有較高的比例。

  Linux核心中採用可載入的模組化設計(LKMs ,Loadable Kernel Modules),一般情況下編譯的Linux核心是支援可插入式模組的,也就是將最基本的核心程式碼編譯在核心中,其它的程式碼可以選擇是在核心中,或者編譯為核心的模組檔案。

  如果需要某種功能,比如需要訪問一個NTFS分割槽,就載入相應的NTFS模組。這種設計可以使核心檔案不至於太大,但是又可以支援很多的功能,必要時動態地載入。這是一種跟微核心設計不太一樣,但卻是切實可行的核心設計方案。

  我們常見的驅動程式就是作為核心模組動態載入的,比如音效卡驅動和網路卡驅動等,而Linux最基礎的驅動,如CPU、PCI匯流排、TCP/IP協議、APM(高階電源管理)、VFS等驅動程式則編譯在核心檔案中。有時也把核心模組就叫做驅動程式,只不過驅動的內容不一定是硬體罷了,比如ext3檔案系統的驅動。

  理解這一點很重要。因此,載入驅動時就是載入核心模組。下面來看一下有關模組的命令,在載入驅動程式要用到它們:lsmod、modprob、insmod、rmmod、modinfo。

  lsmod 列出當前系統中載入的模組,例如:
CODE:
#lsmod (與cat /proc/modules 得出的內容是一致的)
Module Size Used by Not tainted
radeon 115364 1
agpgart 56664 3
nls_iso8859-1 3516 1 (autoclean)
loop 12120 3 (autoclean)
smbfs 44528 2 (autoclean)
parport_pc 19076 1 (autoclean)
lp 9028 0 (autoclean)
parport 37088 1 (autoclean) [parport_pc lp]
autofs 13364 0 (autoclean) (unused)
ds 8704 2
yenta_socket 13760 2
pcmcia_core 57184 0 [ds yenta_socket]
tg3 55112 1
sg 36940 0 (autoclean)
sr_mod 18104 0 (autoclean)
microcode 4724 0 (autoclean)
ide-scsi 12208 0
scsi_mod 108968 3 [sg sr_mod ide-scsi]
ide-cd 35680 0
cdrom 33696 0 [sr_mod ide-cd]
nls_cp936 124988 1 (autoclean)
nls_cp437 5148 1 (autoclean)
vfat 13004 1 (autoclean)
fat 38872 0 (autoclean) [vfat]
keybdev 2976 0 (unused)
mousedev 5524 1
hid 22212 0 (unused)
input 5888 0 [keybdev mousedev hid]
ehci-hcd 20104 0 (unused)
usb-uhci 26412 0 (unused)
usbcore 79392 1 [hid ehci-hcd usb-uhci]
ext3 91592 2
jbd 52336 2 [ext3]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-960036/,如需轉載,請註明出處,否則將追究法律責任。

Linux裝置驅動框架、配置檔案及載入(轉)
請登入後發表評論 登入
全部評論

相關文章