Gentoo Logo

Gentoo Linux 2.6迁移完全指南

内容:

1.  介绍

Linux 2.6有什么新特性?

这可不是个容易回答的问题。Linux 2.6是对新特性两年多的迅速开发和稳定化的结果,而且从构架上与2.4完全不同。一些主要的变化如下:

  • 调度器/交互性改进:Linux在桌面系统上感觉非常流畅,在负载时运行得比2.4强多了
  • 可扩展性:现在Linux在小型嵌入式设备和多处理器系统这两种终端上都扩展得更好
  • 性能:对普通程序的吞吐量大大提高了
  • 硬件支持:现在的Linux可以直接支持的架构和硬件设备比起其他操作系统都要多。

Joseph Pranevich写了份非常详细的文档,Linux的美妙世界,你或许会有兴趣瞧瞧。如果你对技术细节更感兴趣,可以参考后万圣节文档──但是一定要注意现在它已经有些过时了。

Gentoo和2.6

从Gentoo Linux 2005.0发行版开始,默认的内核是最新的2.6系列。系统默认的profile选自/etc/make.profile,它在2005.0或更高的版本中应该是一个符号链接,指向用来处理众多重要设置的/usr/portage/profiles/default-linux/x86/2005.0

如果你正在使用2.4的profile,请按下文所述,将其换成支持2.6内核的。

代码 1.1: 更改profile

# rm -f /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/x86/2005.1 /etc/make.profile

udev是什么?

在过去,Gentoo让用户使用devfs来管理/dev目录。/dev含有一系列允许系统程序与硬件(通过内核)通信的设备接口。

devfs虽然是个很好的概念,但它却有一些内在的问题,而且自2.6.13起已经从主稳定树中被彻底移除了。

udev是管理设备节点的新方法。它解决了之前的设备管理器问题,同时也试图解决一些其他的问题。

以上或许对你来说不算什么,但并不意味着,辛勤工作的Gentoo开发人员很容易就完成了对devfs的迁移。对此请阅读Gentoo udev指南来获取更多的信息。

ALSA是什么?

在Linux 2.4中,你大概曾用OSS(open sound system)驱动来驱动声卡。OSS现在已经被一个更新更好的声音驱动集合替代了:ALSA。

ALSA,即Advanced Linux Sound Architecture(高级Linux声音架构),是当前Linux 2.6内核里一个新的声音驱动集合,拥有新的改进版API。它向后兼容OSS程序,供你选择正确的Linux内核配置选项!

注意: 如果你没有任何声音/声频硬件,则可安全地跳过本文档中任何与ALSA相关的说明。

LVM是什么?

逻辑卷管理(LVM)是一组工具集,它允许你以非常灵活的方式管理磁盘存储。除此之外,它具有强大的分区控制功能(比如不用重启就调整分区大小),而且使像更改设备之类的操作相对简单一些。对于标准的基于分区的磁盘管理来说,LVM是另外一个选择。

从历史上来讲,对LVM的支持已经在Linux 2.4中实现了。Linux 2.6有一个新版的LVM,叫做LVM2。该迁移过程需要你安装新版本的用户层工具(本文档稍后会提到),但仍会使你的数据保持原样!

如果你当前并未使用LVM来做数据存储管理,则LVM2迁移工作不适用于你。如果是这样的话,你可安全地跳过本文档中任何关于LVM/LVM2的部分。升级到Linux 2.6并不要求你将数据存储到LVM分区中──你可以像以前一样在标准分区格式中保存数据。

如果你不是LVM用户,但觉得LVM2对你有帮助,那么你可以在将来依照Gentoo LVM2安装指南把你的磁盘转换为这种格式。但是现在,让我们集中精力进行下面的2.6无缝迁移。

2.  准备工作

更新系统

Linux 2.6中的一些变化也要求基础系统程序有所改变。在继续进行之前,你应该确保系统已相对比较新。为了完美地保证这一点,你应该在能升级的时候升级所有的world和system包。

