內核編譯步驟及模塊管理 設定內核參數的方法: echo VALUE > /proc/sys/TO/SOMEFILE sysctl -w kernel.hostname= 能立即生效,但無法永安有效。 永久有效需要修改配置文件/etc/syctl.conf 修改完配置文件不會理解生效,需要執行以下命令 ...
內核編譯步驟及模塊管理 設定內核參數的方法: echo VALUE > /proc/sys/TO/SOMEFILE sysctl -w kernel.hostname= 能立即生效,但無法永安有效。 永久有效需要修改配置文件/etc/syctl.conf 修改完配置文件不會理解生效,需要執行以下命令才能立即生效。 sysctl -p 讓內核從讀配置文件 sysctl -a 顯示所有內核參數及其值 內核模塊管理 lsmod 查看內核載入的模塊 modprobe MOD_NAME 裝載某個內核模塊,只需要在modprobe後面接內核文件名即可 modprobe -r MOD_NAME 卸載某個內核模塊,同樣只需要在modprobe後面接內核文件名即可 modinfo MOD_NAME 查看某個內核模塊的詳細信息 insmod /PATH/TO/MODULE_FILE 裝載某個內核模塊,與modprobe不同的用法,insmod後面接的是內核模塊的文件路徑 rmmod MOD_NAME 卸載某個內核模塊,與modprobe -r 的用法相同,都是後面接內核模塊名 depmod /PATH/TO/MOD_DIR 內核中的功能除了核心功能之外,在編譯時,大多功能都又三種選擇: 1、不使用此功能 2、編譯成內核模塊 3、編譯進內核,也就是成為內核的組成部分 對於紅帽系列來講,一個系列的版本內核版本號是一至的。 例如 RHEL 5系列的內核版本號是2.6.18 5.1 、5.2 、5.5.。。。5.9的內核版本號都是2.6.18 RHCE 6(centos 6) 的內核版本號是2.6.32 6.1、6.2、6.3、6.5。。。6.10的內核版本號都是2.6.32 如何手工編譯內核 準備:需要安裝安裝Development tools開發工具 第一步下載內核文件 第二步解壓內核文件,需要解壓到/usr/src 第三步創建解壓出內核文件的軟連接,需要命名為linux 第四步需要使用到內核編譯工具 make gconfig :GNOME桌面環境使用的,需要安裝圖形開發工具 GNOME Software Development 圖形配置工具 make kconfig : KDE桌面環境使用的,需要安裝KDE圖形開發工具 KDE Software Development 圖形配置工具 make menuconfig : 命令行下使用的 第五步進入linux目錄,打開make menuconfig 備註,建議可以先把/boot/config-VERSION文件複製到/usr/src/linux目錄下,改名成.config,以此文件為模版,來修改,以免出來編譯好內核啟動不了。 第六步make 第七步make modules_install這一步很重要,先去安裝內核模塊 第八步make insatll 最後一步安裝內核 二次編譯時清理 make clean 清理之前編譯好的二進位文件 make mrproper 清理之前編譯的操作,包括.config文件,所以在執行make mrproper 之前先備份之前配置的.config文件 實現部分編譯 1、只編譯某個子目錄下的相關代碼 make dir/ make SUBDIR=arch/ make drivers/net/ 2、只編譯部分模塊 make M=drivers/net/ 3、只編譯某一模塊 make drivers/net/pcnet32.ko 4、將編譯完成的結果放置於別的目錄中 make o=/tmp/kernel