一. 設備管理概述
1. Linux設備的分類
字符設備(c):以字符爲單位,傳輸速率較低,無需緩衝區。
塊設備(b):以數據塊爲單位組織和傳輸數據,需要建立緩衝區
管道設備(p):是一種FIFO緩衝區
網絡設備:一種通過SOCKET接口進行主機通信的設備
2. Linux系統設備管理層次
(1) 上層的設備文件
功能:用於用戶訪問設備進行輸入和輸出操作
常見的設備文件:設備文件通常保存在/dev
/dev/hd* IDE接口的硬盤
/dev/sd* SCSI/USB設備
/dev/cua* 串口設備
/dev/lp* 並口設備
/dev/tty* 終端設備
/dev/consol 控制檯設備
/dev/eth* 以太網設備
/dev/cdrom 光驅
/dev/fd* 軟驅
/dev/audio 音頻設備
/dev/scd SCSI的光驅
/dev/ppp PPP設備
/dev/isdn* ISDN設備
建立設備文件:
# mknod
格式:mknod 文件名 類型 主設備號 從設備號
類型:c字符設備
b塊設備
p管道設備
實例:# mknod /dev/fdo b 1 2
(2) 下層的驅動程序
功能:用於直接控制設備
二. 驅動程序的安裝
1. Linux驅動程序的特點
內核代碼:驅動程序可以和內核代碼相結合
動態加載:驅動程序作爲內核的可裝模塊
可配置性
2. 安裝過程
(1) 獲取設備的驅動程序(*.tar.gz)
(2) 解壓、生成目標文件複製到/lib/modules/內核版本號/kernel/drivers/相應子目錄中
(3) 添加到內核中
實例:在RH 9.0 Linux中安裝D-link 530tx 100m網卡驅動
(1) 從http://www.legend-networks.com.cn/downfile/linux530_321.tar處下載驅動到/usr/src目錄中
(2) #cd /usr/src;tar –xvf linux530_321.tar
(3) #cd linux530_321;make
(4) #cp via-rhine.o /lib/modules/2.4.20-8/kernel/drivers/net/
(5) #vi /etc/rc.d/rc.local
添加以下內容:
/sbin/modprobe via-rhine
注:modprobe用於裝載驅動程序模塊,也可以用以下方法實現:
#vi /etc/modules.conf
添加以下內容:
alias eth0 via-rhine
(6) # init 6
注:(1)lsmod 顯示內核模塊
(2)modprobe 模塊名 添加模塊,自動解決依賴關係
(3) insmod 模塊名 添加模塊,手工解決依賴關係
三. 編譯升級內核
1. 內核功能
內核是Linux操作系統核心部分,現在的操作系統都採用層次結構,功能模塊化.作爲內核主要有以下功能:
n 實現定時器和中斷處理
n 實現對虛擬內存的管理
n 實現進程之間的通信
n 實現對外圍設備的驅動
n 實現對虛擬文件系統的管理
n 對網絡的支持和管理
2. 編譯升級的理由
n 現有內核不支持或沒有將用戶系統中某些硬件的驅動程序編譯
n 刪除內核中實際系統中根本不用的設備驅動,以減少對內存的佔用
n 使用一些現有的內核沒有編譯進去的網絡通信協議
n 提高Linux的效率
n 修改錯誤、支持新的應用程序
3.編譯升級kernel-2.6.0
kernel-2.6.0的編譯升級比以前的版本要簡單的多,具體如下:
(1) 下載2.6.0的內核到/usr/src/
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.0.tar.gz
(2) 在/usr/src目錄下解壓內核
#cd /usr/src
#tar zvxf /usr/src /linux-2.6.0.tar.gz
(3) 配置
#cd /usr/src/linux-2.6.0
# make mrproper
# make menuconfig
注:make mrproper 是清理代碼樹的動作,保證源代碼是乾淨的
(4) 編譯
#make
(5) 安裝
#make modules_install
#make sinstall