#uname -r 顯示內核的版本號
一. 內核編譯
1. 什麼是內核編譯
將內核源碼轉換爲目標程序的過程稱之爲內核編譯,在編譯過程可以定製內核的功能
2. 內核編譯的理由
(1) 重新定製內核功能
(2) 給內核打補丁
(3) 安裝硬件驅動程序
3. 編譯2.4內核
(1) 完全編譯
-準備工作
a. 獲取2.4內核源碼
-從www.kernel.org下載或從安裝光盤中獲取
b. 安裝gcc等編譯工具
#rpm -ivh gcc-3.2.5-5.i386.rpm ncurses4-5.0-11.i386.rpm ncurses-devel-5.3-4.i386.rpm
-解壓縮內核源碼
a. 如果從www.kernel.org下載的源碼,可用tar解壓
#tar -xzvf/-xjvf *.tar.* -C /usr/src
b. 如果從安裝光盤中獲取的源,可用rpm解壓
#rpm -ivh kernel-source-版本號...
-修改內核版本號
#vi /usr/src/內核源碼目錄/Makefile
VERSION=數字
PATCHLEVEL=數字
SUBLEVEL=數字
EXTRAVERSION=字符串
...............
注:如果要覆蓋當前內核將版本號修改成與當前內核一致
-定製內核功能
#cd /usr/src/內核源碼目錄
#make mrproper //清除上次編譯留下垃圾文件
#make clean //清除殘留文件
#make menuconfig //如果想在當前內核的基礎進行配置,可複製/boot目錄的"config-內核版本號"到內核源碼目錄下,取名爲.config\
#cp /boot/config-2.4.20-8 /usr/src/linux-2.4.20-8/.config
#make dep //產生依賴關係
-生成內核文件
#make bzImage
-編譯和安裝內核模塊
#make modules
#make modules_install(安裝到/lib/modules/..)
-安裝內核
#make install(安裝到/boot)
(2) 編譯內核部分模塊
-準備工作
a. 獲取內核源碼
b. 安裝gcc相關編譯工具
-解壓縮內核源碼
.....
-修改版本號與當前內核一致
#cd /usr/src/內核源碼解壓目錄
#vi Makefile
.......
........
-定製內核功能
#make mrproper
#make clean
#cp /boot/config-版本號 ./.config
#make menuconfig
#make dep
-編譯和安裝內核模塊
#make modules SUBDIRS=路徑
#cp 源路徑/*.o /lib/modules/內核版本號/kernel/....
#depmod -a
4. 編譯2.6內核(RHEL)
(1) 完全編譯2.6內核
-準備工作
a. 獲取內核源碼(建議不用光盤中的源碼)
b. 安裝gcc相關編譯工具
-解壓縮內核源碼
#tar -xzvf/-xjvf *.tar.gz/*.tar.bz -C /usr/src
-修改內核版本號
#cd /usr/src/內核源碼解壓縮目錄
#vi Makefile
...........
-定製內核功能
#make mrproper
#make menuconfig
-編譯內核及模塊
#make
-安裝內核與模塊
#make modules_install
#make install
(2) 編譯內核部分模塊
-準備工作
a. 獲取內核源碼(建議不用光盤中的源碼)
b. 安裝gcc相關編譯工具
-解壓縮內核源碼
#tar -xzvf/-xjvf *.tar.gz/*.tar.bz -C /usr/src
-修改內核版本號與當前內核一致
.......
-定製內核功能
#make mrproper
#make menuconfig
-編譯內核模塊
#make modules SUBDIRS=路徑
-安裝內核模塊
#cp 源路徑/*.o /lib/modules/....
#depmod -a
注:-lsmod //查看當前內核已加載的模塊
-modprobe //加載模塊,且自動解決依賴關係
-insmod //加載模塊,手工解決依賴關係
-rmmod //卸載模塊
-modinfo //查看指定模塊的信息
二. 安裝設備驅動程序
1. 設備分類
(1) 塊設備
(2) 字符設備
(3) 管道設備
2. Linux設備管理層次
(1) 面向用戶---設備文件
(2) 面向設備---驅動程序
注:mknod用於創建設備文件,格式爲:mknod 設備文件名 類型 主設備號 從設備號
3. 驅動程序的安裝
(1) 自動安裝
如果所安裝的硬件驅動是系統自帶的,則在安裝系統時或在啓動系統時會自動安裝驅動
注:linux系統每次啓動時都會啓動kudzu服務,利用該服務來檢測新硬件
(2) 手工安裝
-獲取硬件的驅動程序
-解壓縮源碼包、並查看說明
-編譯
-安裝
-加載模塊
實例:安裝D-LINK 530TX網卡驅動
#tar -xzvf 530tx.tar.gz
#cd 530tx
#make
#mkae install
#modprobe 530tx