编译 linux 3,linux内核的编译(3)

linux内核的编译(3)

2008-02-23 07:17:46来源:互联网 阅读 ()

c4468b3f4df77e96b0a416fa2a870fba.png

无论什麽档名),然後将你做的 zImage 拷贝进去,(例如,如果你用” /vmlinuz ″

的话,就像这样″ cp zImage /vmlinuz ”)。

接著重新执行 lilo — 在较新的系统上,你可以只执行″ lilo ,″但是在较旧的系

统上,你可能必须执行 /etc/lilo/install 或甚至是

/ect/lilo/lilo -C /etc/lilo/config 。

如果你想知道更多有关於 lilo 的配置,或是你并没有 lilo 但是你想要安装的话,从

你喜欢的 ftp 节点拿最新的版本然後依说明行事。

要能够从硬碟启动你的旧核心其中之一的话(这是另一个在新核心出状况的情况下保护

你自己的方法),把 lilo 配置档中所有的(包括一行)″ image = xxx ″ 拷贝到档

案的最底端,然後把″ image = xxx ″改成″ image = yyy ,″其中的″ yyy ″是

你备份旧核心所存档的名字。接著,把″ lable = xXx ″改成像是” lable = linux-

backup。”然後重新执行 lilo 。

你可能得要加上一行″ delay = x ,″其中的 x 是以十分之一秒为单位的时间,这是

用来使 lilo 在启动前先等一下,所以你可以中断它的执行(例如用 shift 键)。然

後键入所备份的启动映像之 lable (在发生了某些令人不愉快的事情的情况下)。

3. 修补核心

3.1. 使用修补档

核心的小幅更新是以修补档的方式发行。例如,如果你的版本是 1.1.45 ,而且你注意

到出现了一个″ patch46.gz ″可以用来升级它,这代表你可以藉由使用这个修补档将

版本升级到 1.1.46 。你也许会想要先备份 source tree(″make clean ″然後″ cd

/usr/src; tar cvf linux | gzip -c > old-tree.tar.gz″将会为你造出一份 tar 压

缩档,里面就是整个原始程序码与其档案架构。)。

现在接著继续上面的例子,假设你已经取得了″ patch46.gz ″并放在 /usr/src 下。

cd 到 /usr/src 然後执行″ zcat patch46.gz | patch -p0 ″(如果并不是压缩过的

修补档,那麽就执行″ patch -p0 < patch46″)你将会看到许多东西飞逝而过(也许

它们会慢慢跳过,如果你的电脑真的很慢的话)告诉你它正试著应用 hunks ,以及是

否成功。

通常,这个过程快得无法仔细看清楚它的动作,所以你会无法确定它到底有没有成功地

执行。那麽就得找找看一些可能不是那麽顺利的事。cd 到 /usr/src/linux 并找寻档

名有 .reg 的档案。某些版本的修补档(比较旧的版本,它们可能是在比较早期的档案

系统上编译的)会把这些没有成功的操作记录在档名有 # 的档案里。你可以用

″ find ″来替你找;″ find . -name '*.reg' -print ″会处理这个工作。

如果一切正确无误的话,执行第二节跟第三节所讨论的″ make clean ,″″ config

,″以及″ dep ″。

关於 patch 指令另外还有一些选项。patch -s 将会抑制除了错误以外的所有其他讯息

。如果你把核心原始程序码放在 /usr/src/linux 以外的地方,在该目录下用

patch -p1 也可以乾净俐落的执行修补任务。其它的 patch 选项在 manual pages 里

都有很详细的描述。

3.2. 如果有错误发生

通常最常发生的问题是当 patch 修改一个叫做″ config.in ″ 的档案时,这个档案

看起来不怎麽对劲,因为你修改了一些选项来配合你的机器。这个问题已经小心的注意

过了,但还是可能有人会在较旧的版本上遭遇这个问题。

要修正这个问题的话,查看 config.in.rej 这个档案里留下些什麽讯息。有修改过的

部份正常来说会在每一行开始的地方标上″ ″和″ - ″。查看有标记的附近几行,

然後记得它们是设成″ y ″或是″ n 。″现在编辑 config.in 档,然後在适当的地

方把″ y ″改成″ n ″以及″ n″改成″y″。

执行″ patch -p0 < config.in.rej ,″如果成功的话(没有错误),那麽你就完成

了。这个 config.in.rej 档还是会留在那里,但是你可以砍掉它。

如果你仍然遭遇其它问题,那麽可能是你安装了一份损坏的修补档。如果 patch 显示

″ previously applied patch detected: Assume -R? ,″你可能使用了一些比你目

前的版本编号还低的修补档(并不建议这样做)。

要还原一个修补档的话,在原先的修补档上执行″ patch -R ″。

当修补档真的失败的时候,最好的办法是从一个乾净的,out-of-the-box source tree

(例如从 linux-x.x.x.tar.gz 档案其中之一)开始,再重新执行。

3.3. 砍掉 .orig 档案

