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.conf的image = / 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软件包编译驱动程序。