本文根據 文章 http://www.linuxdiyf.com/viewarticle.php?id=45161刪減整理。
linux是基於模組的,所有的驅動都是模組化的:
管理模組的命令:
1、
列出系統中所有已經載入的模組的大小與名稱等:lsmod或者cat /proc/modules
ty@tonylinux:~$ lsmod
Module Size Used by
rfcomm 40216 0
l2cap 26244 5 rfcomm
bluetooth 50020 4 rfcomm,l2cap
ppdev 9220 0
radeon 116000 1
........
ty@tonylinux:~$ cat /proc/modules
rfcomm 40216 0 - Live 0xf8dee000
l2cap 26244 5 rfcomm, Live 0xf8db2000
bluetooth 50020 4 rfcomm,l2cap, Live 0xf8dc2000
ppdev 9220 0 - Live 0xf8d88000
.........
2、
modinfo 查看模組資訊:
modinfo 可以查看模組的資訊,通過查看模組資訊來判定這個模組的用途;
ty@tonylinux:~$ modinfo bluetooth
filename: /lib/modules/2.6.15-27-386/kernel/net/bluetooth/bluetooth.ko
author: Maxim Krasnyansky <maxk@qualcomm.com>, Marcel Holtmann <marcel@holtmann.org>
description: Bluetooth Core ver 2.8
version: 2.8
license: GPL
alias: net-pf-31
vermagic: 2.6.15-27-386 preempt 486 gcc-4.0
depends:
srcversion: 7EE5558C84FD3DB2B68971C
3、
modprobe 掛載新模組以及新模組相依賴的模組
modprobe 我們常用的功能就是掛載模組,在掛載某個核心模組的同時,這個模組所依賴的模組也被同時掛載;這是於insmod掛載模組有區別的地方。當然modprobe 也有列出核心所有模組,還有移除模組的功能;下在我們舉個例子說一說咱們常用的功能和參數;
modprobe -c
odprobe -c 可以查看modules 的設定檔,比如模組的別名是什麼等;
modprobe -l 是列出核心中所有的模組,包括已掛載和未掛載的;通過modprobe -l ,我們能查看到我們所需要的模組,然後根據我們的需要來掛載;
[root@localhost beinan]# modprobe 模組名 註:掛載一個模組;
root@localhost beinan]# modprobe -r 模組名 註:移除已載入的模組,和rmmod 功能相同;
4、
rmmod 移除已掛載模組
rmmod 模組名
5、depmod 建立模組依賴關係的列表
這個模組管理工具是建立模組依賴關係的列表,有幾個參數我們注意一下就行了,目前的的Linux 發行版所用的核心是2.6x版本,是自動解決依賴關係,所以這個命令知道就行了;模組之前也有依賴關係,比如我們想驅動USB 移動硬碟,目前有兩種驅動,一種是udev ,在核心中有,但目前不太穩定;另一種辦法是用usb-storage驅動,而usb-storage 依賴的模組是scsi 模組,所以我們要用usb-storage 的模組,也得把scsi 安裝
該命令為modules.dep 檔案或對應檔建立依賴關係,modules.dep檔案位於 /lib/modules/2.6.15-27-i386;這是我的電腦的目錄檔案。
6、insmod 掛載模組
insmod 這個工具,和modprobe 有點類似,但功能上沒有modprobe 強,modprobe 在掛載模組是不用指定模組檔案的路徑,也不用帶檔案的尾碼.o 或.ko ;而insmod 需要的是模組的所在目錄的絕對路徑,並且一定要帶有模組檔案名稱尾碼的(modulefile.o 或modulesfile.ko );
[root@localhost beinan]# insmod /lib/modules/2.6.11-1.1369_FC4/kernel/drivers/net/tg3.ko
模組的設定檔 modules.conf 或 modprobe.conf
核心模組的開機自動掛載模組一般是位於一個設定檔,一般的Linux發行版本都有 /etc/modules.conf 或 /etc/modprobe.conf 。比如Fedora Core 4.0 核心模組開機自動負載檔案是 /etc/modprobe.conf ;在這個檔案中,一般是寫入模組的載入命令或模組的別名的定義等;比如我們在modules.conf 中可能會發行類似的一行 ;
通過源碼編譯驅動一般是./configure ;make;make install ,有時程式不提供./configure ,我們可以make或make install ,或者執行make;make install ;如果不能make install ,則需要我們自己複製.o或者.ko檔案到 /lib/modules/核心版本/kernel/目錄 或 /lib/modules/核心版本/kernel/drivers 目錄中相應的驅動目錄;
這個還是自己嘗試吧,說也說不清楚,遇到問題後就知道怎麼弄了;具體的還是驅動的REAME和INSTALL為準。