首先从官网上下载内核源码。
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