特别是,确定你有以下最新的稳定版本的包:

  • sys-apps/baselayout
  • sys-apps/util-linux
  • sys-kernel/genkernel (仅当你希望使用genkernel而不是手工配置时)

代码 2.1: 升级所有的world包

# emerge --sync
# emerge -ua world

modutils与module-init-tools

sys-apps/modutils是为Linux 2.4提供诸如modprobermmodinsmod之类工具的包。

Linux 2.6引入了一种新的模块格式,因此要求有新工具来处理这些模块。这些新工具都集中在sys-apps/module-init-tools包中。

你现在应该移除modutils并安装module-init-tools:

代码 2.2: 从modutils切换到module-init-tools

# emerge --unmerge sys-apps/modutils
# emerge module-init-tools

注意: 别担心──尽管你刚刚卸载了modutils,module-init-tools提供了对Linux 2.4的向后兼容,所以你仍然能启动进入到Linux 2.4来处理其模块。

注意: 出于以上的原因,module-init-tools可能已经安装过了,并与你现有的Linux 2.4内核一起工作。如果是这种情况,你不需要担心这个阶段──你的系统已经准备好处理Linux 2.6的模块。

安装udev

这里不涉及任何配置问题。只需要使用emerge来安装udev:

代码 2.3: 安装udev

# emerge -a udev

现在你应该阅读Gentoo udev指南来更全面地了解udev和devfs之间的差别。

检查重要的设备节点

当系统启动时,它需要一些重要的设备节点。由于udev不包含在内核中,所以它并没有马上被激活。为了解决这一点,你必须确使一些重要的设备节点已经在你的磁盘上了。

在初始安装时,我们的安装阶段文件会创建好必需的设备。但是,有些用户反映说并不是这么回事。我们将利用这个机会检查设备文件是否存在,如果不存在的话就创建它们。

由于你现有的设备管理器会被挂载到/dev下,令我们不能直接访问它。所以我们会绑定挂载根分区到另一个位置,并从那里访问/dev目录。

代码 2.4: 捆绑挂载根分区并列出静态设备

# mkdir -p /mnt/temp
# mount -o bind / /mnt/temp
# cd /mnt/temp/dev
# ls -l console null

如果上面的ls命令报告说console或者null不存在,那你必须像下面示范的那样,亲自创建它们,

代码 2.5: 创建缺失的console和null节点

# mknod -m 660 console c 5 1
# mknod -m 660 null c 1 3

现在你应该卸载被绑定挂载的根分区,即使之前并未建立那些设备:

代码 2.6: 卸载被绑定挂载的根分区

# cd
# umount /mnt/temp
# rmdir /mnt/temp

安装ALSA工具

ALSA要求你安装某些包来使应用程序能利用ALSA API。这些包也能让你控制混音器和音量。按照以下方法安装必要的工具:

代码 2.7: 安装ALSA工具和库

# emerge -a alsa-lib alsa-utils alsa-tools alsa-headers alsa-oss

3.  安装Linux 2.6源代码

选择并安装内核

首先需要做的是安装你选择的2.6内核源代码。Gentoo支持的内核当前有两个:gentoo-sources(桌面版)和hardened-sources(服务器版)。还有一些其他的选择,参见Gentoo Linux内核指南

在本指南中,我们将使用gentoo-sources为例。使用emerge工具来安装你选择的内核源代码集合:

代码 3.1: 安装gentoo-sources

# emerge -a gentoo-sources
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild NS ] sys-kernel/gentoo-sources-2.6.10-r4

Do you want me to merge these packages? [Yes/No] y

当运行以上emerge时,如果你发现它想安装2.4版的gentoo-sources(比如gentoo-sources-2.4.26),这意味着你使用的profile不是为Linux 2.6用户而设计的。请按照Gentoo升级文档切换到基于2.6的profile,并重试安装2.6内核源代码。

