linux的內核編譯和驅動安裝

#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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章