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.重新以新核心开机、测试、修改