設備和內核管理
linux
一. 設備管理概述微信
1.Linux設備的分類網絡
字符設備(c):以字符爲單位,傳輸速率較低,無需緩衝區。ide
塊設備(b):以數據塊爲單位組織和傳輸數據,須要創建緩衝區模塊化
網絡設備(s):一種經過SOCKET接口進行主機通訊的設備工具
2.設備文件ui
(1)功能spa
用於用戶訪問設備進行輸入和輸出操做操作系統
(2)常見的設備文件debug
/dev/hd* IDE接口的硬盤(IDE接口的設備)
/dev/sd* SCSI/USB設備
/dev/cua* 串口設備
/dev/lp* 並口設備
/dev/tty* 終端設備
/dev/consol 控制檯設備
/dev/eth* 以太網設備
/dev/cdrom IDE光驅
/dev/fd* 軟驅
/dev/audio音頻設備
/dev/scd SCSI的光驅
/dev/ppp PPP設備
/dev/isdn* ISDN設備
(3)創建設備文件
格式:mknod 文件名 類型 主設備號 從設備號
類型:c字符設備
b塊設備
p管道設備
s 網絡設備
實例:# mknod /dev/fdo b 1 2
3.驅動程序
(1)功能
操做系統是經過各類驅動程序來駕馭硬件設備,它爲用戶屏蔽了各類各樣的設備,驅動硬件是操做系統最基本的功能,而且提供統一的操做方式。
(2)Linux驅動程序的特色
內核代碼:驅動程序能夠和內核代碼相結合
動態加載:驅動程序做爲內核的可裝模塊
可配置性:配置硬件的相關參數
二. 編譯內核
1. 內核功能
內核是Linux操做系統核心部分,如今的操做系統都採用層次結構,功能模塊化.做爲內核主要有如下功能:
n 實現定時器和中斷處理
n 實現對虛擬內存的管理
n 實現進程之間的通訊
n 實現對外圍設備的驅動
n 實現對虛擬文件系統的管理
n 對網絡的支持和管理
2. 編譯升級的理由
n 現有內核不支持或沒有將用戶系統中某些硬件的驅動程序編譯
n 刪除內核中實際系統中根本不用的設備驅動,以減小對內存的佔用
n 使用一些現有的內核沒有編譯進去的網絡通訊協議
n 提升Linux的效率
n 修改錯誤、支持新的應用程序
3.編譯kernel-2.4.xx
(1)從www.kernel.org下載到Kernel-2.4的源代碼到/usr/src目錄中
(2)解壓縮
#tar –xzvf linux-2.4.20.tar.gz
#cd /usr/src/linux-2.4.20
(3)配置編譯參數
#make mrproper (清除上次編譯留下垃圾文件)
#make clean (清除殘留文件)
#make menuconfig
選擇處理器
Processor type and features--->Processor family--->386
Ram Disk驅動
Block devices--->
< * > RAM disk support
(4096) Default RAM disk size (NEW)
< * > Initial RAM disk (initrd) support
文件系統
File systems--->
[ * ] Ext3 journalling file system support
[ * ] Ext3 Security Labels
[ * ] JBD (ext3) debugging support
BusLogic驅動
SCSI support--->
SCSI low-level drivers --->
< M >BusLogic SCSI support
(4)解決依賴關係
#make dep (解決依賴關係)
(5)產生內核文件
#make bzImage
(6)編譯和安裝模塊
#make modules
#make modules_install
(7)安裝內核
#make install
#vi /boot/grub/grub.conf
4.編譯kernel 2.6.xx(在Red Hat 9.0環境下)
(1) 下載2.6.0內核及相關工具到/usr/src/
http://www.kearnel.org/pub/linux/kernel/v2.6/linux-2.6.0.tar.gz
http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.0.tar.gz
(2) 安裝編譯所需的工具
l 安裝module-init-tools
#tar -zxvfmodule-init-tools-3.0.tar.gz
#cd module-init-tools-3.0
#./configure --prefix=/sbin
#make
#make install
#./generate-modprobe.conf /etc/modprobe.conf
l 安裝modutils
#rpm -i modutils-2.4.21-23.src.rpm
#rpmbuild -bb/usr/src/redhat/SPECS/modutils.spec(rpmbuild創建二進制包)
#rpm -Fi/usr/src/redhat/RPMS/i386/modutils-2.4.21-23.i386.rpm
(3) 解壓縮內核
#cd /usr/src
#tar zvxf /usr/src/linux-2.6.0.tar.gz
(4) 配置
#cd/usr/src/linux-2.6.0
#make mrproper
#make menuconfig
(5) 編譯
#make
(6) 安裝
#make modules_install
#make install
三. 驅動程序的安裝
1.內核模塊加載的相關命令
(1) lsmod
功能:列出當前內核加載的模塊信息
實例:#lsmod
(2) modprobe
功能:插入模塊,且自動解決依賴關係
實例:#modprobe ide-cd
(3) rmmod
功能:刪除未使用的模塊
實例:#rmmod ide-cd
#rmmod –a cdrom
(4) modinfo
功能:顯示模塊信息
實例:#modinfo ext3
2.驅動程序的安裝方法
(1) 安裝Linux系統過程當中安裝驅動
l 在Linux安裝過程當中,系統上的硬件會被檢測,基於檢測到的結果安裝程序會決定哪些模塊須要在引導時被載入。Red Hat的安裝程序爲anaconda,它提供了自動檢測硬件,而且安裝的機制。
l 若是計算機內的某些硬件沒有默認的驅動程序,能夠在啓動後的boot提示符下,輸入「linux dd」,在加載完內核後,系統會自動提示插入驅動盤,這時就有機會把該硬件的Linux驅動程序裝入。
(2) 安裝Linux系統以後安裝驅動
l Linux系統利用kudzu服務自動檢測和配置硬件,若是硬件的驅動系統自帶則自動配置,若是不自帶,須要手工安裝驅動。
l 有的硬件驅動必須從新編譯內核才能使用(IDE/SCSI),有的硬件驅動可使用動態模塊加載。
實例:在RH 9.0 Linux中安裝D-link530tx 100m網卡驅動
(1) 從http://www.legend-networks.com.cn/downfile/linux530_321.tar處下載驅動到/usr/src目錄中
(2) #cd /usr/src;
(3) #tar –xvf linux530_321.tar
(4) #cd linux530-_321;
(5) #make
(6) #cp via-rhine.o /lib/modules/2.4.20-8/kernel/drivers/net/
(7) #vi /etc/rc.d/rc.local
添加如下內容:
/sbin/modprobe via-rhine
(8) #init 6
微信掃一掃 、關注公衆號
不定時分享資料視頻