更新/usr/src/linux符号链接

有众多的Gentoo工具组件依赖于/usr/src/linux,它是指向正在运行(或者希望编译)的内核源代码的符号链接。

我们现在将要更新/usr/src/linux链接,使其指向刚刚安装的内核。继续我们的例子:

代码 3.2: 更新/usr/src/linux软链接

# cd /usr/src
# ln -sfn linux-2.6.10-gentoo-r4 linux

4.  Linux 2.6迁移中已知的易犯错误

在我们卡在配置内核之前,我先来讲讲在迁移到Linux 2.6的过程中人们最常犯的错误,因为其中的某些错误会影响到配置新内核的方式。

注意: 不是所有的这些错误都与本阶段相关,但我会在这里把它们都详细的说一说,回头你有空时可以参考一下。

不要对2.4的.config使用“make oldconfig”

注意: 如果你不理解这是什么意思,不必担心,只要你正确地遵循本指南的其余部分,就不会犯这个错误。

由于内核中有大量的变化,你会被问到许许多多问题。许多尝试从2.4的.config文件来make oldconfig的人最终以创建了不工作的内核(比如屏幕上无输出,键盘无法输入等等)而收场。请不要自找麻烦,还是使用传统的menuconfig配置方法吧。

不要对CD/DVD写入功能使用ide-scsi

在Linux 2.4中,使CD/DVD写入结果更好的唯一方式是启用(相当丑陋的)ide-scsi模拟。谢天谢地,Linunx 2.6的IDE层更好地扩展了对CD/DVD刻录的支持。

你不必启用任何额外的选项来支持CD写入。只要确保启用你以前用的ide-scsi

PC扬声器现在是可配置的选项

如果不特别启用新的PC扬声器选项(CONFIG_INPUT_PCSPKR),你就不会使控制台发出通常的哔哔声(或从PC扬声器中得到任何回应):

代码 4.1: PC扬声器选项的位置

Device Drivers --->
 Input device support --->
 [*] Misc
 <*> PC Speaker support

注意: 此处的“PC扬声器”是指在系统启动时发出一声哔响的模拟扬声器,而不是用来播发音乐的一般声音硬件。

新的USB存储块设备驱动时有问题

就在这几天,一个新的USB存储设备驱动被加进了内核。在编写本文档时,该驱动(“ub”)仍处于其早期阶段,有用户发现它并不可靠。如果你遇到存取USB硬盘、USB闪存、USB读卡器、或者USB数码相机的问题,可以试试恢复到旧的SCSI类驱动:

代码 4.2: 禁用ub

Device Drivers --->
 Block devices --->
 < > Low Performance USB Block driver

注意: 旧的SCSI类驱动(USB Mass Storage支持)是默认启用的。可以在“Device Drivers --> USB support”下找到它,但当ub启用时它通常是不会起效的。

usbdevfs重命名为usbfs

如果你已经编辑好了/etc/fstab文件来自定义USB设备文件系统挂载的方式,则可能不得不把文件系统类型usbdevfs修改为usbfs

注意: 最近的2.4内核也允许你使用“usbfs”以及“usbdevfs”,所以这么做不会破坏向后兼容性。

不要调整X的优先级

如果你是2.4桌面的用户,那你可能已经破解了系统来以更高的优先级运行X,因为有时侯这么做似乎能提供更好的桌面性能。

2.6中有许多调度器的变化,这改变了上述行为。如果你继续以更高的优先级运行X,那它将会严格按照预想的那样(以很高的优先级运行显示服务器)工作,你会看到像声音口吃,程序载入时间慢等后果,这是因为你的CPU只为X服务而导致挂起得太久。

Linux 2.6中,你不再需要为获得良好的交互性而调整桌面程序优先权。请去掉你的“优先级”破解!

X11配置文件现在应该对PS/2和USB鼠标使用/dev/input/mice

