[分享]ubuntu编译内核推荐方法(与debian已有相当的分野)

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

[分享]ubuntu编译内核推荐方法(与debian已有相当的分野)

#1

帖子 xiechy » 2007-08-30 0:48

debian传统方式:

代码: 全选

apt-get install linux-source
tar zxvf /usr/src/linux-source-$version.tar.gz
cd linux-source-$version
make menuconfig
make-kpkg ……
cd ..
dpkg -i *.deb
这种方式行之已久,是正统的debian方式。但是也不是说历史久的就没有缺点。
1、没有debian补丁集,自己慢慢打很麻烦
2、和原有系统的集成程度不同。
3、和标准的dpkg-buildpackage 方式稍有不同,不大习惯
4、和系统中原有的内核不一样,所以对一些外在周边,例如restricted-modules什么的配合不方便。

ubuntu自身独有的内核编译方法:

代码: 全选

apt-get source linux-source-2.6.22
cd linux-source-2.6.22-2.6.22/
编辑debian/config/i386/{config|config.generic}两个文件//相当于make menuconfig;config为所有deb公有配置,generic只对generic的deb有效
debian/scripts/misc/oldconfig generic //检查generic的config的完整性
AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules binary-debs flavours=generic//只生成generic的包
cd ..
dpkg -i *.deb
linux-source-2.6.22可以一个源码包编译出n种架构的packages,但我们一般自定义内核只会要其中适合我们的一种。
这种方法编译的内核,和系统自带的内核只有你在config文件中修改的差别,所有的补丁都在解包的时候由dpkg系统自动打上了。想查看也是标准的diff.gz文件,和普通的deb source包完全一样。

大家编译愉快。大概要1g多的编译空间。
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#2

帖子 skyx » 2007-08-30 0:52

沙发
no security measure is worth anything if an attacker has physical access to the machine
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
联系:

#3

帖子 zhuqin_83 » 2007-08-30 6:44

沙发上的钉 :lol:
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
头像
ofewiofewo
帖子: 547
注册时间: 2007-06-02 14:56

#4

帖子 ofewiofewo » 2007-08-30 7:34

沙发下地板的窟窿
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#5

帖子 bones7456 » 2007-08-30 8:45

学习。。。
关注我的blog: ε==3
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#6

帖子 xhy » 2007-08-30 10:50

为什么不用通用的内核编译方式?
目前负债150多万
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#7

帖子 skyx » 2007-08-30 10:53

xhy 写了:为什么不用通用的内核编译方式?
我用ubuntu ,为什么不用ubuntu的内核编译方式?
no security measure is worth anything if an attacker has physical access to the machine
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#8

帖子 xhy » 2007-08-30 11:09

skyx 写了:
xhy 写了:为什么不用通用的内核编译方式?
我用ubuntu ,为什么不用ubuntu的内核编译方式?
因为太麻烦了
目前负债150多万
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#9

帖子 skyx » 2007-08-30 11:17

xhy 写了:
skyx 写了:
xhy 写了:为什么不用通用的内核编译方式?
我用ubuntu ,为什么不用ubuntu的内核编译方式?
因为太麻烦了
凭什么说麻烦,我说不麻烦。
no security measure is worth anything if an attacker has physical access to the machine
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#10

帖子 xhy » 2007-08-30 11:32

代码: 全选

make menuconfig && make
make modules_install //如果没有配置模块 不需要这步
make install
这样不是更方便么?
目前负债150多万
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#11

帖子 skyx » 2007-08-30 11:35

xhy 写了:

代码: 全选

make menuconfig && make
make modules_install //如果没有配置模块 不需要这步
make install
这样不是更方便么?
又能方便到哪里去?
no security measure is worth anything if an attacker has physical access to the machine
头像
sinoyster
帖子: 958
注册时间: 2005-10-16 13:24
来自: 四川成都
联系:

#12

帖子 sinoyster » 2007-08-30 13:51

xhy 写了:

代码: 全选

make menuconfig && make
make modules_install //如果没有配置模块 不需要这步
make install
这样不是更方便么?
4、和系统中原有的内核不一样,所以对一些外在周边,例如restricted-modules什么的配合不方便。
你所有restricted-modules模块都要重新编译
Thank you Ubuntu Team!!!!
I still can't belive this is free...
xiechy
帖子: 1074
注册时间: 2006-01-18 15:01

#13

帖子 xiechy » 2007-08-30 19:38

xhy 写了:

代码: 全选

make menuconfig && make
make modules_install //如果没有配置模块 不需要这步
make install
这样不是更方便么?
出此一说而已~毕竟u相对d的创新实在是不多,这种方法也算是有点“人性化”吧

至于用标准的方法~这是可以的,但是
1、debian的deb包洁癖。
2、一般来说,绝大多数人其实是能不自己编译就不要自己编译的,既耗电,又浪费时间,并且其实性能提升并不高(个人觉得gentoo的性能优势很大程度上并不是优化编译的结果,主要原因应该是系统自定义程度高所带来的精简),要编译的话也就是解决一点小问题而已(例如intelfb必须编译到内核中),这些情况,一般是能改的东西尽量少,能和标准系统的差异尽量少,才是省时省事的观感。
NICMICHAEL
帖子: 309
注册时间: 2006-01-04 19:26

#14

帖子 NICMICHAEL » 2007-08-30 22:47

我是编译内核狂
现正在期待2.6.23的释出,2.6.23变化还是很大的。把CK都给气走了。
Athlon 64 X2 Dual Core Processor 4200+ Socket 939 OC 2.8 GHZ
G.Skill DDR400 2 3 2 5 1GB *2 Dual Channel OC DDR500
Szgalaxy 8600 GTE 650MHZ/2000MHZ
Seagate 80GB *2 RAID 0+Maxtor 80G
DFI LanParty UT NF4-D
kernel 2.6.22-ck1 再见,Con Kolivas!
zengsun
帖子: 334
注册时间: 2005-05-17 14:45

#15

帖子 zengsun » 2007-08-31 6:51

收藏,不错呀!
现在还是在学java!
回复