QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1732|回复: 5

Gentoo: 升级内核的简易方法

[复制链接]
发表于 2004-6-24 21:03:47 | 显示全部楼层 |阅读模式
在Gentoo中,只有内核的升级与众不同,也稍微麻烦一些。其他的包你只需要

[code:1] emerge some-pakage [/code:1]

就可以安装好,内核emerge只emerge到内核源代码,要想升级内核,还要编译、拷贝到适当的地方,正确设置boot loader才算完成。下面以gentoo-dev-sources内核为例,说明Gentoo中内核升级的步骤。

准备工作:

[code:1]emerge genkernel [/code:1]
这个工具可以简化编译过程而不失灵活性。

1. 检查是否有更新的内核版本。如果你曾经
[code:1]emerge gentoo-dev-sources[/code:1]
或其他某种内核,emerge  -u world时会自动取回该种内核的新版本的源代码。如果你没有注意观察emerge -u world时的屏幕显示,没关系,查看/usr/src就可以发现
[code:1] ls /usr/src [/code:1]

假定你当前的内核版本是2.6.5-r1, 在/usr/src中发现2.6.7-r5, 显然有新内核了。下面以从linux-2.6.5-gentoo-r1升级到linux-2.6.7-gentoo-r5为例介绍

2.  修改linux符号链接,指向/usr/src/

[code:1]rm linux
ln -sf /usr/src/linux-2.6.7-gentoo-r5 linux[/code:1]

3. 备份.config文件。原来的.config有没有备份?如果有,使用他会省去一些工作量。假定我们曾经成功的编译安装过2.6.5-r1的内核,那么该.config文件大体可用。备份成功的.config是个好习惯,如果没有做,现在补上这一步。

[code:1] mkdir ~/kernel-config ~/kernel-config/2.6.5
cp /usr/src/linux-2.6.5-gentoo-r1/.config ~/kernel-config/2.6.5[/code:1]

4. 使用genkernel 编译内核
[code:1]genkernel --kernel-config=/root/kernel-config/2.6.5/.config --menuconfig all[/code:1]

注意,我的经验是genkernel只认得出绝对路径,所以上面--kernel-config的路径一定要是从/开始的全名。

在2.6.7中有一些新的内核选项,genkernel在运行make oldconfig是会提示你,基本上你可以一路回车接受默认值。 然后genkernel会运行make menuconfig(这是我们在命令行中要求的,如果你肯定自己不想修改任何内核设置,当然在上面的命令中可以去掉--menuconfig)。进行适当的设置。一次不要改动太多选项。尤其要注意处理器类型,如果没有设到最优,自己编译内核就太没意义了。

menuconfig完后,你就可以去喝杯茶,上上网什么的。编译时间取决于你的处理器速度,一般半小时可以完成。编译完后genkerl会自动把kernel和initrd复制到/boot, 因为有版本号,你以前的kernel不会被覆盖。如果你是第二次编译这一版本的内核,以前的同一版本的确实会被覆盖。新内核总是有风险的,所以如果你正在运行2.6.7-r5而且这是你机上唯一可用的内核,一定要先把他们重新命名,并相应修改你的boot loader 配置文件。

5. 配置boot loader, 测试新内核。
以 Grub为例,把原来2.6.5-r1的部分完整地复制下来,把新复制出来部分中所有的2.6.5-r1改为2.6.7-r3,保存。然后就可以重新引导到新内核进行测试了。

6. 部分包可能需要重新emerge。当然,数量非常之少。因为我用的是nvidia的显卡,可以在步骤5的时候

[code:1] emerge nvidia-kernel nvidia-glx [/code:1]

也可以在引导到新内核后在做这一步。

[code:1]emerge nvidia-kernel nvidia-glx
modules-update
kdm(或 gdm)  [/code:1]

7. 新内核稳定运行几天后,就可以考虑清除老内核的残余了。

[code:1]mount /boot #不一定需要,看你的情况
cd /boot
rm kernel-2.6.5-gentoo-r1  initrd-2.6.5-gentoo-r1
rm -r /usr/src/linux-2.6.5-gentoo-r1 [/code:1]

后注: 说到nvidia的显卡,2.6.6以后的内核必须使用目前还不稳定的5xxx驱动程序,所以可以

[code:1] mkdir /etc/portage #如果已经有了就不必了
echo media-video/nvidia-glx ~x86 >> /etc/portage/package.keywords
echo media-video/nvidia-kernel ~x86 >>/etc/portage/package.keywords
      
emerge nvidia-kernel nvidia-glx [/code:1]
发表于 2004-6-25 08:53:45 | 显示全部楼层
欢迎原创, 如果是转贴或者翻译请注明出处, 谢谢!
回复

使用道具 举报

 楼主| 发表于 2004-6-25 09:15:10 | 显示全部楼层
当然是原创。什么地方看起来像翻译的吗?
回复

使用道具 举报

发表于 2004-6-26 12:06:25 | 显示全部楼层
没意思。。。。
回复

使用道具 举报

发表于 2004-6-28 05:32:37 | 显示全部楼层
[quote:2e0d7988a2="gen2"]当然是原创。什么地方看起来像翻译的吗? [/quote]
非常支持原创。
非常感谢 gen2 一直在支持 fans!

本文对我来说感觉和 qing 有点类似,因为这方面操作已经比较熟悉,所以看起来总觉得以前看过,误以为是转载的。 :-p

gen2 兄在 fans 发的几篇文章技术性都非常不错,对于高中低手都非常合适,本文我看了也有些收获,如果我还有权限我就加精了。   
回复

使用道具 举报

 楼主| 发表于 2004-6-28 15:51:41 | 显示全部楼层
kuye兄抬举了。

我就一菜鸟,感觉Gentoo不错,一些简单的东西想和其他菜鸟分享一下。由于到论坛不久,没有细看以前有没有同类的帖子。这不,我本来还准备发给帖子介绍一下Gentoo下转换到nptl的步骤,好在后来发现有为老兄已经贴过了。

好了,这就算认识了。以后好要请你多指教呢!
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-10-5 10:30 , Processed in 0.035601 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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