默认的udev配置引入的变化之一是,鼠标设备节点的组织方式不一样了。先前你可能已经有诸如/dev/psaux/dev/mouse之类的节点。现在你将拥有像/dev/input/mouse0/dev/input/mouse1这样的节点,以及集中式节点/dev/input/mice──它整合了来自所有鼠标的移动。

由于旧的X配置通常引用/dev/mouse/dev/psaux,你可能会在尝试启动X11时得到一个类似以下所示的错误:

代码 4.3: 首次在udev系统上启动X时的常见错误

(EE) xf86OpenSerial: Cannot open device /dev/mouse
 No such file or directory.
(EE) Mouse0: cannot open input device
(EE) PreInit failed for input device "Mouse0"
No core pointer

要纠正该错误,请在文本编辑器中打开你的X11配置文件,更新鼠标InputDevice部分,使用/dev/input/mice设备。如下例所示:

代码 4.4: 打开X11配置文件

# nano -w /etc/X11/xorg.conf

注意: 如果你仍在使用XFree86,那你的配置文件就应该是/etc/X11/XF86Config

代码 4.5: 鼠标InputDevice部分示例

Section "InputDevice"
 Identifier "Mouse0"
 Driver "mouse"
 Option "Protocol" "auto"
 Option "Device" "/dev/input/mice"
EndSection

注意: 如果你使用串口鼠标,新的设备路径是/dev/tts/0,而不是/dev/ttyS0

新的Serial-ATA(SATA)驱动以与以前不同的方式命名设备

如果你过去使用Linux 2.4下的早期Serial ATA驱动,则可能观察到你的SATA设备有类似/dev/hde这样的名字。

Linux 2.6引入了一些新的SATA驱动(libata),它们是基于SCSI子系统的。由于这些驱动是基于SCSI的,所以你的SATA磁盘现在会显示为SCSI磁盘。你的首个SATA硬盘会被命名为/dev/sda。你还需要更新/etc/fstab文件来反映这一变化,而且在将来选择root/real_root内核启动参数时要记得这一点。

注意: libata已向后移植入近期的Linux 2.4版本中,所以你可能已经熟悉新的设备名了。

不再维护bootsplash

如果你用过gentoo-sources-2.4内核,你可能用了bootsplash功能来提供彩色的framebuffer控制台。

bootsplash的开发者似乎对自己的有设计问题的项目失去了兴趣。然而,Gentoo开发者Michał Januszewski正在开发一个包含在gentoo-sources-2.6内核中的后继程序──gensplash。你自己可以按照Michal的简单5步Gensplash文档来熟悉gensplash是怎么运作的。

I2C驱动现在被包含在内核里

如果你使用lm-sensors来监控系统温度和电源级别,以前需要安装i2c包来提供硬件支持。

I2C硬件驱动现在被包含在Linux 2.6内核中,不必安装额外的i2c包。记得将你的特定I2C设备支持编译到内核配置中,然后你就能像平时一样使用lm-sensors了。

5.  配置、建立和安装内核

如同Linux 2.4一样,你有两个选择来管理新内核build。

  1. 默认方法是手工配置内核。这虽看起来令人畏惧,但随着对自己的系统日益了解这却是更好的方法。如果你希望手工配置新内核,请继续阅读下一章
  2. 备选方法是使用我们的genkernel工具来为你自动配置、编译和安装内核。如果你希望使用genkernel请跳过下一章,从 使用genkernel开始。

6.  默认:手工配置

配置内核

我们现在从配置内核开始。以通常的方式打开menuconfig:

代码 6.1: 调用menuconfig

# cd /usr/src/linux
# make menuconfig

你可能已经在配置2.4内核时就对menuconfig熟悉了。幸运的是,它的前端几乎没什么变化。但是你会发现,内核选项现在组织的更好,而且有许多不在2.4中的新选项。

