电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

核心( Kernel )编译与 Lilo 多重开机


发布日期:2021/11/8
 

运作的更顺畅!

然而由于『核心的主要工作是在控制硬体!』所以编译核心之前请先了解一下您的硬体配备与您这部主机的未来功能!由于核心是『越简单越好!』所以只要将这部主机的未来功能给他编进去就好了!其他的就不用去理他啦!

核心的版本与何处下载最新核心

请特别留意!不同版本的核心之间最好不要互相升级!否则及容易发生问题!例如 Red Hat x 使用的是 xx 版本的核心那么就不要使用 xx 的核心来编译他!如果误用的话很有可能造成您系统上面的服务无法正常的工作!还请特别留意呢!

·核心的版本

要更新核心自然就得知道目前我的核心是哪一个啰!然后才能拿更新的核心来更新呀!您说是吧!那么在哪里找到这个核心的资讯呢?如果对于 系统指令 那一篇还有印象的话(忘记了就回去读一读吧!)应该还记得那个 uname 查看的资讯吧!没错!就是他了可以使用其功能来查询目前在工作的核心版本

·看到了吧!那个东西就是核心版本的资讯啦!好了!我们依照 RPM 版本的先例也来谈一谈 kernel 的版本吧!基本上 kernel 的版本可以分为

[主版本][次版本][修订版本][附版本]

在这当中需要特别留意的属于第二个那个[次版本]啰!

o如果次版本是奇数的话例如 等等那表示他是一个『测试性质功能的核心版本』这种核心通常是在推出稳定版本的核心之前用来给 developer (核心维护更新测试者!)测试用的!虽然功能较为强大但是由于是属于测试性质所以可能会有些许的 bug 也说不定

o如果次版本是偶数的话例如 等等那表示他是一个经过测试之后才释出的稳定核心版本这种核心较为稳定不容易出错比较适合一般个人或者是商业使用!

所以啦!我们要升级的时候大多就是使用那种偶数的核心版本啦!不过这里还是要再提一遍!就是『 是两个具有相当大差异的核心版本两者之间使用到的函式库基本上已经不相同了所以在升级之前如果您的核心原本是 xx 版(Red Hat x 系列)那么就升级到 xx 版本的最新版不要由 xx 直接升级到 xx 版否则到时可能会欲哭无泪~~』这个问题在讨论区一再地被提起!这里再次说明!

此外 xx 与 xx 的比较中并不是 xx 就一定比 xx 还要新因为这两种版本同时在进行维护与升级的工作!如果有兴趣的话可以前往 Linux 核心网站 一看究竟您就可以了解目前的核心变动情况了!另外再提到额外的一点就是 可以升级到 版本这是因为这两个是互相援用的 测试成功之后就将他转成 的版本所以两者的函式库使用的情况是约略相同的这个情况也可以使用在 xx 与 xx 版本之中!也就是说您的 Red Hat x 的 xx 版本可以升级到 xx 版本去呦!但是您的 Red Hat x 的 kernel xx 则仅能更新到最新的 xx 或者是 xx 强烈的建议不需要更新到 xx ~~再次不厌其烦的提醒大家~

