ubuntu 内核编译

来源:互联网 发布:sql语句关键字顺序 编辑:程序博客网 时间:2024/06/05 03:39
一、下载源代码和编译软件的准备 

下载内核源代码:http://www.kernel.org/ 

安装有关编译程序。安装make ,gcc, make-kpkg,运行menuconfig等等和编译内核相关的工具。

安装不了,请检查/etc/apt/sources.list 文件。

有关命令:

$sudo  apt-get install build-essential kernel-package   libncurses5-dev
二、解压源代码
解压到任何目录上都可以。我放在自己的主目录下的src目录。

$ cd ~$ mkdir src 

然后解压到src中

tar jfx linux-*.tar.bz2 -C src/

现在,源代码就在 ~/src/linux-3.2.33

进入源代码的目录,准备下一步的工作。后面都在这个目录里面进行。

$ cd ~/src/linux-3.2.33

三、开始编译前的准备工作。
首先,清理以前编译时留下的临时文件。如果是刚刚解开的包,不需要执行这步。如果是第二次或者是第n次编译,那么一定要执行。

相关命令如下:

$ sudo make mrproper

网上很多教程上说把现在使用的内核的config拷贝过来参考,据实验,编译后出错。不过这个思想倒是可以学习一下。当然你可以将以前的配置拷贝过来。

命令:

cp /boot/config-`uname -r` ./.config

四、开始配置内核选项。

从linux-2.6.32开始可以使用make localmodconfig自动精简内核

注意: 该方法会自动去掉一些从开机到当前没用使用的模块(主要是驱动模块),
所以你可以使用一下你的摄像头, 挂载一下iso文件…..
以保证需要的模块不会被精简掉, 否则使用新内核时会发现不能挂载iso文件, 不能使用某些外设等等.
命令如下:

make localmodconfig
如果对这样的配置不满意,可以手动修改

$sudo make menuconfig
例如可以到

General setup ---> () Local version - append to kernel release 

这里添加版本表示。我输入的是ll

另外,如果想要找某个参数的配置位置 可以通过/进行查找,有点像vim的查找命令

五、开始编译内核。
ubuntu的工具是make-kpkg,和其他的发行版相比,步骤相对简单。

make-kpkg cleansudo make-kpkg --initrd kernel_image
如果想要生成头文件用于开发目的用如下命令

sudo make-kpkg --initrd kernel_image kernel-headers
六、安装内核
编译完成就是安装工作。编译好的内核在上一层目录。linux-image-...-i386.deb
安装相关命令:
$ cd ..$ sudo dpkg -i   linux-image-(按tab键)
文件名很长,如果用tab自动补足
安装完成后和老内核比较一下大小

$ ls -l /boot/

七、重新启动验证新内核。

$ sudo reboot

这是我编译的内核

其他相关资料

1.删除 多余内核 

查看安装的内核

 dpkg --get-selections|grep linux 

具体的卸载方法为
sudo apt-get remove linux-image-3.*

2. 查看cpu信息  cat /proc/cpuinfo

3.vim中删除中间某行(竖直方向)

%s/^\(.\{n\}\)\(.\{N\}\)/\1/g 每行会保留行开始的前n个字符然后删除掉接下来的N个字符


参考文献

  1. ubuntu环境下编译内核详解
  2. ubuntu编译内核自动精简,小菜也能做内核精简
  3. Linux
  4. ubuntu history命令



原创粉丝点击