确保启用了以下重要的内核选项:

代码 6.2: 必需的内核选项

File systems --->
 Pseudo Filesystems --->
 [*] /proc file system support
 [*] Virtual memory file system support (former shm fs)

(以下为udev必需):
General setup --->
 [*] Support for hot-pluggable devices

(以下为ALSA必需):
Device Drivers --->
 Sound --->
 <*> Sound card support
 Advanced Linux Sound Architecture --->
 <M> Advanced Linux Sound Architecture
 <M> Sequencer support
 <M> OSS Mixer API
 [*] OSS Sequencer API
 (不要忘记在子菜单中选择你的声卡!)

(如果使用LVM进行磁盘管理,则以下为必需):
Device Drivers --->
 Multi-device support (RAID and LVM) --->
 [*] Multiple devices driver support (RAID and LVM)
 <*> Device mapper support

警告: 之前你可能已经选了/dev文件系统支持(现在已标记为“废弃”)。不要启用devfs支持。我们已经安装了udev,从现在起用它替代devfs。

还有,记得启用你所使用的文件系统的支持,以及系统里的硬件支持。如果你想利用DMA磁盘存取,确保启用对主板上IDE控制器的支持。请参考Gentoo手册配置内核部分作进一步的指导。

建立内核

现在我们已配置好了内核,可以开始编译步骤了:

代码 6.3: 编译内核源代码

# make && make modules_install

注意: 你也许会回忆起在Linux 2.4中不得不执行make dep的情形。现在不必再这样了。

等待内核编译完成(而且可以看到更多可读的编译输出)。

安装内核

下一步是挂载你的/boot分区并将内核image复制过去。之后你必须手工更新引导程序的配置。

代码 6.4: 安装内核

# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.10-gentoo-r4

请注意,以上步骤仅仅是示范,你应该依照Gentoo手册中的指示(参见配置内核章)来完成更新内核的过程。

当更新引导程序配置时,不要将指向2.4内核的旧入口移除。这样的话,如果有什么不工作你就可以很容易地在两个内核间切换。

现在转到模块配置部分继续。

7.  备选:使用genkernel

如果你喜欢使用genkernel而不是手工配置内核,你就会很高兴听到以下这个消息:使用genkernel生成2.6内核与生成以前的2.4内核过程非常相似。

你应该按照如下所示调用genkernel:

代码 7.1: 加上某些常见参数调用genkernel

# genkernel --udev --menuconfig --bootloader=grub all

在上面的示例中,我们也利用genkernel的特性打开menuconfig来让你自定义内核配置(如果你愿意),以及在编译后更新grub引导程序配置。

你应该选择适合自己的genkernel参数,但是不要忘了加上--udev参数!更多的信息参见Gentoo Linux Genkernel指南Gentoo手册配置内核章。

如果你选择自己更新引导程序的配置文件,那么必须记得加上udev内核选项。示范的grub配置部分如下所示,但要记得为你自己的系统调整real_root参数。

代码 7.2: genkernel + udev的GRUB配置示例

title Gentoo Linux (2.6 kernel)
root (hd0,0)
kernel /kernel-2.6.10-gentoo-r4 udev root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
initrd /initrd-2.6.10-gentoo-r4

8.  模块配置

安装外部模块

很多用户会进一步依赖建在内核树之外的内核模块。常见的例子是二进制的ATI和Nvidia图像驱动。你现在需要针对/usr/src/linux下的2.6源代码编译安装这些模块。这也是你在2.4下所习惯的安装外部模块emerge packagename的常见情况。

更多信息请再次参阅Gentoo手册配置内核章节。

自动载入模块

你或许已经决定将某些内核组件编译为模块(与直接编译进内核相反),且想如同2.4一样在启动时自动载入它们。与此同时,如果你从portage树中安装了任一外部模块(如上所述),你可能也想自动载入它们。

