⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7.htm

📁 debian参考手册,pdf格式的版本。
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0065)http://qref.sourceforge.net/Debian/reference/ch-kernel.zh-cn.html -->
<HTML><HEAD><TITLE>Debian 参考手册 - Debian下的Linux内核</TITLE>
<META http-equiv=content-type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.3790.118" name=GENERATOR></HEAD>
<BODY><A name=ch-kernel></A>
<HR>
[ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-package.zh-cn.html">上一页</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/reference.zh-cn.html#contents">目录</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-preface.zh-cn.html">1</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-system.zh-cn.html">2</A> ] 
[ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-install.zh-cn.html">3</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-tutorial.zh-cn.html">4</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-woody.zh-cn.html">5</A> ] 
[ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-package.zh-cn.html">6</A> 
] [ 7 ] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-tips.zh-cn.html">8</A> ] [ 
<A href="http://qref.sourceforge.net/Debian/reference/ch-tune.zh-cn.html">9</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-gateway.zh-cn.html">10</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-edit.zh-cn.html">11</A> ] 
[ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-vcs.zh-cn.html">12</A> ] [ 
<A 
href="http://qref.sourceforge.net/Debian/reference/ch-program.zh-cn.html">13</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-gnupg.zh-cn.html">14</A> ] 
[ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-support.zh-cn.html">15</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ap-appendix.zh-cn.html">A</A> 
] [ <A 
href="http://qref.sourceforge.net/Debian/reference/ch-tips.zh-cn.html">下一页</A> ] 

<HR>

<H1>Debian 参考手册 <BR>第 7 章 - Debian下的Linux内核 </H1>
<HR>

<P>Debian运用自己的方式来编译内核及相关模块。参阅<A 
href="http://qref.sourceforge.net/Debian/reference/ch-system.zh-cn.html#s-kernel-details">Debian和系统内核, 
第 2.7 节</A>。 
<HR>
<A name=s-kernel-compile></A>
<H2>7.1 内核编译</H2>
<P>Debian 
unstable发行版中的<CODE>gcc</CODE>、<CODE>binutils</CODE>和<CODE>modutils</CODE>可用来编译最新的Linux内核。这方面的官方信息,参阅<CODE>/usr/share/doc/kernel-package/README.gz</CODE>文件的后半部分。 

<P>内核编译是个很困难的议题,由于目标在不断的变化,即使是最受人尊敬的开发者也会有不同的见解: 
<DL>
  <DT>Manoj Srivastava写到: 
  <DD><SAMP>--initrd</SAMP>需要Debian专用cramfs补丁。 
  <DT>Herbert Xu写到: 
  <DD>不,它不需要,想使用除CRAMFS以外的文件系统只需在<CODE>/etc/mkinitrd/mkinitrd.conf</CODE>中设置MKIMAGE。 
  </DD></DL>
<P>按照Manoj和Kent撰写的<CODE>/usr/share/doc/kernel-package/README.gz</CODE>的指导小心行事,如果要编译最新版本的内核请确认安装了最新unstable版<CODE>kernel-package</CODE>软件包。 

<P>对于单机内核编译,<SAMP>initrd</SAMP>不是必须的。我用它是希望我新编译的内核与相应的内核镜像一模一样。如果使用<SAMP>initrd</SAMP>,请先阅读一下<CODE>mkinitrd(8)</CODE>和<CODE>mkinitrd.conf(5)</CODE>。亦可参阅<CODE><A 
href="http://bugs.debian.org/149236">http://bugs.debian.org/149236</A></CODE>。 
<HR>
<A name=s-kernel-debian></A>
<H3>7.1.1 Debian标准方式</H3>
<P>关心一下有关<CODE>kernel-package</CODE>、<CODE>gcc</CODE>、<CODE>binutils</CODE>和<CODE>modutils</CODE>的错误报告。请按有关要求使用较新的版本。 

<P>在Debian系统中用源码编译自定义内核要特别小心。用<CODE>make-kpkg</CODE>的<SAMP>--append_to_version</SAMP>选项来创建多重内核镜像比较安全。 
<PRE>     # apt-get install debhelper modutils kernel-package libncurses5-dev
     # apt-get install kernel-source-<VAR>2.4.18</VAR>   # 使用最新版本
     # apt-get install fakeroot
     # vi /etc/kernel-pkg.conf                # 输入我的名字和email
     $ cd /usr/src                            # 创建目录
     $ tar --bzip2 -xvf kernel-source-<VAR>2.4.18</VAR>.tar.bz2
     $ cd kernel-source-<VAR>2.4.18</VAR>                # 如果这是你的内核源码
     $ cp /boot/config-<VAR>2.4.18-386</VAR> .config     # 将当前配置设定为默认配置
     $ make menuconfig                        # 按自己的喜好来定制
     $ make-kpkg clean                        # 必须执行这步(per: man make-kpkg)
     $ fakeroot make-kpkg --append_to_version -<VAR>486</VAR> --initrd \
             --revision=<VAR>rev.01</VAR> kernel_image \
             modules_image # modules_image可以是pcmcia-cs*等。
     $ cd ..
     # dpkg -i kernel-image*.deb pcmcia-cs*.deb # 安装
</PRE>
<P><SAMP>make-kpkg kernel_image</SAMP>实际上执行了<SAMP>make 
oldconfig</SAMP>和<SAMP>make dep</SAMP>。如果没使用initrd就不要使用<SAMP>--initrd</SAMP>选项。 
<P>如果想加载pcmcia-cs模块或没有pcmcia,应该在<SAMP>make menuconfig</SAMP>后选“General setup 
—&gt;”进入“PCMCIA/CardBus support —&gt;”,配置“&lt;&nbsp;&gt; PCMCIA/CardBus 
support”选项(例如,取消复选项)。 
<P>对于SMP机器,参照<CODE>kernel-pkg.conf(5)</CODE>的说明设置CONCURRENCY_LEVEL。 
<HR>
<A name=s-kernel-classic></A>
<H3>7.1.2 经典方式</H3>
<P>从下列地址获得干净的源代码: 
<UL>
  <LI>Linux: <CODE><A 
  href="http://www.kernel.org/">http://www.kernel.org/</A></CODE> 
  <LI>pcmcia-cs: <CODE><A 
  href="http://pcmcia-cs.sourceforge.net/">http://pcmcia-cs.sourceforge.net/</A></CODE> 
  </LI></UL>
<P>或使用Debian所附的等价的源代码: <PRE>     # cd /usr/src
     # tar xfvz linux-<VAR>whatever</VAR>.tar.gz
     # rm -rf linux
     # ln -s linux-<VAR>whatever</VAR> linux
     # tar xfvz pcmcia-cs-<VAR>whatever</VAR>.tar.gz
     # ln -s pcmcia-cs-<VAR>whatever</VAR> pcmcia
     # cd linux
     # make menuconfig
     ... 配置内核选项 ...
     # make dep
     # make bzImage
     ... 编辑lilo/grub ...
     ... 移动/usr/src/linux/arch/i386/boot/bzImage到boot ...
     ... /sbin/lilo or whatever you do for grub
     # make modules; make modules_install
     # cd ../pcmcia
     # make config
     # make all
     # make install
     ... 添加需要的模块名称到/etc/modules
     # shutdown -r now
     ... 启动到新内核 ...
</PRE>
<HR>
<A name=s-kernel-headers></A>
<H3>7.1.3 内核头文件</H3>
<P>绝大多数“普通”程序不需要内核头文件,事实上如果直接引用它们会出错。这些程序应该引用那些<STRONG>编译<CODE>glibc</CODE></STRONG>所用的头文件,它们位于Debian系统的<CODE>/usr/include/linux</CODE>和<CODE>/usr/include/asm</CODE>目录下。 

<P>故不要在<CODE>/usr/src/linux</CODE>目录中创建指向<CODE>/usr/include/linux</CODE>和<CODE>/usr/include/asm</CODE>的链接,一些过时的文档曾建议创建它们。 

<P>如果某些内核类应用程序<STRONG>需要</STRONG>特定的内核头文件,可修改<CODE>Makefile</CODE>(s),使其包含指向“<CODE><VAR>特定内核头文件目录</VAR>/include/linux</CODE>”和“<CODE><VAR>特定内核头文件目录</VAR>/include/asm</CODE>”的路径。 

<HR>
<A name=s-kernel-modules></A>
<H2>7.2 模块化的2.4内核</H2>
<P>kerntl-mage-2.4.<VAR>NN</VAR>提供了新版的Debian 
2.4内核,该版内核模块化程度极高。你必须激活相关的模块才能获得想要的内核功能。 
<P>尽管在接下来的部分中提供了许多通过配置<CODE>/etc/modules</CODE>来解决问题的样例,但据说,在<CODE>/etc/modutils/</CODE>中用一个文件来提供所有的设备别名,就可解决这类有关模块问题,当前的内核有足够多的别名供你使用。 

<P>参阅Linux内核源码目录中的<CODE>Documentation/*.txt</CODE>获取详细信息。 
<HR>
<A name=s-kernel-pcmcia></A>
<H3>7.2.1 PCMCIA</H3>
<P>要使用PCMCIA,需在<CODE>/etc/modules</CODE>中包含下列内容: <PRE>     # ISA PnP driver
     isa-pnp
     # Low level PCMCIA driver
     # yenta_socket # 我的机器上似乎不需要
</PRE>
<P>剩下的工作就由PCMCIA脚本(来自<CODE>pcmcia-cs</CODE>软件包)、<CODE>depmod</CODE>和<CODE>kmod</CODE>负责了。我需要<CODE>isa-pnp</CODE>因为我的笔记本电脑使用的是旧ISA-PCMCIA。较新的笔记本电脑使用CardBus/PCMCIA,不再需要它。 

<P>慷慨的Miquel van Smoorenburg <CODE><A 
href="mailto:miquels@cistron.nl">miquels@cistron.nl</A></CODE>说: 
<P>“我将笔记中所有有关pcmcia的东西包括cardmgr等一鼓脑全删了,只装了支持cardbus的2.4版内核和woody中新的<CODE>hotplug</CODE>软件包。 

<P>只要你使用的是32-bit卡,你就不需要pcmcia软件包;2.4内置了cardservices。标准的tulip驱动亦可在dlink卡上正常工作。 
<P>—Mike。” 
<HR>
<A name=s-kernel-scsi></A>
<H3>7.2.2 SCSI</H3>
<P>[没有测试过] 想要SCSI工作,请在<CODE>/etc/modules</CODE>中包含如下内容: <PRE>     # SCSI core
     scsi_mod
     # SCSI generic driver
     sg
     # SCSI disk
     sd_mod
     # All other needed HW modules
     ...
</PRE>
<P>可用<CODE>depmod</CODE>来操作上述某些模块。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -