Debian-Kernel-Compile-Howto(内核2.6)

Debian-Kernel-Compile-Howto (内核2.6) 在 在某些情况下,你可能想编译自己适合的内核 你的需要比标准更好...

Debian-Kernel-Compile-Howto (内核2.6)

版本1.1
作者:Falko Timme

在某些情况下,您可能希望编译自己的内核,比您的发行版附带的标准内核更适合您的需求。 我将在Debian Woody机器上描述如何做到这一点( Debian Sarge的描述可以在这里找到)。 请注意,本教程仅适用于内核2.6! 内核2.4的教程可以在这里找到。

请注意,这样做有一定的风险! 例如,可能发生在您安装新内核后您的计算机无法正常启动,以便您可能被迫从救援CD启动以修复系统。 你被警告了! 本文档不附带任何形式的保证!


内核编译 - 如何

首先以root身份登录到您的Debian计算机的命令行。 安装我们需要编译新内核的先决条件:

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

然后去/ usr / src

cd / usr / src

然后从http://www.kernel.org/pub/linux/kernel/v2.6/获取最新的Linux内核源代码(或需要的内核源):

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.1.tar.bz2

打包内核源码:

tar xjf linux-2.6.8.1.tar.bz2

cd linux-2.6.8.1 /

通常,将现有(工作!)内核2.6的配置作为新内核配置的起点通常是一个好主意。 通常当前的内核配置保存在/ boot下的文件中,例如/boot/config-2.6.3 我们将加载此配置,然后进行所需的更改。 如果你没有配置文件的工作的内核2.6 这个可能会帮助你。

做menuconfig

选择加载备用配置文件并输入当前内核的配置文件的位置(或将我的内核配置上传到您的计算机并输入其路径):

您当前内核的配置将被加载,您现在可以浏览菜单并更改配置以满足您的需要。 完成后,保存新的内核配置:

然后运行以下命令(请注意,对于内核2.6, make dep不再需要):

make-kpkg干净
fakeroot make-kpkg --revision = custom.1.0 kernel_image

如果编译停止并出现错误,请运行

做干净

然后重新运行以前的命令

做menuconfig

更改发生错误的内核配置。 如果没有发生错误,您将在/ usr / src下找到新内核作为Debian包,名为kernel-image-2.6.8.1_custom.1.0_i386.deb

cd ../

现在你必须安装一些内核2.6所需的软件包。 将以下行添加到/etc/apt/sources.list中

deb http://www.backports.org/debian/ woody module-init-tools initrd-tools procps

然后运行:

apt-get更新
apt-get install module-init-tools initrd-tools procps

如果您被问到以下问题:

“如果你真的要删除modutils类型'yes':”

键入yes

根据您的配置,还可能需要更新诸如bind9,quota等的软件包。 如果您现有软件包有问题,请尝试从www.backports.org获取相应的软件包。

安装新内核:

dpkg -i kernel-image-2.6.8.1_custom.1.0_i386.deb

创建新内核的ramdisk(否则您的系统很可能无法启动):

cd / boot /
mkinitrd -o /boot/initrd.img-2.6.8.1 2.6.8.1

我们现在差不多完成了 编辑/etc/lilo.confimage = / vmlinuz节,并添加行initrd = / boot / initrd.img-2.6.8.1

# Boot up Linux by default.
#
default=Linux

image=/vmlinuz
        label=Linux
        read-only
        initrd=/boot/initrd.img-2.6.8.1
#        restricted
#        alias=1

lilo

更新您的引导加载程序并重新启动您的机器:

关机-r现在

如果一切正常,你的机器应该会出现新的内核。 你可以跑

uname -a

验证。 祝你好运!


更新:

这是R(Chandra)Chandrasekhar (非常感谢这一个!)发送给我关于内核配置的电子邮件的摘录,以防您使用闪存驱动器和nVidia卡:

“1.如果您打算使用闪存驱动器,请在<make xconfig>中取消选择以下内容:

块设备 - >低性能USB块驱动程序(BLK_DEV_UB)

http://linux.usc.edu/pipermail/usclug-chat/2004-December/000111.html和http://dev.gentoo.org/~dsd/gentoo-dev-sources/上有一个明确的解释issue-current.htm#2.6.9-ub为什么这是可取的,直到进一步开发ub模块。

我不得不

apt-get install udev hotplug

使用闪存驱动器,但它之后就像一个魅力一样工作!

2.如果您有nVidia卡,请在<make xconfig>中取消选择以下内容:

图形支持 - > nVidia Riva支持(FB_RIVA)

内核黑客 - >使用4Kb作为内核而不是8Kb(4KSTACKS)

处理器类型和功能 - >在单处理器上支持本地APIC(X86_UP_APIC)

要安装nVidia驱动程序,我在http://home.comcast.net/~andrex/Debian-nVidia/index.html上跟随HOWTO,并在内核构建期间应用vmalloc_reserve.patch之后从Debian软件包编译驱动程序。