Skip navigation.

exploreopera

| Help

Sign up | Help

Truth, Right Here, Right Now..

Posts tagged with "kernel"

AppArmor kernel patches for kernel 2.6.17.[7-9]

, ,

前几天编译了 2.6.17 kernel,仅仅打了 bootsplash 补丁。于是每次开机加载 apparmor 模块的时候都有 4 个
failed。尽管我也不用AppArmor,但还是决定重新编译内核,以便开机得到默认的一个 warning。

首先需要声明,SUSE 对的内核打的补丁并不像传言中那样并不对外公开
openSUSE 项目所有正式打包的内核补丁都可以在相应的 kernel-sourse-版本号.src.rpm 中获得。这个 src.rpm 可以在官方 FTP 和镜像网站的 src 目录找到。

比如 SUSE 10.1 目前最新的官方内核版本是 2.6.16.21 ,通过官方升级发布。那么它的 src.rpm 就在官方升级站的 src 目录下,下面是这个包在一个日本镜像上的地址: http://ftp.novell.co.jp/pub/suse/suse/update/10.1/rpm/src/kernel-source-2.6.16.21-0.13.src.rpm
btw, SUSE kernel is impressively heavily patched!!

可以用 file-roller 把 rpm 打开,就能看到 patch 分类存在压缩包里面。在 src.rpm 包中找到的 patch 是针对特定版本号内核的,并不一定通用于所有版本的 Kernel 。比如,AppArmor 模块补丁。

官方在 2.6.16.21 内核中提供的 apparmor patch 共包含 5 个文件,有两个由于 Kernel 2.6.17.7 代码的变化不能直接使用,剩下 3 个要求按照先后顺序 patch。

为了方便大家编译,我把那 3 个需要按照顺序 patch 的合成一个 apparmor-p1.patch,包含官方 apparmor apparmor-mmapexec.patch 和 apparmor-secureexec.patch 三个补丁。

把 2 个失效的重新 diff 合成 apparmor-p2.patch,包含 apparmor_audit 和 apparmor_namespacesem 补丁。

尽管理论上没有先后顺序,还是建议打补丁的时候先 patch p1 再 p2。

补丁在
http://www.linuxsir.org/bbs/attachment.php?attachmentid=36735&d=1156125978

SUSE 编译内核注意事项

,

内核凶猛,新手勿近。

为了无线网卡,上了内核 2.6.7.17, 7月25号出的latest stable version。

1. 如果不在乎开机两三秒延迟,先打bootsplash补丁。而且,开机时出现 bootsplash 再按esc 键是手掌伸展练习的良好习惯。

2. 优化参数不要太激进,稳定为先,可以参考 gentoo wiki 的 Safe CFLAGS。当然config的时候可以大胆做 preempitible kernel 之类优化设置。

3. 这个2.6.7.17内核有bug, config 的时候需要去掉几个DVB 设备驱动的模块,不然无法成功的make modules,设置的时候没有必要太认真。你去掉一个模块花2秒,电脑编译出来平均也就最多2秒,区别就是一个是你在忙一个是电脑在忙。少花时间在取消各种永远用不到的模块上,让电脑忙活去吧,大不了编完了再进/lib/modules删除就行了。我现在还眼花着呢。编译kernel主要是体力活,唯一的要求是你对自己硬件有点了解,没什么技术含量。

那个bug详情在下面连接,上面还有bootsplash补丁,连官方的连不上,发来备用:
http://www.linuxsir.org/bbs/showthread.php?t=266291

4. make cloneconfig 以后在make config/menuconfig/xconfig 可以节省不少时间
5. 2.6.x 内核的编译已经不需要 make dep 了,但由于在众多早期编译 kernel 文章屡屡被提及。。。

6. 即使你在内核中选了Automatic kernel modules loading,编译完成启动的时候,还是会出现No module symbols loaded - kernel modules not enabled. 并不影响正常使用,可以 lsmod 看一下。

7.AppAmor 是SUSE的东西,官方内核里面没有。编译以后开机几个failed就是它了。而且,如果你不打 apparmor 补丁的话,升级以后 vftpd 的FTP 服务器可以登录不能访问,出现错误说
OOPS: vsf_sysutil_recv_peek
那是 capability 模块不能自动被加载。modprobe capability就行了。原来是 appamor 自动加载会调用 capability,没加载 apparmor 自然就要手动加载 capability 了。

至于效果,我用了比较保守的优化参数,新内核目前还算稳定,明显速度提升,还没发现问题。无线网卡也没测试。

所有有兴趣和勇气编译 kernel 的,happy compiling。
July 2008
SMTWTFS
June 2008August 2008
12345
6789101112
13141516171819
20212223242526
2728293031