鸟哥的Linux私房菜11.1 核心编译与管理

来源:互联网 发布:线切割老的编程法 编辑:程序博客网 时间:2024/06/06 02:17

第26章 Linux核心编译与管理

----------------------------------------------------------------------------------------------------

编译前的任务:认识核心与取得核心源代码

我们所讨论的Linux其实就是一个核心(kernel)

核心

核心就是系统上面的一个文件,这个文件包含了驱动主机各项硬件的侦测程序与驱动模块。

核心文件常被放置成 /boot/vmlinuz ,不过也不一定啦,因为一部主机上面可以拥有多个核心文件,只是开机的时候只能加载一个而已。甚至一个distribution上面也可以放置多个核心,然后将这些核心做成多重引导。

核心模块——将不常用的驱动程序之类的东东独立出核心成为模块,只在需要的时候加载。

模块放置位置:/lib/modules/$(uname -r)/kernel/

更新核心的目的

核心的编译重点——用户的Linux要做什么。

核心有几个特点:比如Kernel可以随时、随人喜好而变化;版本的更改次数太频繁。所以不要随时保持最新的核心版本。

那么更新核心可能原因:1.新的功能需求,2.原来的核心太过于臃肿,3.与硬件搭配的稳定性,4.其他需求(如嵌入式系统)

核心的版本

核心的2.6.x是稳定版本,2.5.x是测试版本(偶数是比较稳定的了)。2.4.x与2.6.x差别超级大啊,所以一定不要从2.4.x直接升级到2.6.x

-----------------------------------------------------------------------------------------------

核心编译的前处理与核心功能选择

保持干净源代码:make mrproper

make mrproper会将以前进行的核心功能选择文件也删除,所以除了第一次进行核心编译,其他时候用make clean就好了,这个指令只会删除中间文件而保留了配置文件。

挑选核心功能:make XXconfig

要建立一个名为 .config 的隐藏文件(/boot/config-xxx),方法有:

1.make menuconfig(最常使用,文本模式下可以显示类似图形接口的方式,无需启动X)

2.make oldconfig(使用已存在的 ./.config文件内容,可以简化核心功能的挑选过程)

3.make xconfig(通过Qt为图形接口基础功能的图形化接口显示,需要X Window支持)

4.make gconfig(通过Gtk,需要X Window的支持)

5.make config(不够人性化)

核心功能细节选择

General setup:基本上保留默认值即可

loadable module+block layer

CPU的类型与功能选择

进入【Processor type and features】后挑选自己的实际CPU

核心黑客、信息安全、密码应用

建议默认

-----------------------------------------------------------------------------------------------------------

核心的编译与安装

编译核心

一般是,先清除暂存文件,再编译核心,然后编译模块

实际安装模块

如果某个模块编译了两次,放置目录也一样,肿么办捏?

1.可以将旧的模块目录更名,然后才安装核心模块到目标目录去

2.在make menuconfig时,那个General setup内的Local version修改成新的名称(推荐)

安装新核心与多重核心选项(grub)

1.移动核心到/boot 且保留旧核心文件

2.建立相对应的Initial Ram Disk

3.编辑开机选项

4.重新以新核心开机、测试、修改

---------------------------------------------------------------------------------------------------