Kernel modules path:
/lib/modules/$(kernel_name)/kernel/
(解壓縮指令: $tar zxvf filename.tar)
Kernel source code 目錄意義
- arch:與硬體平台有關的項目,大部分指的是 CPU 的類別(例:x86, x86_64)
- block:與區塊裝置較相關的設定資料,區塊資料通常指的是大量儲存媒體,包括類似 ext3 等檔案系統的支援是否允許等
- crypto:核心所支援的加密的技術,例如 md5 或者是 des 等等
- Documentation:與核心有關的說明文件
- drivers:一些硬體的驅動程式,例如顯示卡、網路卡、PCI 相關硬體等等
- firmware:一些舊式硬體的微指令碼(韌體)資料
- fs:核心所支援的 filesystems,例如vfat, reiserfs, nfs等等
- include:一些可讓其他程序呼叫的標頭(header)定義資料
- init:一些核心初始化的定義功能,包括掛載與init程式的呼叫等
- ipc:定義Linux作業系統內各程序的溝通
- kernel:定義核心的程序、核心狀態、執行緒、程序的排程(schedule)、程序的訊號(signle) 等
- lib:函式庫
- mm:與記憶體單元有關的各項資料,包括swap與虛擬記憶體等
- net:與網路有關的各項協定資料,還有防火牆模組(net/ipv4/netfilter/*)等等
- security:包括selinux等在內的安全性設定
- sound:與音效有關的各項模組
- virt:與虛擬化機器有關的資訊,目前核心支援的是KVM (Kernel base
Virtual Machine)
觀看make可用指令
$ make help
刪除目標檔與設定檔,適合第一次執行編譯前使用
$ make mrproper
刪除上一次編譯的目標檔,但不會刪除設定檔
$ make clean
核心功能列表檔
/boot/config-xxx
產生核心功能列表檔的方法,產生的檔案為.config
$ make menuconfig
在文字模式下顯示類圖形介面的選擇方法
$ make oldconfig
使用已經存在的config檔案
$ make config
每個項目用條列式的選擇,較不方便
編譯核心
$ make all –j16
(make all = make vmlinux, make modules,
make bzImage)
安裝模組到/lib/modules/
$ make modules_install