內核編譯
內核編譯
單內核體系設計,但充分借鑒了微內核設計體系的優點,為內核引入模塊化機制。
內核組成部分:
Kernel,內核核心,一般為bzImage,通常在/boot目錄下,名稱為vmlinuz-WERSION-
RELEASE;
Kernel object:內核對象,一般放置于/lib/modules/VERSION-RELEASE/
[ ]:N 功能模塊不編譯到現有內核。
[M]:M 生成模塊放置于/lib/modules/VERSION-RELEASE/
[* ]: Y 打入內核
輔助文件:ramdisk
Initrd
Initramfs
內核版本
Uname命令:
Uname – print system information
Uname
– n:顯示節點名稱
-r :顯示版本信息VERSION-RELEASE
-a :顯示所有信息
內核模塊命令
lsmod命令
顯示有核心已經裝載的內核模塊
顯示的內容來自于:/proc/modules文件
modinfo命令
顯示詳細的描述信息
modinfo
-n 只顯示模塊文件路徑
-p 顯示模塊參數
-a author作者信息
-d description 描述信息
-l license許可證
lsmod | grep xfs ;modinfo xfs
內核模塊管理
modprobe命令
裝載或卸載內核模塊
modprobe [-C config-file] [modulename] [module parame-ter……]
配置文件:/etc/modprobe.conf
/etc/modprobe.d/*.conf
modprobe [-r] modulename
depmod命令
內核模塊依賴關系文件及系統信息映射文件的生成工具
裝載或卸載內核模塊
insmod命令:指定模塊文件,不自動解決依賴模塊
insmod [filename] [module options….] 安裝模塊
Insmod `modinfo -n exportfs` 查看模塊文件路徑
Insmod `modinfo -n xfs`
rmmod 刪除模塊
rmmod [modulename]
rmmod xfs
rmmod exportfs
編譯安裝ntfs示例
1、安裝開發包組
Yum groupinstall “Development Tools”
Yum groupinstall “server platform Development”
Yum install ncures
將linux-3.18.41.tar.xz內核包拷入一個現成的Linux操作系統
將tar -xvf linux-3.18.41.tar.xz -C /usr/src 解壓到源碼存放路徑
將內核解壓完成后進入/usr/src目錄會生成一個linux-3.18..41的目錄
2、進入linux-3.18..41目錄,注意:后續操作都將在該目錄下進行。
參考/boot/config-3.10.0-327.e17.x86_64文件,該文件記錄了當前系統在編譯安裝時
它啟用了哪些模塊,每一行代表了一個模塊
=y 代表已經打入核心
未設置代表沒有編譯到內核中
=m 代表內核模塊
可以將該文件作為一個模板在它的基礎之上增加一個ntfs的功能,其他的內容不動,
避免因對硬件不了解而出錯。
3、將/boot/config-3.10.0-327.e17.x86_64 復制到/usr/src/linux-3.18.41目錄中且必須命
名成 . config 的隱藏文件 :cp /boot/config-3.10.0-327.e17.x86_64 .config
因為編譯程序只認 . config文件,通過它來展現模塊菜單
4、make menuconfig 進入內核編譯模式
按下圖步驟開始操作
添加內核版本號
文件系統類型
按空格選擇是否模塊化或打入內核
exit 退出保存
5、執行命令make -j cpu核心數 開始執行編譯
eg:make -j 2 編譯之前查看一下
6、等待一個漫長的編譯過程
7、編譯完成后執行命令:
make modules_install 添加模塊驅動
make install
8、reboot 用新內核啟動
9、執行命令 locate ntfs.ko 查看ntfs是否編入內核,注意在使用locate命令時,先
使用命令updatedb更新一下數據庫。
原創文章,作者:zzd,如若轉載,請注明出處:http://www.www58058.com/45954