只要做过几次修补以後,那些 .orig 的档案将会开始堆积。例如,我的一个 1.1.51

版的 tree 最後一次做清扫是在 1.1.48 版(我想是吧)。删除这些 .orig 档案会节

省许多的磁碟空间。″ find . -name '*.orig' -exec rm -f {} ';' ″将会替你照料

这件事。某些版本的修补档会用 tilde 来代替 .orig 。

有其它(更好的?)的办法可砍掉这些 .orig 档。用的最多的是以″ xargs ″来代替

″ -exec: ″″find . -name '*.orig | xargs rm ″或是″ find . -name '*.orig'

-print0 | xargs --null rm -- ″(後面这个比较安全。)。

3.4. 其它的修补档

总是会有一些并不是由 Linus 发行的其它修补档出现(我将称之为″非标准的″ )。

如果你使用了它们, Linus 的修补档可能会而无法正确地执行,那麽你不是得将它们

还原就是得因此而去修改原始程序码或是修补档。这个工作对初学者通常是很讨厌,所

以,如果你对原始程序码没什麽研究,在使用 Linus 的修补档之前先还原这些非标准

的修补档。

然後你可以看看这些非标准的修补档是否仍然可以执行。如果不行的话,那麽你要不就

继续用旧的核心来修补以执行它们,要不就等别人发表能在你修补後的新核心上用的新

版非标准修补档。

非标准的修补档有多普遍?你有可能曾经听过它们。我使用 Bill Paul 的不闪烁修补

档来 make 我虚拟控制台上的游标,因为我讨厌会闪烁的游标。就我所知,到目前为止

这个特别的修补档的最新版本是给 1.0 版的核心使用的,但是我仍然在 1.1.51 版下

使用它 — 我已经修改了它好几次,因为它通常会搞乱 Linus 修补档的 driver/char/

console.c 。

4. 附加的套件

你的 Linux 核心有许多在核心的原始程序码本身里面并没有说明的特性;这些特性一

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

相关文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 端口限速技术,linux下如何实现对每个IP进行限制带宽??

linux下如何实现对每个IP进行限制带宽&#xff1f;&#xff1f;(2011-09-01 01:03:54)标签&#xff1a;杂谈linux下如何实现对每个IP进行限制带宽&#xff1f;&#xff1f;redhatlinux服务器&#xff0c;最近发现单位的网内BT下载、迅雷下载太多&#xff0c;严重影响正常上网&a…

u盘启动+linux+ks.cfg,通过ks.cfg文件自动安装系统

最近需要制作自动安装系统的iso镜像文件&#xff0c;写个笔记以防忘记第一步、拿到iso原始文件&#xff0c;我用的是rhel7.7的把rhel7.7文件复制出来到一个目录中第二步、编写一个名字叫ks.cfg文件内容如下&#xff1a;#versionDEVELInstall OS instead of upgradeinstallKeybo…

linux下编译安装ntfs,linux下编译安装ntfs

