LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2305|回复: 20

升级、编译自己的内核(包括grsecurity) —— Debian篇

[复制链接]
发表于 2005-5-15 06:59:00 | 显示全部楼层 |阅读模式
原文地址http://www.noobu.com/0501_debian_custom_kernel.html
升级、编译自己的内核(包括grsecurity) —— Debian篇
  Posted by Canglan on May 01st 2005 to Linux

由于菜鸟油的服务器已更改为CentOS,所以我想有必要将之前关于Debian的一些文章马上发出来。这里先教大家如何为Debian升级内核,甚至是编译自己的内核。

首先要介绍一下,通常其它操作系统的内核编译是比较繁琐的。然而,由于Debian强大的dpkg软件包管理系统,使得内核的升级、编译也变得容易很多。这篇文章将会一步一步教你如何编译自己的,带有grsecurity的Linux 2.6内核。Grsecurity是一个Linux的内核补丁,针对Linux内核的某些安全漏洞进行修补以及安全性的增强。


首先用 apg-get 自动下载并安装一些必要的软件包,包括编译内核需要的kernel-package和ncurses-dev等。如果在内核编译、制作过程中,遇到错误提示说某个软件包不存在的话,请同样使用 apt-get install 命令进行下载安装。

apt-get install kernel-package ncurses-dev fakeroot wget bzip2 make patch

cd /usr/src
wget http://www.kernel.org/pub/linux/ ... ux-2.6.11.7.tar.bz2
tar -xjf linux-2.611.7.tar.bz2

请到 http://www.kernel.org 查看最新的内核版本。


之后,下载grsecurity。请注意,务必选择与内核版本相应的grsecurity版本。(grsecurity网站)

wget http://www.grsecurity.org/grsecu ... 0504111924.patch.gz
gunzip grsecurity-2.1.5-2.6.11.7-200504111924.patch.gz

执行以下命令将新内核打上grsecurity补丁

patch -p0 < ./grsecurity-2.1.5-2.6.11.7-200504111924.patch

OK,切换到新内核的目录

cd linux-2.6.11.7

为了节省时间,请执行以下命令从现有内核中获得配置

make oldconfig

执行完此条命令后,会根据新老内核的差异情况,询问你一些问题,如果不确定的话请都是用默认(直接按回车)。

以上步骤完成后,执行内核配置程序

make menuconfig

如果你的Debian有X的话,也可以使用 make xconfig 来进行内核的配置。请自行根据实际情况进行配置,不确定的话请保持默认。

在 Security Options 中,选择 Grsecurity 并将其设置到 medium。然后根据grsecurity的官方推荐,请在 Security Options -> PaX -> PaX Control 中,将 MAC system integration 设置为 [None] 。

至此,内核的配置就算完成了。请按 ESC 多次后退出内核配置页面(在系统询问是否要保存新内核的配置时,当然要选择yes)。

执行以下命令进行新内核的生成!

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=noobu --revision=1.0 kernel_image

fakeroot 的作用是在内核的生成过程中暂时性获取root权限。如果你直接是用root帐号操作的话,可以省略fakeroot。–append-to-version定义的是内核的软件包名字,类似 kernel-image-2.6.11.7-noobu 这样。而 –revision定义的是软件包的版本。

现在系统会开始进行新内核的生成,屏幕上会有许多文字闪过。请注意,如果生成过程中出现错误,请执行 make clean 后,用 make menuconfig 重新配置内核。一般都是仔细看错误信息,找到出错的模块,然后将其去除。

内核顺利生成完毕后,会在/usr/src目录下产生一个 deb 包。例如 kernel-image-2.6.11.7-noobu_1.0_i386.deb

执行以下命令安装新内核!^_^

dpkg -i kernel-image-2.6.11.7-noobu_1.0_i386.deb

接着Debian会安装新内核并更新Grub的配置文件。重新启动(shutdown -r now)后将会boot到新内核。

用 uname -a 看一下,是不是看到新内核的名字啦?

怎么样,在Debian上重新编译内核是不是很简单很高效呢?
发表于 2005-5-15 12:27:21 | 显示全部楼层
标记一下先
回复 支持 反对

使用道具 举报

发表于 2005-5-15 19:31:15 | 显示全部楼层
好贴!
不过Debian有自己打补丁的source呀,没有你提到的grsecurity?
回复 支持 反对

使用道具 举报

发表于 2005-5-15 20:51:12 | 显示全部楼层
正在找内核升级方面的资料,哪天有空也试试
回复 支持 反对

使用道具 举报

发表于 2005-5-16 20:12:11 | 显示全部楼层
我按照楼主的方法 make-kpkg --initrd --append-to-version=noobu --revision=1.0 kernel_image 时提示说 initrd 什么可能无法生效, 除非我什么什么的, 然后要我选择 N 继续, 选择 y 退出. 然我后不管就选择 N 继续了,还在执行, 会有问题不??
回复 支持 反对

使用道具 举报

发表于 2005-5-16 20:59:40 | 显示全部楼层
不错我按这方法编译2.6.11-8 2.4.30通过。
感谢楼住分享经验!!
回复 支持 反对

使用道具 举报

发表于 2005-5-17 00:53:31 | 显示全部楼层
我编译2.6.11.9没有成功,提示编译错误
make[4]:***[drivers/char/drm/gamma_drv.o]错误1
make[3]:***[drivers/char/drm]错误2
make[2]:***[drivers/char]错误2
make[2]:***[drivers]错误2
make:leaving diretory  /urs/src/linux-2.6.11.9
make[1]:***[stamp-build]错误2

请问各位老大,是什么问题,我试了3遍均是此问题?:(
55555555
回复 支持 反对

使用道具 举报

发表于 2005-5-17 08:20:24 | 显示全部楼层
我的问题跟楼上的相同,无法继续。。。
回复 支持 反对

使用道具 举报

发表于 2005-5-17 16:53:38 | 显示全部楼层
顶顶顶顶
回复 支持 反对

使用道具 举报

发表于 2005-5-17 17:40:19 | 显示全部楼层
先执行 make clean ,然后用 make menuconfig 重新配置内核。根据错误信息,去除出错的模块,直至编译通过。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表