内核源代码应该存放至 /usr/src。因此,您应该进入该目录,并将源代码解压至那里:
$ cd /usr/src $ mv linux linux.old $ tar xjf /path/to/linux-2.6.6.tar.bz2 |
需要命令 mv linux linux.old 是因为您可能已经有其他版本的内核源代码了。该命令确保您不会覆盖它们。解压之后,就会出现 linux-<版本> 目录(其中 <版本> 是内核的版本号),而其中就是新的内核源代码了。为了方便,您可以创建一个链接(ln -s linux-<版本> linux)。
现在来讨论一下补丁。我们假定您需要将 2.6.6 打补丁到 2.6.8,并已下载了所需的补丁。进入新创建的 linux 目录,并应用这些补丁:
$ cd linux $ bzcat /path/to/patch-2.6.7.bz2 | patch -p1 $ bzcat /path/to/patch-2.6.8.bz2 | patch -p1 $ cd .. |
一般来说,要从 2.6.x 版本转到 2.6.y 版本需要您依次应用 2.6.x+1、2.6.x+2、...、2.6.y-1、2.6.y 号补丁。要从 2.6.y 转回 2.6.x,请按照上述相反的顺序应用补丁,并添加 -R 选项到命令 patch (R 表示反向(Reverse))。因此,要从 2.6.8 内核返回 2.6.6 内核,您应该:
$ bzcat /path/to/patch-2.6.8.bz2 | patch -p1 -R $ bzcat /path/to/patch-2.6.7.bz2 | patch -p1 -R |
然后,为了清晰地知道您到了哪了,您可以重命名 linux 以反映该内核版本并创建一个符号链接。
$ mv linux linux-2.6.8 $ ln -s linux-2.6.8 linux |