好了!既然 Red Hat ~ 使用的是 kernel xx 版本我们又需要的是稳定型态的 xx 版本再由 网站资料上发现截至目前为止( // )最新的核心是 这一个所以您可以前往下载这一个版本的核心当然也可以由本站下载呢!嗯!底下的各个选项的择定我们都是以这一个版本为例呦!需要特别的注意!由于较新的核心版本可能会多出一些选项因此若有不同的项目也没有关系!稍微查看一下说明内容就可以了解啦!

·核心下载地点

Linux 的核心目前是由其发明者 Linus 所属团队在负责维护的而其网站在底下的站址上在该网站上可以找到最新的 kernel 资讯!不过美中不足的是目前的核心越来越大了( linuxtargz 这一版这一个档案大约 MB 了!)所以如果你的 ISP 连外很慢的话那么使用台湾的映射站台来下载不失为一个好方法

o

o

o交大资科

o教育部

基本上就如同前面所说的最好是在系统安装完毕之后马上就进行核心编译工作免得以后每次装一些特定功能的时候又要花一大轮时间编译另外要说明的由于小弟是以 这一版的核心来做升级的动作所以以下是以 来做示范!

开始设定核心的内容

由于 VBird 都是在安装完 Linux 之后立刻就给他编译核心的所以通常我都是直接将该核心档案烧录起来或者是先捉到自己的电脑中再以 ftp 等等的动作将该档案传输到 Linux 系统下!好了!目前我就假设您已经可以上网了所以您可以使用底下的方式来下载核心并将之解开在 /usr/src 当中!此外由于编译核心的行为必须要是 root 才可以进行所以底下的动作使用者身份为 root 呦!

需要比较留意的是核心所放置的地点『一定是 /usr/src/linux 』这一个目录然而由于不论哪一版核心编译都是这一个目录底下编译的所以我个人相当的建议将每一版的核心都使用不同的目录来指定然后以 link 的方式将该目录 link 到 linux 就可以啦!较为简单而且明了!底下的动作请都在 /usr/src/linux 底下进行呦!

另外在开始设定核心内容之前先来说明一下什么是『模组』?以方便大家了解核心编译的选择!由于核心的更新速度虽然很快然而有些硬体的出版却是不定时的另外有些软体需要的载入程式可能也需要核心的支援才有办法提供!然而如果每次一有新的硬体或者软体推出则需要编译一次核心那不是挺麻烦的吗?要晓得的是编译一次核心小一点的也要 分钟左右(这与你的机器速度有关!)每次这么编译不是挺麻烦的吗?所以啰就有所谓的『模组』出现了!由于目前的核心已经都具有『外挂模组』的功能(这个等一下我们在实际编译的时候会提到!)所以只要将您『可能会用到』的功能的选项将他编译成模组!那么往后真的需要该功能的时候再将他载入到核心就可以啦!这么做最大的优点就是当没有使用到该功能的时候核心并不会主动的载入所以真正在核心内工作的程序就不会太多而耗掉系统资源!另外当您目前不需要的功能可以先编译成模组未来真的有需要的时候就可以将他直接载入!嘿嘿!可以免除再一次编译的繁复手续呢!!很棒吧!所以啰!如果可以编译成为模组的那么就直接先编成模组也是可以的哩!但是如果是『肯定不会』使用到的功能那么就不需要编译进来了!例如我的旧电脑当中根本就没有 AGP 插槽那么我自然就不需要在我的核心里面编译上 AGP 的支援啰!

·编译之前

在 Linux 当中安装任何软体的铁则『注意看套件解压缩之后的 INSTALL 或 README 档案!』好了那么请进入 /usr/src/linux 当中去瞧一瞧 README 先!再来由于害怕不小心前面有人已经先编译过了核心则由于编译过程当中会产生目的档案(档名为 o )为了避免此一问题请先执行 make mrproper 这个指令

· 好了!现在您就已经具有相当完整的 Kernel source code 啰!接着下来则是选择编译模式咯!

·设定编译模式

目前的 Kernel 可以允许多种编译的模式包括了

o make config 这种模式需要逐行输入所需要设定的项目无法往前修改设定所以目前很少使用这种方式来设定 Kernel 的项目了

o make xconfig 这种模式则是使用 XWindow 为主要环境的设定模式!除非你有 XWindow 在执行否则没有办法使用这种模式

o make menuconfig 这种模式有点像是文字界面的选单模式较为简便而且可以在纯文字界面下面执行编辑动作!是目前最常使用的模式

我们就使用 make menuconfig 来进行核心的编译设定内容吧!这个选单模式较为简单的啦!

出现如下图示

因为我是以 putty 捉的图所以有点丑丑的!别见怪呦!好了!看到上面的图示之后可以看到几个元件

o最底下的 之后按下『 Enter 』就可以进入该项目去作更进一步的细部设定啰!

o在细部项目的设定当中如果前面有 [ ] 或 < > 符号时该项目才可以选择而选择可以使用『空白键』来选择

o若为 [*] <*> 则表示编译进核心若为 则表示编译成模组!尽量在不知道该项目为何时且有模组可以选那么就可以直接选择为模组啰!

o当在细项目选择 并按下 Enter 那么就可以离开该细部项目啰!

基本上建议只要『上下左右 空白 及 Enter 』这六个按键就好了!不要使用 Esc 否则一不小心就有可能按错的!

·开始设定

[root @test linux]# make mrproper <==去除 o 的编译过的档案

[root @test linux]# make menuconfig <==以文字选单的模式进行编译!

底下开始编译!

Code maturity level options---> <==关于核心测试功能的 code 开启项目;

[ ] Prompt fo

上一篇:简单在线备份 script

下一篇:ORA-04098错误解决方法