[内核编译] 使用Ubuntu自己的方法编译内核

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
zgalvin
帖子: 22
注册时间: 2010-02-06 14:34

[内核编译] 使用Ubuntu自己的方法编译内核

#1

帖子 zgalvin » 2012-04-01 22:14

最近在折腾内核,学了些东西,和大家分享下 :em09

1. 配置编译环境  

代码: 全选

apt-get install fakeroot build-essential
apt-get install crash kexec-tools makedumpfile kernel-wedge
apt-get build-dep linux-image-$(uname -r)
apt-get install git libncurses5 libncurses5-dev libnewt-dev
2. 下载内核源代码
  有3种选择: 用git到kernel.ubuntu.com下载源代码。(我这里太慢了,忽略这个方法)
        
        到www.kernel.org下载源代码。(用Debian的方式编译,见论坛顶置帖子)
        
        在终端中使用如下命令下载当前内核的源代码。(下载源代码包,自动解压缩到当前目录并打上补丁。推荐)
        

代码: 全选

apt-get source linux-image-$(uname -r)
  比如我在Ubuntu11.10 上执行这条命令下载了3个文件:linux_3.0.0.orig.tar.gz(kernel.org的官方源代码) linux_3.0.0-17.30.diff.gz(Ubuntu的内核补丁) linux_3.0.0-17.30.dsc(校验文件)

3. Patch
  如果需要打补丁,把补丁文件解压缩到源代码所在目录,然后

代码: 全选

patch -p1 < patch.diff
patch.diff是你的补丁文件名 参数-p1 是数字一,不是字母L。(第一次用的时候我还以为是L :em06
如果是使用apt-get下载源代码,就不需要打补丁了。已经自动打上了。

4. 配置内核,准备脚本,编译,安装。(Ubuntu方式)
  我折腾内核无非就是想精简掉不用的内核模块,改一些优化参数,具体可以参见论坛的顶置帖子,不再熬述。

  修复脚本权限:

代码: 全选

chmod -R a+x debian/scripts
chmod -R a+x debian/control-scripts
chmod -R a+x debian/tools
chmod a+x debian/tests/check-aliases
chmod a+x debian/rules
  修改内核配置:

代码: 全选

fakeroot debian/rules clean
fakeroot debian/rules updateconfigs
fakeroot debian/rules editconfigs
  编译内核:

代码: 全选

fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic
  安装:

代码: 全选

sudo dpkg -i linux-header-*_all.deb linux-header-*_amd64.deb linux-image-*.deb
参考资料:
http://forum.ubuntu.org.cn/viewtopic.php?f=77&t=359723
官方教程:
https://help.ubuntu.com/community/Kernel/Compile
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
https://wiki.ubuntu.com/KernelTeam/GitKernelBuild
头像
ahwad
帖子: 1116
注册时间: 2009-05-06 0:36

Re: [内核编译] 使用Ubuntu自己的方法编译内核

#2

帖子 ahwad » 2012-04-02 9:15

路过,学习。。。。。。。。
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: [内核编译] 使用Ubuntu自己的方法编译内核

#3

帖子 YeLee » 2012-04-02 9:32

不错,收藏了。 :em09 :em09 :em09
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
npnufn
帖子: 1847
注册时间: 2005-10-14 15:56

Re: [内核编译] 使用Ubuntu自己的方法编译内核

#4

帖子 npnufn » 2012-04-02 9:58

这样编译就没有头文件的问题了么?
可以正常安装显卡驱动么?
zgalvin
帖子: 22
注册时间: 2010-02-06 14:34

Re: [内核编译] 使用Ubuntu自己的方法编译内核

#5

帖子 zgalvin » 2012-04-02 12:14

npnufn 写了:这样编译就没有头文件的问题了么?
可以正常安装显卡驱动么?
没有问题,用起来和官方内核没区别,直接用dpkg安装,会自动用dkms生成显卡模块,虚拟机模块等等各种模块。自动生成initramfs。
前提是内核代码不是太新,如果10.04从2.6升级3.2内核,会因为显卡驱动太老不支持新内核。
回复