“mount: you must specify the filesystem type” 错误提示是这个mount /dev/hda1 /media/windows/ 在centos下无问题。不知道为什么在Ubuntu下有问题解决办法mount /dev/hda1 /media/windows/ -t ntfs (-t 制定文件系统类型&#xff0c;这里是ntfs) ######自己down源码包…

Linux做施压机的最大线程数,关于性能测试的几个要点

几个定义性能测试(Performance Test)通常收集所有和测试有关的所有性能&#xff0c;通常被不同人在不同场合下进行使用。测试软件在系统中的运行性能&#xff0c;度量系统与预定义目标的差距。关注点&#xff1a;how much和how fast负载测试(Load Test)负载测试是一种性能测试&…

Linux实训vim编辑器的应用,Linux实训例题(vim编辑器)

1、如果用vi编辑器编辑当前目录下的file1文件&#xff0c;则进入编辑的方式是()vi file12、在Vi编辑器中&#xff0c;请将光标定位到屏幕最上方、最中间、最下方&#xff0c;其命令分别是()()()H M L3、在Vi编辑器中&#xff0c;请将光标定位到文件的第10行&#xff0c;其命令是…

linux优化pdf,linux系统安全和优化.pdf

crookoo 于 2012-05-06 03:42:36发表:好东西啊dayed 于 2012-03-25 11:30:45发表:linux系统安全和优化topcloud 于 2012-03-22 12:50:28发表:顶阿顶。。vikenfeng 于 2011-10-27 10:05:32发表:感谢楼主fastknot 于 2011-07-13 18:45:35发表:楼主很强大66781881 于 2011-06-30 2…

鸟哥的linux私房菜有乌班图,折腾Ubuntu的一些summary--初装Ubuntu18和重装Ubuntu18

1. 初次安装Ubuntu18关于linux安装&#xff0c;之前一直遇到的问题都是安装了&#xff0c;并重启之后之后进入到了grub界面&#xff0c;然后我自己对于grub指令不熟悉&#xff0c;加上没有足够的时间来研究&#xff0c;在多次重装之后&#xff0c;仍然没有办法直接进入&#xf…

线性分组码c语言实验报告,C语言线性分组码(附注释).doc

C语言线性分组码(附注释).doc下载提示(请认真阅读)1.请仔细阅读文档&#xff0c;确保文档完整性&#xff0c;对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档&#xff0c;不会出现我们的网址水印。3、该文档所得收入(下载内容预览)归上传者、原创作者&a…

bson json c语言,对比平台--JSON和BSON之间的区别

JavaScript Object Notation(JSON)是一种标准文件格式&#xff0c;使用人类可读的文本来传输具有属性值对和数组数据类型的数据。这是最常见的数据格式之一&#xff0c;主要用于异步浏览器-服务器通信。JSON是与语言无关的格式。另一方面&#xff0c;BSON是一种计算机交换格式&…

c语言中buf内容怎么给指针,C语言 指针的使用

C语言 指针当使用变量时出现长度不定&#xff0c;譬如在串口通信中&#xff0c;有些通信协议是不定长的&#xff0c;那么这个就应该使用指针&#xff1b;如果使用数组的话&#xff0c;会有下面这两个小问题&#xff0c;要将数组的大小要定的比较大&#xff0c;已保证能够容纳最…

c语言常考的程序,C语言 一些常考得东西

C语言基础测试1.#include “heima.txt” 表示文件在哪个目录&#xff1f;( D)A、系统根目路径B、编译器路径C、桌面D、与当前文件目录一致.2.C源程序中不能直接打印的进制数是( )A. 二进制 B.十六进制 C.十进制 D.八进制3.十六进制数0x1DA2转换成二进制数是多少(…

杭电2005题c语言答案,杭电2005

题不难&#xff0c;但细节较多&#xff0c;所以。。。不但二月闰年有影响&#xff0c;七八月都是31天&#xff0c;这个也得专门分开讨论&#xff0c;还有就是七八月份开讨论后&#xff0c;加的基数是三到七月的&#xff0c;不能完全复制上面的代码&#xff0c;基数得改~做题还是…

软件设计师c语言算法皇后,软件设计师历年试题-算法.ppt

软件设计师历年试题-算法1996年下午试题三 【E-R图】 1996年下午试题三 【问题】  填充下列 SQL 程序 3.1&#xff5e;3.4 中的 ①&#xff5e;⑦&#xff0c;使它们分别完成相应的功能&#xff1a;程序 3.1&#xff1a;统计参加比赛时运动员人数  SELECT __①__  FROM A…

c语言getch() 头文件,用getch()需要头文件吗?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #include "string.h"#includeusing namespace std;struct student{ int num;char name[10];char banji[10];float score[3];struct student *next;};struct student *creat(){struct student *head,*p…

android 服务自动结束,Android服务自动停止

我正在制作一个带有闹钟功能的应用程序。我正在使用这种服务&#xff0c;不断检查设备的当前时间与我的数据库中的时间。Android服务自动停止我的问题是&#xff0c;如果应用程序从后台删除或设备是rebooted&#xff0c;此service停止。我已经使用START_STICKY来保持它在后台运…

android自定义dialog 全屏,自定义dialog全屏显示

默认的Dialog是不能全屏的。也就是怎么设置Dialog的Layout都没用的。下面给出实现Dialog实现全屏的两种方式&#xff1a;1、代码实现。这中方法相对比较简单首先继承Dialig&#xff0c;然后再构造函数中添加super(context, android.R.style.Theme);setOwnerActivity((Activity)…

全志android启动串口无打印,CSK.Blog-给MK802(USB大小的Android4.0小PC)引出串口信号,变成ARM开发版...

最近忙各类事情&#xff0c;blog写的不系统&#xff0c;见谅。这几天搞到了前不久被媒体宣传过的只有U盘大小的Android 4.0小PC。他的样子如下&#xff0c;使用HDMI接口连接显示器再外接一个usb键盘鼠标就能作为PC用了。托朋友买了台&#xff0c;试用了下果然还不错&#xff0c…

android 动态添加颜色,Android绘制一个三角形并且可动态改变颜色

方法一&#xff1a;这种方法的三角形角度没法控制&#xff0c;因为其实是矩形旋转。android:fromDegrees"45"android:pivotX"135%"android:pivotY"15%">android:width"16dp"android:height"16dp" />然后将此xml设置为…

支付宝 android 2.3,app被拒记录-2.3-包含支付宝

2. 32020年8月21日 上午1:29发件人 Apple* 2. 3 Performance: Accurate Metadata### Guideline 2.3.1 - PerformanceWe discovered that your app contains hidden features. Attempting to hide features, functionality or content in your app is considered egregious beha…

android adb 静默安装,Android_如何静默安装

Android常用代码之普通及系统权限静默安装APK本文主要介绍程序如何安装apk&#xff0c;包括普通模式安装和系统权限静默安装。如果是非系统应用请直接查看&#xff1a;Android常用代码之APK root权限静默安装&#xff0c;查看更完美的解决方案。1、普通模式安装&#xff0c;调用…