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

📄 00000004.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 4 页
字号:
能会希望在每次修补的时候执行它。″&nbsp;make&nbsp;zlilo&nbsp;″将会安装核心,然後对它执行&nbsp;<BR>LILO&nbsp;,使你完成所有开机的准备,但是这只有在&nbsp;lilo&nbsp;已经以下列这种方式配置好的&nbsp;<BR>时候才可以:核心为&nbsp;/vmlinuz&nbsp;,&nbsp;lilo&nbsp;在&nbsp;/sbin&nbsp;下,而且与你的&nbsp;lilo&nbsp;配置一致。&nbsp;<BR>&nbsp;<BR>4.4.&nbsp;安装核心&nbsp;<BR>&nbsp;<BR>在你已经获得一个看起来能够照你希望运作的新核心之後,现在是安装它的时候了。大&nbsp;<BR>大部份的人使用&nbsp;LILO(&nbsp;Linux&nbsp;Loader&nbsp;)来做这件事。这是一个相当容易安装的软体&nbsp;<BR>,然而,它会因为配置档而困扰人们。如果你没有最新的版本,查看配置档(不是旧版&nbsp;<BR>的&nbsp;/etc/lilo/config&nbsp;就是新版的&nbsp;/etc/lilo.conf&nbsp;),看看里面有些什麽,它会告诉&nbsp;<BR>你像这样子的东西:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;image&nbsp;=&nbsp;/vmlinux&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label&nbsp;=&nbsp;Linux&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;=&nbsp;/dev/hda1&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;<BR>&nbsp;<BR>首先,″&nbsp;image&nbsp;=&nbsp;″是设定为已经安装的核心。大部份的人似乎都用&nbsp;/vmlinuz&nbsp;,但&nbsp;<BR>是我用&nbsp;/vmlinux&nbsp;。″&nbsp;lable&nbsp;″&nbsp;则是由&nbsp;lilo&nbsp;用来告诉你现在要启动的是那个核心或&nbsp;<BR>作业系统,而″&nbsp;root&nbsp;″则是这个特别的作业系统的根目录&nbsp;/&nbsp;。备份一份旧的核心(&nbsp;<BR>无论什麽档名),然後将你做的&nbsp;zImage&nbsp;拷贝进去,(例如,如果你用”&nbsp;/vmlinuz&nbsp;″&nbsp;<BR>的话,就像这样″&nbsp;cp&nbsp;zImage&nbsp;/vmlinuz&nbsp;”)。&nbsp;<BR>&nbsp;<BR>接著重新执行&nbsp;lilo&nbsp;—&nbsp;在较新的系统上,你可以只执行″&nbsp;lilo&nbsp;,″但是在较旧的系&nbsp;<BR>统上,你可能必须执行&nbsp;/etc/lilo/install&nbsp;或甚至是&nbsp;<BR>/ect/lilo/lilo&nbsp;-C&nbsp;/etc/lilo/config&nbsp;。&nbsp;<BR>&nbsp;<BR>如果你想知道更多有关於&nbsp;lilo&nbsp;的配置,或是你并没有&nbsp;lilo&nbsp;但是你想要安装的话,从&nbsp;<BR>你喜欢的&nbsp;ftp&nbsp;节点拿最新的版本然後依说明行事。&nbsp;<BR>&nbsp;<BR>要能够从硬碟启动你的旧核心其中之一的话(这是另一个在新核心出状况的情况下保护&nbsp;<BR>你自己的方法),把&nbsp;lilo&nbsp;配置档中所有的(包括一行)″&nbsp;image&nbsp;=&nbsp;xxx&nbsp;″&nbsp;拷贝到档&nbsp;<BR>案的最底端,然後把″&nbsp;image&nbsp;=&nbsp;xxx&nbsp;″改成″&nbsp;image&nbsp;=&nbsp;yyy&nbsp;,″其中的″&nbsp;yyy&nbsp;″是&nbsp;<BR>你备份旧核心所存档的名字。接著,把″&nbsp;lable&nbsp;=&nbsp;xXx&nbsp;″改成像是”&nbsp;lable&nbsp;=&nbsp;linux-&nbsp;<BR>backup。”然後重新执行&nbsp;lilo&nbsp;。&nbsp;<BR>&nbsp;<BR>你可能得要加上一行″&nbsp;delay&nbsp;=&nbsp;x&nbsp;,″其中的&nbsp;x&nbsp;是以十分之一秒为单位的时间,这是&nbsp;<BR>用来使&nbsp;lilo&nbsp;在启动前先等一下,所以你可以中断它的执行(例如用&nbsp;shift&nbsp;键)。然&nbsp;<BR>後键入所备份的启动映像之&nbsp;lable&nbsp;(在发生了某些令人不愉快的事情的情况下)。&nbsp;<BR>&nbsp;<BR>5.&nbsp;修补核心&nbsp;<BR>&nbsp;<BR>5.1.&nbsp;使用修补档&nbsp;<BR>&nbsp;<BR>核心的小幅更新是以修补档的方式发行。例如,如果你的版本是&nbsp;1.1.45&nbsp;,而且你注意&nbsp;<BR>到出现了一个″&nbsp;patch46.gz&nbsp;″可以用来升级它,这代表你可以藉由使用这个修补档将&nbsp;<BR>版本升级到&nbsp;1.1.46&nbsp;。你也许会想要先备份&nbsp;source&nbsp;tree(″make&nbsp;clean&nbsp;″然後″&nbsp;cd&nbsp;<BR>/usr/src;&nbsp;tar&nbsp;cvf&nbsp;linux&nbsp;|&nbsp;gzip&nbsp;-c&nbsp;&gt;&nbsp;old-tree.tar.gz″将会为你造出一份&nbsp;tar&nbsp;压&nbsp;<BR>缩档,里面就是整个原始程式码与其档案架构。)。&nbsp;<BR>&nbsp;<BR>现在接著继续上面的例子,假设你已经取得了″&nbsp;patch46.gz&nbsp;″并放在&nbsp;/usr/src&nbsp;下。&nbsp;<BR>cd&nbsp;到&nbsp;/usr/src&nbsp;然後执行″&nbsp;zcat&nbsp;patch46.gz&nbsp;|&nbsp;patch&nbsp;-p0&nbsp;″(如果并不是压缩过的&nbsp;<BR>修补档,那麽就执行″&nbsp;patch&nbsp;-p0&nbsp;&lt;&nbsp;patch46″)你将会看到许多东西飞逝而过(也许&nbsp;<BR>它们会慢慢跳过,如果你的电脑真的很慢的话)告诉你它正试著应用&nbsp;hunks&nbsp;,以及是&nbsp;<BR>否成功。&nbsp;<BR>&nbsp;<BR>通常,这个过程快得无法仔细看清楚它的动作,所以你会无法确定它到底有没有成功地&nbsp;<BR>执行。那麽就得找找看一些可能不是那麽顺利的事。cd&nbsp;到&nbsp;/usr/src/linux&nbsp;并找寻档&nbsp;<BR>名有&nbsp;.reg&nbsp;的档案。某些版本的修补档(比较旧的版本,它们可能是在比较早期的档案&nbsp;<BR>系统上编译的)会把这些没有成功的操作记录在档名有&nbsp;#&nbsp;的档案里。你可以用&nbsp;<BR>″&nbsp;find&nbsp;″来替你找;″&nbsp;find&nbsp;.&nbsp;&nbsp;-name&nbsp;'*.reg'&nbsp;-print&nbsp;″会处理这个工作。&nbsp;<BR>&nbsp;<BR>如果一切正确无误的话,执行第二节跟第三节所讨论的″&nbsp;make&nbsp;clean&nbsp;,″″&nbsp;config&nbsp;<BR>,″以及″&nbsp;dep&nbsp;″。&nbsp;<BR>&nbsp;<BR>关於&nbsp;patch&nbsp;指令另外还有一些选项。patch&nbsp;-s&nbsp;将会抑制除了错误以外的所有其他讯息&nbsp;<BR>。如果你把核心原始程式码放在&nbsp;/usr/src/linux&nbsp;以外的地方,在该目录下用&nbsp;<BR>patch&nbsp;-p1&nbsp;也可以乾净俐落的执行修补任务。其它的&nbsp;patch&nbsp;选项在&nbsp;manual&nbsp;pages&nbsp;里&nbsp;<BR>都有很详细的描述。&nbsp;<BR>&nbsp;<BR>5.2.&nbsp;如果有错误发生&nbsp;<BR>&nbsp;<BR>通常最常发生的问题是当&nbsp;patch&nbsp;修改一个叫做″&nbsp;config.in&nbsp;″&nbsp;的档案时,这个档案&nbsp;<BR>看起来不怎麽对劲,因为你修改了一些选项来配合你的机器。这个问题已经小心的注意&nbsp;<BR>过了,但还是可能有人会在较旧的版本上遭遇这个问题。&nbsp;<BR>&nbsp;<BR>要修正这个问题的话,查看&nbsp;config.in.rej&nbsp;这个档案里留下些什麽讯息。有修改过的&nbsp;<BR>部份正常来说会在每一行开始的地方标上″&nbsp;+&nbsp;″和″&nbsp;-&nbsp;″。查看有标记的附近几行,&nbsp;<BR>然後记得它们是设成″&nbsp;y&nbsp;″或是″&nbsp;n&nbsp;。″现在编辑&nbsp;config.in&nbsp;档,然後在适当的地&nbsp;<BR>方把″&nbsp;y&nbsp;″改成″&nbsp;n&nbsp;″以及″&nbsp;n″改成″y″。&nbsp;<BR>&nbsp;<BR>执行″&nbsp;patch&nbsp;-p0&nbsp;&lt;&nbsp;config.in.rej&nbsp;,″如果成功的话(没有错误),那麽你就完成&nbsp;<BR>了。这个&nbsp;config.in.rej&nbsp;档还是会留在那里,但是你可以砍掉它。&nbsp;<BR>&nbsp;<BR>如果你仍然遭遇其它问题,那麽可能是你安装了一份损坏的修补档。如果&nbsp;patch&nbsp;显示&nbsp;<BR>″&nbsp;previously&nbsp;applied&nbsp;patch&nbsp;detected:&nbsp;Assume&nbsp;-R?&nbsp;,″你可能使用了一些比你目&nbsp;<BR>前的版本编号还低的修补档(并不建议这样做)。&nbsp;<BR>&nbsp;<BR>要还原一个修补档的话,在原先的修补档上执行″&nbsp;patch&nbsp;-R&nbsp;″。&nbsp;<BR>&nbsp;<BR>当修补档真的失败的时候,最好的办法是从一个乾净的,out-of-the-box&nbsp;source&nbsp;tree&nbsp;<BR>(例如从&nbsp;linux-x.x.x.tar.gz&nbsp;档案其中之一)开始,再重新执行。&nbsp;<BR>&nbsp;<BR>5.3.&nbsp;砍掉&nbsp;.orig&nbsp;档案&nbsp;<BR>&nbsp;<BR>只要做过几次修补以後,那些&nbsp;.orig&nbsp;的档案将会开始堆积。例如,我的一个&nbsp;1.1.51&nbsp;<BR>版的&nbsp;tree&nbsp;最後一次做清扫是在&nbsp;1.1.48&nbsp;版(我想是吧)。删除这些&nbsp;.orig&nbsp;档案会节&nbsp;<BR>省许多的磁碟空间。″&nbsp;find&nbsp;.&nbsp;-name&nbsp;'*.orig'&nbsp;-exec&nbsp;rm&nbsp;-f&nbsp;{}&nbsp;';'&nbsp;″将会替你照料&nbsp;<BR>这件事。某些版本的修补档会用&nbsp;tilde&nbsp;来代替&nbsp;.orig&nbsp;。&nbsp;<BR>&nbsp;<BR>有其它(更好的?)的办法可砍掉这些&nbsp;.orig&nbsp;档。用的最多的是以″&nbsp;xargs&nbsp;″来代替&nbsp;<BR>″&nbsp;-exec:&nbsp;″″find&nbsp;.&nbsp;-name&nbsp;'*.orig&nbsp;|&nbsp;xargs&nbsp;rm&nbsp;″或是″&nbsp;find&nbsp;.&nbsp;-name&nbsp;'*.orig'&nbsp;<BR>&nbsp;-print0&nbsp;|&nbsp;xargs&nbsp;--null&nbsp;rm&nbsp;--&nbsp;″(後面这个比较安全。)。&nbsp;<BR>&nbsp;<BR>5.4.&nbsp;其它的修补档&nbsp;<BR>&nbsp;<BR>总是会有一些并不是由&nbsp;Linus&nbsp;发行的其它修补档出现(我将称之为″非标准的″&nbsp;)。&nbsp;<BR>如果你使用了它们,&nbsp;Linus&nbsp;的修补档可能会而无法正确地执行,那麽你不是得将它们&nbsp;<BR>还原就是得因此而去修改原始程式码或是修补档。这个工作对初学者通常是很讨厌,所&nbsp;<BR>以,如果你对原始程式码没什麽研究,在使用&nbsp;Linus&nbsp;的修补档之前先还原这些非标准&nbsp;<BR>的修补档。&nbsp;<BR>&nbsp;<BR>然後你可以看看这些非标准的修补档是否仍然可以执行。如果不行的话,那麽你要不就&nbsp;<BR>继续用旧的核心来修补以执行它们,要不就等别人发表能在你修补後的新核心上用的新&nbsp;<BR>版非标准修补档。&nbsp;<BR>&nbsp;<BR>非标准的修补档有多普遍?你有可能曾经听过它们。我使用&nbsp;Bill&nbsp;Paul&nbsp;的不闪烁修补&nbsp;<BR>档来&nbsp;make&nbsp;我虚拟控制台上的游标,因为我讨厌会闪烁的游标。就我所知,到目前为止&nbsp;<BR>这个特别的修补档的最新版本是给&nbsp;1.0&nbsp;版的核心使用的,但是我仍然在&nbsp;1.1.51&nbsp;版下&nbsp;<BR>使用它&nbsp;—&nbsp;我已经修改了它好几次,因为它通常会搞乱&nbsp;Linus&nbsp;修补档的&nbsp;driver/char/&nbsp;<BR>console.c&nbsp;。&nbsp;<BR>&nbsp;<BR>6.&nbsp;附加的套件&nbsp;<BR>&nbsp;<BR>你的&nbsp;Linux&nbsp;核心有许多在核心的原始程式码本身里面并没有说明的特性;这些特性一&nbsp;<BR>般是经由外来的软体来利用,在这里列出一部分最普遍的:&nbsp;<BR>&nbsp;<BR>6.1.&nbsp;kbd&nbsp;<BR>&nbsp;<BR>Linux&nbsp;的控制台有著比你所能吃惊更多的特色。这包括切换字型,重新对映你的键盘,&nbsp;<BR>切换显示模式(比较新的核心)的能力等等。kbd&nbsp;这套软体里有能够让使用者做这些动&nbsp;<BR>作的支援程式,还加上一大堆的字型以及几乎足以适用任何键盘的一些键盘对映表。&nbsp;<BR>&nbsp;<BR>6.2.&nbsp;hdparm&nbsp;<BR>&nbsp;<BR>像很多软体一样,这曾经是一个核心修补档及其支援程式。这些修补档被公认为核心的&nbsp;<BR>一部分,而用来最佳化以及调适你硬碟的支援程式一般是分开发行的。&nbsp;<BR>&nbsp;<BR>7.&nbsp;一些陷阱&nbsp;<BR>&nbsp;<BR>7.1.&nbsp;清除&nbsp;<BR>&nbsp;<BR>如果你的新核心会做一些真的很奇怪的事(这曾经发生在我身上),有可能是因为你忘&nbsp;<BR>了做清除(&nbsp;make&nbsp;clean&nbsp;)。症状从你的核心不正常地崩溃到奇怪的输出入问题,一直&nbsp;<BR>到可怜的执行效率等等不一而足,可以是任何事。最好也要确定你有做确认(&nbsp;make&nbsp;<BR>dep&nbsp;)。&nbsp;<BR>&nbsp;<BR>7.2.&nbsp;巨大或缓慢的核心&nbsp;<BR>&nbsp;<BR>如果你的核心占用了大量的记忆体,或者它真的是很大很大,也或者是即使用你全新的&nbsp;<BR>&nbsp;486DX6/440&nbsp;来编译却都还像是永远编译不完的话,那麽有可能是因为你配置了太多不&nbsp;<BR>必要的东西(设备驱动程式,档案系统等等)。如果你不会用到某些东西,那就不要配&nbsp;<BR>置它,因为它真的会占用记忆体。&nbsp;<BR>&nbsp;<BR>如果你的记忆体少於&nbsp;16&nbsp;Megs&nbsp;,确定你在″&nbsp;limit&nbsp;memory&nbsp;to&nbsp;low&nbsp;then&nbsp;16MB&nbsp;″这个&nbsp;<BR>问题上回答的是″&nbsp;y&nbsp;″。这会造成很大的不同(尤其是只有在&nbsp;4&nbsp;MB&nbsp;的系统上)最明&nbsp;<BR>显的症状是记忆体与磁碟之间异常大量的资料交换。如果你的磁碟发出很多噪音,检查&nbsp;<BR>一下你的核心配置。&nbsp;<BR>&nbsp;<BR>你可以找出你机器上全部记忆体的数量,然後减掉&nbsp;/proc/meminfo&nbsp;里面的″&nbsp;total&nbsp;<BR>mem&nbsp;″或″&nbsp;free&nbsp;″指令所得的记忆体数量来得知核心使用了多少记忆体。你也可以执&nbsp;<BR>行”&nbsp;dmesg&nbsp;”(或者也可以查看核心的记录档,它一定在会你的系统里)。看起来就&nbsp;<BR>像这一行:&nbsp;<BR>&nbsp;<BR>Memory:&nbsp;15124k/16384k&nbsp;available&nbsp;(552k&nbsp;kernel&nbsp;code,&nbsp;384k&nbsp;reserved,&nbsp;324k&nbsp;<BR>data)&nbsp;<BR>&nbsp;<BR>我的&nbsp;386(配置很少垃圾)显示如下:&nbsp;<BR>&nbsp;<BR>

⌨️ 快捷键说明

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