Linux Kernel 實現了Kconfig和Kbuild以及Makefile,用於輔助內核的配置和編譯,使得linux kernel的編譯過程變得相當簡單。
(一)內核編譯
1、將Linux-3.5.4.tar.bz2解壓至”/usr/src/kernel“目錄下
cd /usr/src/kernels/
tar -jxvflinux-3.5.4.tar.bz2
說明一下:因為目標文件夾為當前目錄,所以省略,負責的話應該在該指令後添加空格+目標文件夾的絕對路徑;其次:-jxvflinux-3.5.4中間沒有空格,該指令的意思就是將當前目錄下的linux-3.5.4解壓。如果你在執行該解壓指令是沒有執行上面的切換工作目錄的指令,那麼該指令應該為:
tar -jxvf壓縮文件的路徑 目標文件的路徑
2、copy當前的內核配置文件作為心內核編譯的配置文件
#cp /boot/config-3.3.4-5.fc17.i686.PAE /usr/src/kernels/linux-3.5.4/.config
3、將當前目錄切換為/usr/src/kernels/linux-3.5.4/
4、安裝一些編譯過程中所需要依賴的庫文件
#yum install ncurses-devel_* gcc* gcc_c++ *aclocal
5、make menuconfig
#make menucofig
生成編譯階段所需要的配置文件.config
6、 make all
該指令將生成內核ELF文件vmlinux,它對應於目標體系結構家的二進制內核映像文件。(x86體系結構下的bzImage 映像文件),make all指令將根據配置文件實現所有設備驅動模塊以及可動態加載模塊的編譯。
7、make modules_install
安裝模塊到/lib/modules/linux-3.5.4
8、 make install
將vmlinuz-3.5.4,System.map-3.5.4 initramfs-3.5.4.img拷貝到/boot目錄下並自動保存修改
9、重新啟動,是否有3.5.4內核的加載項