你可以像2.4中那样做到这一点。仅需在文本编辑器中打开文件/etc/modules.autoload.d/kernel-2.6并列出你想要自动载入的模块名即可。

代码 8.1: 在nano中打开自动载入模块列表

# nano -w /etc/modules.autoload.d/kernel-2.6

代码 8.2: 载入3c59x和nvidia模块的自动载入列表示例

# /etc/modules.autoload.d/kernel-2.6: kernel modules to load when system boots.
#
# Note that this file is for 2.6 kernels.
#
# Add the names of modules that you'd like to load when the system
# starts into this file, one per line. Comments begin with # and
# are ignored. Read man modules.autoload for additional details.

3c59x
nvidia

9.  从LVM到LVM2的迁移

升级到LVM2工具

注意: 如果你不使用LVM来管理磁盘存储,则可安全地跳过本章节,直接转到下一章。

幸运的是,从LVM1用户工具升级到LVM2版是很简单的:

代码 9.1: 将用户工具从LVM1升级到LVM2

# emerge --unmerge lvm-user
# emerge lvm2

注意: 你需要重新安装lvm-user,如果你打算启动2.4内核的话。这是因为lvm2本身对2.4内核不支持。

10.  启动进入Linux 2.6

现在是启动进入Linux 2.6的时候了。关掉所有的程序并重启:

代码 10.1: 重启

# umount /boot
# reboot

如果你到目前为止一直正确地按照本文档做,则重启后会在引导程序里得到两个选项:载入Linux 2.4或者Linux 2.6。

一旦系统启动了,请检查一切是否工作。如果你在内核配置上出了错,别担心,可以返回到配置、建立和安装内核部分来做出更改,重新编译和安装新内核,重启,再试一次!

配置及将ALSA解除静音

我们现在要完成ALSA配置并将音频声道解除静音。ALSA包提供了一个有用的工具来使这个过程变得相对容易一些:

代码 10.2: 调用ALSA自动配置工具

# alsaconf

本过程一步到底:使/etc/modules.d/alsa文件可自动更新,然后让ALSA可被载入。alsaconf之后就会结束。然而,如果你在系统上安装了多个声音设备,则需要多次运行它。

现在你应该添加alsasound到boot运行级中,以使声音在关闭时被保存,在启动后被恢复:

代码 10.3: 添加alsasound到boot运行级中

# rc-update add alsasound boot

注意: alsaconf工具为你的声音设备选择初始声音级别。如果该选择不正确的话,你可以在任何时候用alsamixer工具修改之。

此时有问题吗?

在本阶段你应该参考前面的Linux 2.6迁移中已知的易犯错误部分,它可能会解决你此时遇到的问题。

11.  头文件与NPTL

现在你已经开始运行Linux 2.6了,希望所有的问题都已被解决。此时你应该更新Linux内核头文件并重新安装glibc以使用户区程序能利用新的Linux 2.6特性。

代码 11.1: 更新linux-headers

# emerge -u linux-headers

通常来讲,更新了头文件包之后你就该重新安装glibc。有这么个你可能会感兴趣的新特性──NPTL。NPTL是Linux 2.6中一个新的线程模型,它能更快地创建和销毁线程。这在大多数系统上不会有太大不同,但是你可能会希望在本迁移过程中启用该特性!如要启用NPTL,编辑/etc/make.conf,将/etc/make.conf加入你的USE变量。

警告: 如果你也选择了启用“nptlonly”标记,请注意你将不能再启动2.4的内核了。

现在重新安装glibc(即使你没有选择启用NPTL也应该这么做)。

代码 11.2: 针对新内核头文件重新安装glibc

# emerge -a glibc

如果你已启用了NPTL,现有的二进制包只有在重新编译后才能使用该特性。然而,只有从现在之后编译的任何二进制包才能使用NPTL。或许你希望现在就重新编译所有的二进制包,比如:

代码 11.3: 重新编译系统上所有的包

# emerge -e world

或者你可以让系统在更有新版本发布的包时“自然地”将其转换为NPTL。

12.  关闭备注

仍有问题?

随着量多得难以置信的工作注入Linux 2.6,以前工作的东西有时不可避免地不再正常。

如果你的2.6内核有任何问题,而你可以确定该问题在Linux 2.4中并不存在,请在我们的Bugzilla上打开一个bug,我们会调查该问题。如果我们发现这是存在于主线内核中的问题,我们可能会请你在中央内核bugzilla上登记一个报告。

结论

希望你已经顺利完成了迁移,并且享受到Linux 2.6带来的超越2.4的优势。

我想说声谢谢,对在本文档的早期就高效地“测试”了它,以及提供如何进行迁移的反馈信息的众多用户。对不起我没能回复所有的电子邮件(有太多的邮件了!),但是我确实阅读了每一封,并对本文档进行了适当的改进。尽情享受你的2.6加强版系统吧:)

将Linux 2.4从你的系统上删除

在运行了一段2.6之后,你或许会认定不再有使用Linux 2.4的任何需要了。将你的系统清除干净的步骤如下。当你确定不再想要/需要使用2.4时,才能执行本部分的步骤!

2.4内核源代码可以像通常那样用emerge工具移除。比方说,假如你装有2.4版本的vanilla-source和gentoo-sources,可以用下面的命令来删除它们,同时保留2.6版本的不变:

代码 12.1: 示例:删除Linux 2.4源代码

# emerge --unmerge =vanilla-sources-2.4.* =gentoo-sources-2.4.*

Portage不会彻底清除你的2.4内核源代码安装,因为一些临时文件在编译期间就创建了。用以下命令可以安全地删除这些残余的文件:

代码 12.2: 删除残余的临时文件

# rm -rf /usr/src/linux-2.4.*

你可以进一步删除与旧2.4内核安装相关的模块和信息文件,因为不再需要它们了。

代码 12.3: 删除以前安装的2.4模块

# rm -rf /lib/modules/2.4.*

以前你用于启动的2.4内核二进制包也可被安全地删除。挂载/boot分区,然后删除那些image。你也应该更新引导程序配置来使它不再指向这些删除掉的内核image。

一些Linux 2.4用户以前就安装了alsa-driver包以从Linux 2.6中新的音频能力受益。如果你是这样的用户,也遵循了本文档之前关于在2.6内核源代码上建立ALSA(与使用alsa-driver包相反)的建议,那么你可以安全地删除它来避免将来的冲突。

另外,lm-sensors用户会用以前使用的i2c包来提供硬件驱动。正如已经提到的,I2C驱动现在被包含在内核中,所以这个包也可被删除,以避免未来有冲突。

devfs管理守护程序,devfsd,也可以被安全地删除。因为现在我们使用udev来做设备管理。

代码 12.4: 删除alsa-driver,i2c和devfsd

# emerge --unmerge alsa-driver i2c devfsd

如果你是LVM2用户,你可能希望将数据转成LVM2数据格式来利用LVM2提供的便利。然而,该操作会阻止你用2.4的内核访问LVM数据。如果你仍想继续进行数据转换(这完全是可选的!),则应该阅读vgconvert手册中有关如何实现之的指导。下面展示一个例子,其中main是卷组名称。

代码 12.5: 将LVM1卷转换为LVM2格式

# vgconvert -M2 main


打印

更新于2008年 3月 5日

总结: 这份文档会帮助你从Linux 2.4迁移到Linux 2.6,从devfs迁移到udev,从OSS迁移到ALSA,以及从LVM迁移到LVM2。

Daniel Drake
Author

Sergey Galkin
Contributor

Sergey Kuleshov
Contributor

Xavier Neys
Editor

Benny Chuang
Editor

 井诚
译者

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Bytemark

Bytemark

Linux World Expo

Linux World Expo

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.