| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux开发区 > 内核研究

Debian Linux系统下的内核编译详细讲解

时间:2007-07-30 09:43:19  来源:Linux联盟收集整理  作者:
 

1. 传统方式直接在console中编译官方内核,需要以下软件包 vAELinux联盟

bin86 - 16-bit assembler and loader vAELinux联盟

diff - File comparison utilities vAELinux联盟

libc6-dev - GNU C Library: Development Libraries and Header Files vAELinux联盟

libncurses5-dev - Developer's libraries and docs for ncurses vAELinux联盟

patch - Apply a diff file to an original vAELinux联盟

2.使用2.4.x内核的图形界面配置程序(make xconfig),还需要 vAELinux联盟

tk8.4 - Tk toolkit for Tcl and X11, v8.4 - run-time files vAELinux联盟

使用2.6.x内核的Qt图形界面配置程序(make xconfig),还需要 vAELinux联盟

libqt3-mt-dev - Qt development files (Threaded) vAELinux联盟

使用2.6.x内核的GTK图形界面配置程序(make gconfig),还需要 vAELinux联盟

libgtk2.0-dev - Development files for the GTK+ library vAELinux联盟

3. 如果您想制作内核的deb包,还需要 vAELinux联盟

debianutils - Miscellaneous utilities specific to Debian vAELinux联盟

kernel-package - A utility for building Linux kernel related Debian package vAELinux联盟

ksymoops - Linux kernel oops and error message decoder vAELinux联盟

内核编译 vAELinux联盟

http://www.debian.org/doc/manuals/reference/ch-kernel.zh-cn.html vAELinux联盟

Debian unstable发行版中的gcc、binutils和modutils可用来编译最新的Linux内核。这方面的官方信息, vAELinux联盟

参阅/usr/share/doc/kernel-package/README.gz文件的后半部分。 vAELinux联盟

内核编译是个很困难的议题,由于目标在不断的变化,即使是最受人尊敬的开发者也会有不同的见解: vAELinux联盟

Manoj Srivastava写到: --initrd需要Debian专用cramfs补丁。 Herbert Xu写到:不,它不需要,想使用 vAELinux联盟

除CRAMFS以外的文件系统只需在/etc/mkinitrd/mkinitrd.conf中设置MKIMAGE。 vAELinux联盟

按照Manoj和Kent撰写的/usr/share/doc/kernel-package/README.gz的指导小心行事,如果要编译最新版本 vAELinux联盟

的内核请确认安装了最新unstable版kernel-package软件包。 vAELinux联盟

对于单机内核编译,initrd不是必须的。我用它是希望我新编译的内核与相应的内核镜像一模一样。如果使 vAELinux联盟

用initrd,请先阅读一下mkinitrd(8)和mkinitrd.conf(5)。亦可参阅http://bugs.debian.org/149236。 vAELinux联盟

Debian标准方式 vAELinux联盟

关心一下有关kernel-package、gcc、binutils和modutils的错误报告。请按有关要求使用较新的版本。 vAELinux联盟

在Debian系统中用源码编译自定义内核要特别小心。用make-kpkg的--append_to_version选项来创建多重内核镜 vAELinux联盟

像比较安全。 vAELinux联盟

# apt-get install debhelper modutils kernel-package libncurses5-dev vAELinux联盟

# apt-get install kernel-source-2.4.18 # 使用最新版本 vAELinux联盟

# apt-get install fakeroot vAELinux联盟

# vi /etc/kernel-pkg.conf # 输入我的名字和email vAELinux联盟

$ cd /usr/src vAELinux联盟

# 创建目录 vAELinux联盟

$ tar --bzip2 -xvf kernel-source-2.4.18.tar.bz2 vAELinux联盟

$ cd kernel-source-2.4.18 # 如果这是你的内核源码 vAELinux联盟

$ cp /boot/config-2.4.18-386 .config # 将当前配置设定为默认配置 vAELinux联盟

$ make menuconfig # 按自己的喜好来定制 vAELinux联盟

$ make-kpkg clean # 必须执行这步(per: man make-kpkg) vAELinux联盟

$ fakeroot make-kpkg --append_to_version -486 --initrd \ vAELinux联盟

--revision=rev.01 kernel_image \ vAELinux联盟

modules_image # modules_image可以 vAELinux联盟

是pcmcia-cs*等。 vAELinux联盟

$ cd .. # dpkg -i kernel-image*.deb pcmcia-cs*.deb # 安装 vAELinux联盟

make-kpkg kernel_image实际上执行了make oldconfig和make dep。如果没使用initrd就不要使用 vAELinux联盟

--initrd选项。 vAELinux联盟

如果想加载pcmcia-cs模块或没有pcmcia,应该在make menuconfig后选"General setup —>"进入 vAELinux联盟

"PCMCIA/CardBus support —>",配置"< > PCMCIA/CardBus support"选项(例如,取消复选项)。 vAELinux联盟

对于SMP机器,参照kernel-pkg.conf(5)的说明设置CONCURRENCY_LEVEL。 vAELinux联盟

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目更新
栏目热门