编译步骤如下文。但更新、去掉了部分过时的章节
http://www.cnblogs.com/devil-91/archive/2012/07/23/2605568.html
第一步:准备工作
打开终端获得root权限:sudo su
然后安装编译内核时需要的工具:
apt-get install build-essential kernel-package libncurses5-dev libqt3-headers
sudo apt-get install libssl-dev (新增,不然会报错fatal error: openssl/aes.h: No such file or directory)
build-essential (基本的编程库(gcc, make等)
kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)
libncurses5-dev (meke menuconfig要调用的)
libqt3-headers (make xconfig要调用的)
其他工具在升级过程中可以按提示安装
第二步:下载内核源代码linux-4.3.3.tar.gz
请到www.kernel.org官网下载最新版本linux-4.3.3.tar.gz 内核
假设下载在/home/xxx/kernelwork目录,然后解压到此目录里
tar zxvf linux-4.3.3.tar.gz
解压后会在/home/xxx/kernelwork生成新文件夹linux-4.3.3
第三步:配置
把正在使用中的内核配置文件/usr/src/linux-headers-3.13.0-32-generic /.config 拷到/home/xxx/kernelwork/linux-4.3.3目录下
cp /usr/src/linux-headers-3.13.0-32-generic /.config /home/xxx/kernelwork/linux-4.3.3
执行:
cd /home/xxx/kernelwork/linux-4.3.3
make menuconfig
终端会弹出一个配置界面
(如果出现问题,可能是第一步的工具没装好,可以分别安装再尝试。若依然不行,再装libqt3-compat-headers)
注意主菜单最后有两项:load a kernel configuration...
save a kernel configuration...
先选第一项load ....,意思是,利用当前的内核配置详单来设置将要编译的内核,然后选save这一项保存,最后退出配置界面。
第四步:开如编译安装新内核
执行:sudo make mrproper (清除以前曾经编译过的旧文件,如果你是第一次编译,可不执行)
执行:sudo make (编译,可以加-j4,如果你CPU是双核心,够牛的话,因为可以提高速度)
然后:sudo make install
再:sudo make modules (编译模块)
再:sudo make modules_install (安装模块)
最后创建 initrd文件:
mkinitramfs -o /boot/initrd.img-4.3.3
还要执行此命令
update-initramfs -c -k 4.3.3
它后会利用lib/modules下的文件生成initrd.img-
4.3.3(位置在boot文件夹下)。
不执行此命令,在启动新内核时,会出现如下错误:
FATAL: modprobe: Could not load /lib/modules/.../module.deb
原文中,要修改grub.cfg文件。我在虚拟机中安装的ubuntu,并不用修改此配置文件。
当新内核出错时,可通过grub选择之前的旧内核。
重启系统 执行命令uname -r 查看内核版本号