首先,為什么要編譯內核?
目的是進行內核配置,改變內核的默認選項,又或者是想更換內核。
一個系統可以安裝多個內核,新內核不會覆蓋舊內核,可以在grub中選擇要運行的內核。
第一次使用ubuntu需要更改root密碼,初始沒有設置密碼
sudo passwd
1.先使用wget命令下載內核壓縮包,我下載的是4.4.4。
2.安裝軟件編譯工具
apt-get install libncurses5-dev build-essential kernel-package
3.解壓下載好的內核
一般內核文件都放在/usr/src
tar -zxvf linux-4.4.4.tar.gz -C /usr/src
第一次使用ubuntu還需要下載安裝make、vim和gcc
4.配置內核
此時cd到解壓的內核文件夾,清除曾經編譯產生的舊文件,如果是第一次解壓,可以不操作。
make mrproper
拷貝當前系統的config
cd /usr/src/linux-4.4.4 cp /boot/config-XX ./.config make menuconfig
menuconfig是圖形化配置程序,依次load,然后save,再退出。
5.編譯內核
make
很可能產生錯誤,一個是error: code model kernel does not support PIC mode,需要將以下代碼加入解壓的linux內核文件中MakeFile文件的末尾。
KBUILD_CFLAGS += -fno-pic
一個是fatal error: openssl/opensslv.h: No such file or directory,ubuntu下用以下命令安裝
apt-get install libssl-dev
KBUILD_CFLAGS += -fno-stack-protector
