在Linux的发行版上如果要及时体验最新的Linux内核,你必须亲自动手去 下载 编译内核,不然就只有等Ubuntu或者Fedora等官网猴年马月地版本迭代更新。
安装依赖
保证安装libncurses5-dev,不然可能报缺少curse.h的错误。还有libssl-dev,如果缺少这个依赖则会报openssl/opensslv.h缺失的错误。
|
|
配置编译信息
下载Linux内核源码包,解压
|
|
配置内核信息
|
|
一些配置信息如下:
|
|
注意:如果懒得折腾,完全没有必要一一修改,保持默认就行。也可使用make localmodconfig根据当前机器运行中加载的模块定制生成配置文件,然后使用这个配置文件编译内核。
不过,最好的办法直接去/usr/src/linux-xx路径下找到原来的.config文件(推荐),然后使用make oldconfig命令,只根据需要选择是否加入一些新版内核带来的特性。
关于版本信息
在{源码}/scripts/mkcompile_h文件里可修改版本信息,然后再运行make bzImage,其相关信息放在{源码}/include/generated/compile.h里。
如修改UTS_VERSION。
开始编译
剩下的就简单了,按部就班的一一执行吧,具体编译时间视电脑配置而异,编译模块耗时最长,我的电脑要好几个小时(make modules后最好忙别的去吧:-)
- sudo make bzImage -jN , N为CPU核心数*2,即使用N个线程并行编译
- sudo make modules, 编译模块,耗时最长,生成的文件占用空间也最大
- sudo make modules_install,先开始安装模块
- sudo make install, 然后开始安装内核
- make headers_install ARCH=i386 INSTALL_HDR_PATH=/usr/include,最后可以选择更新头文件
ARCH为架构,如arm,i386等等。我这儿是32位就填入i386。INSTALL_HDR_PATH指定安装头文件的路径。