首先從官網上下載內核源碼。
kernel download
這里我們下載tar.xz的壓縮包。
XZ壓縮最新壓縮率之王
xz這個壓縮可能很多都很陌生,不過您可知道xz是絕大數linux默認就帶的一個壓縮工具。之前xz使用一直很少,所以幾乎沒有什么提起。xz也有一個壞處就是壓縮時間比較長。
xz壓縮文件方法或命令
xz -z 要壓縮的文件
如果要保留被壓縮的文件加上參數 -k ,如果要設置壓縮率加入參數 -0 到 -9調節壓縮率。如果不設置,默認壓縮等級是6。
xz解壓文件方法或命令
xz -d 要解壓的文件
同樣使用 -k 參數來保留被解壓縮的文件。
創建或解壓tar.xz文件的方法
習慣了 tar czvf 或 tar xzvf 的人可能碰到 tar.xz也會想用單一命令搞定解壓或壓縮。其實不行 tar里面沒有征對xz格式的參數比如 z是針對 gzip,j是針對 bzip2。
創建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 這樣創建xxx.tar文件先,然后使用 xz -z xxx.tar 來將 xxx.tar壓縮成為 xxx.tar.xz
解壓tar.xz文件:先 xz -d xxx.tar.xz 將 xxx.tar.xz解壓成 xxx.tar 然后,再用 tar xvf xxx.tar來解包。
將壓縮包解壓到 /usr/src/kernels/ 目錄下如果沒有kernels目錄請自己創建 解壓完成后 kernels 下出現了 linux-4.5.1的文件夾。
選擇內核功能
進入到解壓后的文件夾
第一次要用
make mrproper
make clean
使用make menuconfig命令
是不是你沒安裝libncurses?sudo apt-get install libncurses5-dev
完成安裝之后,會出現圖形化的菜單,此時是所有選擇編譯的內核功能,還有模塊。
選完要編譯的內核之后save
在當前文件夾下繼續進行操作:
make vmlinux 未經壓縮的內核
make modules 僅內核模塊
make bzImage 經壓縮的內核
make all 進行上述三個操作
**一般來說先編譯內核在編譯模塊**
make clean
make bzImage
make modules
scripts/sign-file.c:23:30: fatal error: openssl/opensslv.h: 沒有那個文件或目錄
解決方案:
使用sudo apt-get install libssl-dev來安裝libssl-dev即可
安裝模塊
make modules_install
開始安裝新內核與多重內核菜單
cp /usr/src/kernels/linux-4.1.1/arch/x86/boot/bzImage /boot/vmlinuz-4.1.1
cp /usr/src/kernels/linux-4.1.1/.config /boot/config-4.1
mkinitrd -v/boot/initrd-4.1.1ljq.img 4.1.1ljq
編輯開機菜單
vim /boot/grub/menu.lst
title ljq testing kernel from lijingqi
root(hd0,0)
kernel /boot/vmlinuz-4.1.1 ro root=LABEL=/rhgb
initrd /boot/initrd-4.1.1ljq.img