安装内核编译环境:
- apt-get install debhelper modutils kernel-package libncurses5-dev
参考《Debian 参考手册 第 7 章 - Debian下的 Linux 内核》
方法一:
1. 下载源代码包:http://www/kernel.org/pub/linux/kernel
2.
- debian:~# tar jxf linux-2.6.17.tar.bz2
- debian:~# cd linux-2.6.17
- debian:~/linux-2.6.17# cp /boot/config-2.6.15 .config
- debian:~/linux-2.6.17# make
- debian:~/linux-2.6.17# make modules
- debian:~/linux-2.6.17# make modules_install
- debian:~/linux-2.6.17# make install
- debian:~/linux-2.6.17# mkinitrd -o /boot/initrd.img-2.6.17 2.6.17
- debian:~/linux-2.6.17# update-grub
方法二:
- debian:~# tar jxf linux-2.6.17.tar.bz2
- debian:~# cd linux-2.6.17
- debian:~/linux-2.6.17# cp /boot/config-2.6.15 .config
- debian:~/linux-2.6.17#make-kpkg
上层目录生成5个 .deb文件
- linux-doc-2.6.17_20060622_all.deb
- linux-image-2.6.17_20060622_i386.deb
- linux-source-2.6.17_20060622_all.deb
- linux-headers-2.6.17_20060622_i386.deb
-
拥有帝国一切,皆有可能。欢迎访问phome.netlinux-manual-2.6.17_20060622_all.deb
- debian:~/linux-2.6.17#dpkg -i linux-image-2.6.17_20060622_i386.deb
- debian:~/linux-2.6.17#mkinitrd -o /boot/initrd.img-2.6.17 2.6.17
- debian:~# update-grub
ps: 《Debian 参考手册 第 7 章 - Debian下的 Linux 内核》
7.1.1 Debian 标准方式
关心一下有关 kernel-package、gcc、binutils 和 modutils 的错误报告.在需要时使用较新的版本.
在 Debian 系统中用源码编译自定义内核要特别小心.用 make-kpkg 的 --append_to_version 选项来创建多重内核镜像比较安全.
- # apt-get install debhelper modutils kernel-package libncurses5-dev
- # apt-get install kernel-source-2.4.18 # 使用最新版本
- # apt-get install fakeroot
- # vi /etc/kernel-pkg.conf # 输入我的名字和 email
- $ cd /usr/src # 创建目录
- $ tar
- $ cd kernel-source-2.4.18 # 如果这是你的内核源码
- $ cp /boot/config-2.4.18-386 .config # 将当前配置设定为默认配置
- $ make menuconfig # 按自己的喜好来定制
- $ make-kpkg clean # 执行这步(per: man make-kpkg)
- $ fakeroot make-kpkg
-
-
拥有帝国一切,皆有可能。欢迎访问phome.netmodules_image # modules_image 可以是 pcmcia-cs* 等.
- $ cd ..
- # dpkg -i kernel-image*.deb pcmcia-cs*.deb # 安装
make-kpkg kernel_image 实际上执行了 make oldconfig 和 make dep.如果没使用 initrd 就不要使用 --initrd 选项.
如 果想加载 pcmcia-cs 模块或内核 pcmcia 源码中没有的模块,应该在 make menuconfig 后选“General setup —>”进入“PCMCIA/CardBus support —>”,配置“< > PCMCIA/CardBus support”选项(例如,取消复选项).
对于 SMP 机器,参照 kernel-pkg.conf(5) 的说明设置 CONCURRENCY_LEVEL.
initrd = init ramdisk,是一个启动时存在于内存的文件系统.initrd的最初的目的是为了把kernel的启动分成两个阶段:在kernel中保留最少最基本 的启动代码,然后把对各种各样硬件设备的支持以模块的方式放在initrd中,这样就在启动过程中可以从initrd所mount的根文件系统中装载需要 的模块.这样的一个好处就是在保持kernel不变的情况下,通过修改initrd中的内容就可以灵活的支
|