Ubuntu编译内核


一、内核编译

1、下载内核源代码
http://www.kernel.org/下载自己想要编译的新内核,点后面的“F” 按钮下载文件。
2、安装有关编译程序。安装make, gcc, make-kpkg,运行menuconfig等等和编译内核相关的工具。安装不了,请检查/etc/apt/sources.list 文件。

执行命令:
$sudo apt-get install build-essential kernel-package libncurses5-dev

3、在终端输入su 命令切换到root权限,然后把linux-版本号.tar.bz2文件复制到/usr/src/ 目录下。如果出现su:认证失败,则证明root密码尚未设置。Ubuntu默认root无密码,但是第一个user在admin组,它可以给root设置密码。
sudo passwd root
[sudo] password for 用户名: <-输入密码
输入新的UNIX密码: <-输入新密码
重新输入新的UNIX密码: <-重新输入新密码
passwd:已成功更新密码
4、cd 到/usr/src/目录下,执行tar -jxvf linux-版本号.tar.bz2命令解压源代码包。就会解压到/usr/src/ linux-版本号文件夹。
5、开始编译前的准备工作。
首先,清理以前编译时留下的临时文件。如果是刚刚解开的包,不需要执行这步。如果是第二次或者是第n次编译,那么一定要执行。接着cd到/usr/src/ linux-版本号文件夹。执行make mrproper命令(root用户)。该命令可确保源代码目录下没有不正确的.o文件.config文件等。

网上很多教程上说把现在使用的内核的config拷贝过来参考,据实验,是不需要的,ubuntu还有debian会自动做这步。
6、开始配置内核选项。执行命令: make menuconfig(此时最好选择加载之前的内核.config文件,在之前的配置基础上添加新的需要添加的新特性生成新的.config文件,内核选项的具体解析请参考鸟哥的Linux私房菜相关章节  。)

看到图1之后,你会发现画面主要分为两大部分,一个是大框内的反白光柱,另一个则是底下的小框,里面有 select, exit 与 help 三个选项的内容。这几个组件的大致用法如下:

 

  • 『左右方向键』:可以移动最底下的 <Select>, <Exit>, <Help>项目;
  • 『上下方向键』:可以移动上面大框框部分的反白光柱,若该行有箭头 (--->) 则表示该行内部还有其他细项需要来配置的意思;
  • 选定项目:以『上下键』选择好想要配置的项目之后,并以『左右键』选择 <Select> 之后, 按下『 Enter 』就可以进入该项目去作更进一步的细节配置
  • 可挑选之功能:在细节项目的配置当中,如果前面有 [ ] 或 < > 符号时,该项目才可以选择, 而选择可以使用『空白键』来选择;
  • 若为 [*] <*> 则表示编译进核心;若为 <M> 则表示编译成模块!尽量在不知道该项目为何时,且有模块可以选,那么就可以直接选择为模块!
  • 当在细项目选择 <Exit> 后,并按下 Enter ,那么就可以离开该细部项目!

 

图 1、 make menuconfig 核心功能挑选菜单示意图

基本上建议只要『上下左右的方向键、空白键、Enter』这六个按键就好了!不要使用 Esc ,否则一不小心就有可能按错!另外,关于整个核心功能的选择上面,建议你可以这样思考:

 

  • 『肯定』核心一定要的功能,直接编译进核心内;
  • 『可能在未来会用到』的功能,那么尽量编译成为模块;
  • 『不知道那个东西要干嘛的,看 help 也看不懂』的话,那么就保留默认值,或者将他编译成为模块;

 

总之,尽量保持核心小而美,剩下的功能就编译成为模块。

  • 1
  • 2
  • 3
  • 下一页

相关内容